blob: dc403a5899aa611572931574a9e73bed39503e8b [file] [log] [blame]
Meng Wang43bbb872018-12-10 12:32:05 +08001// SPDX-License-Identifier: GPL-2.0-only
Josh Kirschea69fed2018-12-11 16:15:08 -08002/* Copyright (c) 2012-2019, The Linux Foundation. All rights reserved.
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303 */
4
5#include <linux/init.h>
6#include <linux/err.h>
7#include <linux/module.h>
8#include <linux/moduleparam.h>
9#include <linux/platform_device.h>
10#include <linux/bitops.h>
11#include <linux/mutex.h>
12#include <linux/of_device.h>
13#include <linux/slab.h>
14#include <sound/core.h>
15#include <sound/soc.h>
16#include <sound/soc-dapm.h>
17#include <sound/pcm.h>
18#include <sound/initval.h>
19#include <sound/control.h>
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020#include <sound/tlv.h>
21#include <sound/asound.h>
22#include <sound/pcm_params.h>
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023#include <sound/hwdep.h>
Laxminath Kasam605b42f2017-08-01 22:02:15 +053024#include <sound/audio_effects.h>
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053025#include <dsp/msm-dts-srs-tm-config.h>
Laxminath Kasam605b42f2017-08-01 22:02:15 +053026#include <dsp/q6voice.h>
27#include <dsp/q6adm-v2.h>
28#include <dsp/q6asm-v2.h>
29#include <dsp/q6afe-v2.h>
30#include <dsp/q6lsm.h>
31#include <dsp/q6core.h>
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080032#include <dsp/q6common.h>
Laxminath Kasam605b42f2017-08-01 22:02:15 +053033#include <dsp/audio_cal_utils.h>
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053034
35#include "msm-pcm-routing-v2.h"
36#include "msm-pcm-routing-devdep.h"
37#include "msm-qti-pp-config.h"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053038#include "msm-dolby-dap-config.h"
39#include "msm-ds2-dap-config.h"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053040
Meng Wangee084a02018-09-04 16:11:58 +080041#define DRV_NAME "msm-pcm-routing-v2"
42
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053043#ifndef CONFIG_DOLBY_DAP
44#undef DOLBY_ADM_COPP_TOPOLOGY_ID
45#define DOLBY_ADM_COPP_TOPOLOGY_ID 0xFFFFFFFE
46#endif
47
48#ifndef CONFIG_DOLBY_DS2
49#undef DS2_ADM_COPP_TOPOLOGY_ID
50#define DS2_ADM_COPP_TOPOLOGY_ID 0xFFFFFFFF
51#endif
52
53static struct mutex routing_lock;
54
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053055static struct cal_type_data *cal_data[MAX_ROUTING_CAL_TYPES];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053056
57static int fm_switch_enable;
58static int hfp_switch_enable;
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080059static int a2dp_switch_enable;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053060static int int0_mi2s_switch_enable;
61static int int4_mi2s_switch_enable;
62static int pri_mi2s_switch_enable;
63static int sec_mi2s_switch_enable;
64static int tert_mi2s_switch_enable;
65static int quat_mi2s_switch_enable;
Rohit Kumara5077932017-09-10 22:05:05 +053066static int quin_mi2s_switch_enable;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053067static int fm_pcmrx_switch_enable;
68static int usb_switch_enable;
69static int lsm_port_index;
70static int slim0_rx_aanc_fb_port;
71static int msm_route_ec_ref_rx;
72static int msm_ec_ref_ch = 4;
73static int msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
74static int msm_ec_ref_sampling_rate = 48000;
75static uint32_t voc_session_id = ALL_SESSION_VSID;
76static int msm_route_ext_ec_ref;
77static bool is_custom_stereo_on;
78static bool is_ds2_on;
79static bool swap_ch;
Sudheer Papothic07b37a2018-05-04 05:56:47 +053080static int aanc_level;
Meng Wangadbca4f2018-10-29 14:30:13 +080081static int num_app_cfg_types;
Surendar Karkae7507512018-07-20 15:46:54 +053082static int msm_ec_ref_port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053083
84#define WEIGHT_0_DB 0x4000
85/* all the FEs which can support channel mixer */
86static struct msm_pcm_channel_mixer channel_mixer[MSM_FRONTEND_DAI_MM_SIZE];
Dhananjay Kumar807f7e92018-12-11 18:10:08 +053087
88/* all the FES which can support channel mixer for bidirection */
89static struct msm_pcm_channel_mixer
90 channel_mixer_v2[MSM_FRONTEND_DAI_MM_SIZE][2];
91
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053092/* input BE for each FE */
93static int channel_input[MSM_FRONTEND_DAI_MM_SIZE][ADM_MAX_CHANNELS];
94
95enum {
96 MADNONE,
97 MADAUDIO,
98 MADBEACON,
99 MADULTRASOUND,
100 MADSWAUDIO,
101};
102
103#define ADM_LSM_PORT_INDEX 9
104
105#define SLIMBUS_0_TX_TEXT "SLIMBUS_0_TX"
106#define SLIMBUS_1_TX_TEXT "SLIMBUS_1_TX"
107#define SLIMBUS_2_TX_TEXT "SLIMBUS_2_TX"
108#define SLIMBUS_3_TX_TEXT "SLIMBUS_3_TX"
109#define SLIMBUS_4_TX_TEXT "SLIMBUS_4_TX"
110#define SLIMBUS_5_TX_TEXT "SLIMBUS_5_TX"
111#define TERT_MI2S_TX_TEXT "TERT_MI2S_TX"
112#define QUAT_MI2S_TX_TEXT "QUAT_MI2S_TX"
113#define ADM_LSM_TX_TEXT "ADM_LSM_TX"
114#define INT3_MI2S_TX_TEXT "INT3_MI2S_TX"
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +0530115#define VA_CDC_DMA_TX_0_TEXT "VA_CDC_DMA_TX_0"
116#define VA_CDC_DMA_TX_1_TEXT "VA_CDC_DMA_TX_1"
Xiaoyu Yef439aed2019-01-02 16:40:01 -0800117#define VA_CDC_DMA_TX_2_TEXT "VA_CDC_DMA_TX_2"
Aditya Bavanarie9454c62018-08-23 23:45:20 +0530118#define TX_CDC_DMA_TX_3_TEXT "TX_CDC_DMA_TX_3"
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +0530119#define QUIN_TDM_TX_TEXT "QUIN_TDM_TX_0"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530120
121#define LSM_FUNCTION_TEXT "LSM Function"
122static const char * const lsm_port_text[] = {
123 "None",
124 SLIMBUS_0_TX_TEXT, SLIMBUS_1_TX_TEXT, SLIMBUS_2_TX_TEXT,
125 SLIMBUS_3_TX_TEXT, SLIMBUS_4_TX_TEXT, SLIMBUS_5_TX_TEXT,
126 TERT_MI2S_TX_TEXT, QUAT_MI2S_TX_TEXT, ADM_LSM_TX_TEXT,
Aditya Bavanarie9454c62018-08-23 23:45:20 +0530127 INT3_MI2S_TX_TEXT, VA_CDC_DMA_TX_0_TEXT, VA_CDC_DMA_TX_1_TEXT,
Xiaoyu Yef439aed2019-01-02 16:40:01 -0800128 VA_CDC_DMA_TX_2_TEXT, TX_CDC_DMA_TX_3_TEXT, QUIN_TDM_TX_TEXT
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530129};
130
131struct msm_pcm_route_bdai_pp_params {
132 u16 port_id; /* AFE port ID */
133 unsigned long pp_params_config;
134 bool mute_on;
135 int latency;
136};
137
138static struct msm_pcm_route_bdai_pp_params
139 msm_bedais_pp_params[MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX] = {
140 {HDMI_RX, 0, 0, 0},
141 {DISPLAY_PORT_RX, 0, 0, 0},
142};
143
144/*
145 * The be_dai_name_table is passed to HAL so that it can specify the
146 * BE ID for the BE it wants to enable based on the name. Thus there
147 * is a matching table and structure in HAL that need to be updated
148 * if any changes to these are made.
149 */
150struct msm_pcm_route_bdai_name {
151 unsigned int be_id;
152 char be_name[LPASS_BE_NAME_MAX_LENGTH];
153};
154static struct msm_pcm_route_bdai_name be_dai_name_table[MSM_BACKEND_DAI_MAX];
155
156static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
157 int fe_id);
158
Vikram Panduranga6e55ad82018-03-14 13:56:18 -0700159static void msm_routing_load_topology(size_t data_size, void *data);
160static void msm_routing_unload_topology(uint32_t topology_id);
161
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530162static int msm_routing_get_bit_width(unsigned int format)
163{
164 int bit_width;
165
166 switch (format) {
167 case SNDRV_PCM_FORMAT_S32_LE:
168 bit_width = 32;
169 break;
170 case SNDRV_PCM_FORMAT_S24_LE:
171 case SNDRV_PCM_FORMAT_S24_3LE:
172 bit_width = 24;
173 break;
174 case SNDRV_PCM_FORMAT_S16_LE:
175 default:
176 bit_width = 16;
177 }
178 return bit_width;
179}
180
181static bool msm_is_resample_needed(int input_sr, int output_sr)
182{
183 bool rc = false;
184
185 if (input_sr != output_sr)
186 rc = true;
187
188 pr_debug("perform resampling (%s) for copp rate (%d)afe rate (%d)",
189 (rc ? "oh yes" : "not really"),
190 input_sr, output_sr);
191
192 return rc;
193}
194
195static void msm_pcm_routing_cfg_pp(int port_id, int copp_idx, int topology,
196 int channels)
197{
198 int rc = 0;
199
200 switch (topology) {
201 case SRS_TRUMEDIA_TOPOLOGY_ID:
202 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
203 msm_dts_srs_tm_init(port_id, copp_idx);
204 break;
205 case DS2_ADM_COPP_TOPOLOGY_ID:
206 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY %d\n",
207 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
208 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
209 is_custom_stereo_on);
210 if (rc < 0)
211 pr_err("%s: DS2 topo_id 0x%x, port %d, CS %d rc %d\n",
212 __func__, topology, port_id,
213 is_custom_stereo_on, rc);
214 break;
215 case DOLBY_ADM_COPP_TOPOLOGY_ID:
216 if (is_ds2_on) {
217 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY\n", __func__);
218 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
219 is_custom_stereo_on);
220 if (rc < 0)
221 pr_err("%s:DS2 topo_id 0x%x, port %d, rc %d\n",
222 __func__, topology, port_id, rc);
223 } else {
224 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
225 rc = msm_dolby_dap_init(port_id, copp_idx, channels,
226 is_custom_stereo_on);
227 if (rc < 0)
228 pr_err("%s: DS1 topo_id 0x%x, port %d, rc %d\n",
229 __func__, topology, port_id, rc);
230 }
231 break;
232 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
233 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
234 rc = msm_qti_pp_asphere_init(port_id, copp_idx);
235 if (rc < 0)
236 pr_err("%s: topo_id 0x%x, port %d, copp %d, rc %d\n",
237 __func__, topology, port_id, copp_idx, rc);
238 break;
239 default:
240 /* custom topology specific feature param handlers */
241 break;
242 }
243}
244
245static void msm_pcm_routing_deinit_pp(int port_id, int topology)
246{
247 switch (topology) {
248 case SRS_TRUMEDIA_TOPOLOGY_ID:
249 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
250 msm_dts_srs_tm_deinit(port_id);
251 break;
252 case DS2_ADM_COPP_TOPOLOGY_ID:
253 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID %d\n",
254 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
255 msm_ds2_dap_deinit(port_id);
256 break;
257 case DOLBY_ADM_COPP_TOPOLOGY_ID:
258 if (is_ds2_on) {
259 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID\n", __func__);
260 msm_ds2_dap_deinit(port_id);
261 } else {
262 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
263 msm_dolby_dap_deinit(port_id);
264 }
265 break;
266 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
267 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
268 msm_qti_pp_asphere_deinit(port_id);
269 break;
270 default:
271 /* custom topology specific feature deinit handlers */
272 break;
273 }
274}
275
276static void msm_pcm_routng_cfg_matrix_map_pp(struct route_payload payload,
277 int path_type, int perf_mode)
278{
279 int itr = 0, rc = 0;
280
281 if ((path_type == ADM_PATH_PLAYBACK) &&
282 (perf_mode == LEGACY_PCM_MODE) &&
283 is_custom_stereo_on) {
284 for (itr = 0; itr < payload.num_copps; itr++) {
285 if ((payload.port_id[itr] != SLIMBUS_0_RX) &&
286 (payload.port_id[itr] != RT_PROXY_PORT_001_RX)) {
287 continue;
288 }
289
290 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd(
291 payload.port_id[itr],
292 payload.copp_idx[itr],
293 payload.session_id,
294 Q14_GAIN_ZERO_POINT_FIVE,
295 Q14_GAIN_ZERO_POINT_FIVE,
296 Q14_GAIN_ZERO_POINT_FIVE,
297 Q14_GAIN_ZERO_POINT_FIVE);
298 if (rc < 0)
299 pr_err("%s: err setting custom stereo\n",
300 __func__);
301 }
302 }
303}
304
305#define SLIMBUS_EXTPROC_RX AFE_PORT_INVALID
306struct msm_pcm_routing_bdai_data msm_bedais[MSM_BACKEND_DAI_MAX] = {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530307 { PRIMARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_PRI_I2S_RX},
308 { PRIMARY_I2S_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_PRI_I2S_TX},
309 { SLIMBUS_0_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_0_RX},
310 { SLIMBUS_0_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_0_TX},
311 { HDMI_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_HDMI},
312 { INT_BT_SCO_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_BT_SCO_RX},
313 { INT_BT_SCO_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_BT_SCO_TX},
314 { INT_FM_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_FM_RX},
315 { INT_FM_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_FM_TX},
316 { RT_PROXY_PORT_001_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530317 LPASS_BE_AFE_PCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530318 { RT_PROXY_PORT_001_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530319 LPASS_BE_AFE_PCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530320 { AFE_PORT_ID_PRIMARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530321 LPASS_BE_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530322 { AFE_PORT_ID_PRIMARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530323 LPASS_BE_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530324 { VOICE_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530325 LPASS_BE_VOICE_PLAYBACK_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530326 { VOICE2_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530327 LPASS_BE_VOICE2_PLAYBACK_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530328 { VOICE_RECORD_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530329 LPASS_BE_INCALL_RECORD_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530330 { VOICE_RECORD_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530331 LPASS_BE_INCALL_RECORD_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530332 { MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_MI2S_RX},
333 { MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_MI2S_TX},
334 { SECONDARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SEC_I2S_RX},
335 { SLIMBUS_1_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_1_RX},
336 { SLIMBUS_1_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_1_TX},
337 { SLIMBUS_2_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_2_RX},
338 { SLIMBUS_2_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_2_TX},
339 { SLIMBUS_3_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_3_RX},
340 { SLIMBUS_3_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_3_TX},
341 { SLIMBUS_4_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_4_RX},
342 { SLIMBUS_4_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_4_TX},
343 { SLIMBUS_5_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_5_RX},
344 { SLIMBUS_5_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_5_TX},
345 { SLIMBUS_6_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_6_RX},
346 { SLIMBUS_6_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_6_TX},
347 { SLIMBUS_7_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_7_RX},
348 { SLIMBUS_7_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_7_TX},
349 { SLIMBUS_8_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_8_RX},
350 { SLIMBUS_8_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_8_TX},
351 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_RX},
352 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_TX},
353 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_1_TX},
354 { AFE_PORT_ID_QUATERNARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530355 LPASS_BE_QUAT_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530356 { AFE_PORT_ID_QUATERNARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530357 LPASS_BE_QUAT_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530358 { AFE_PORT_ID_SECONDARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530359 LPASS_BE_SEC_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530360 { AFE_PORT_ID_SECONDARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530361 LPASS_BE_SEC_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530362 { AFE_PORT_ID_PRIMARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530363 LPASS_BE_PRI_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530364 { AFE_PORT_ID_PRIMARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530365 LPASS_BE_PRI_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530366 { AFE_PORT_ID_TERTIARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530367 LPASS_BE_TERT_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530368 { AFE_PORT_ID_TERTIARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530369 LPASS_BE_TERT_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530370 { AUDIO_PORT_ID_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530371 LPASS_BE_AUDIO_I2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530372 { AFE_PORT_ID_SECONDARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530373 LPASS_BE_SEC_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530374 { AFE_PORT_ID_SECONDARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530375 LPASS_BE_SEC_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530376 { AFE_PORT_ID_PRIMARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200377 LPASS_BE_PRI_SPDIF_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530378 { AFE_PORT_ID_SECONDARY_MI2S_RX_SD1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530379 LPASS_BE_SEC_MI2S_RX_SD1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530380 { AFE_PORT_ID_QUINARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530381 LPASS_BE_QUIN_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530382 { AFE_PORT_ID_QUINARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530383 LPASS_BE_QUIN_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530384 { AFE_PORT_ID_SENARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530385 LPASS_BE_SENARY_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530386 { AFE_PORT_ID_PRIMARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530387 LPASS_BE_PRI_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530388 { AFE_PORT_ID_PRIMARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530389 LPASS_BE_PRI_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530390 { AFE_PORT_ID_PRIMARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530391 LPASS_BE_PRI_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530392 { AFE_PORT_ID_PRIMARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530393 LPASS_BE_PRI_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530394 { AFE_PORT_ID_PRIMARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530395 LPASS_BE_PRI_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530396 { AFE_PORT_ID_PRIMARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530397 LPASS_BE_PRI_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530398 { AFE_PORT_ID_PRIMARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530399 LPASS_BE_PRI_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530400 { AFE_PORT_ID_PRIMARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530401 LPASS_BE_PRI_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530402 { AFE_PORT_ID_PRIMARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530403 LPASS_BE_PRI_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530404 { AFE_PORT_ID_PRIMARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530405 LPASS_BE_PRI_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530406 { AFE_PORT_ID_PRIMARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530407 LPASS_BE_PRI_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530408 { AFE_PORT_ID_PRIMARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530409 LPASS_BE_PRI_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530410 { AFE_PORT_ID_PRIMARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530411 LPASS_BE_PRI_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530412 { AFE_PORT_ID_PRIMARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530413 LPASS_BE_PRI_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530414 { AFE_PORT_ID_PRIMARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530415 LPASS_BE_PRI_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530416 { AFE_PORT_ID_PRIMARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530417 LPASS_BE_PRI_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530418 { AFE_PORT_ID_SECONDARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530419 LPASS_BE_SEC_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530420 { AFE_PORT_ID_SECONDARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530421 LPASS_BE_SEC_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530422 { AFE_PORT_ID_SECONDARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530423 LPASS_BE_SEC_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530424 { AFE_PORT_ID_SECONDARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530425 LPASS_BE_SEC_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530426 { AFE_PORT_ID_SECONDARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530427 LPASS_BE_SEC_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530428 { AFE_PORT_ID_SECONDARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530429 LPASS_BE_SEC_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530430 { AFE_PORT_ID_SECONDARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530431 LPASS_BE_SEC_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530432 { AFE_PORT_ID_SECONDARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530433 LPASS_BE_SEC_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530434 { AFE_PORT_ID_SECONDARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530435 LPASS_BE_SEC_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530436 { AFE_PORT_ID_SECONDARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530437 LPASS_BE_SEC_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530438 { AFE_PORT_ID_SECONDARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530439 LPASS_BE_SEC_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530440 { AFE_PORT_ID_SECONDARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530441 LPASS_BE_SEC_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530442 { AFE_PORT_ID_SECONDARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530443 LPASS_BE_SEC_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530444 { AFE_PORT_ID_SECONDARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530445 LPASS_BE_SEC_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530446 { AFE_PORT_ID_SECONDARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530447 LPASS_BE_SEC_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530448 { AFE_PORT_ID_SECONDARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530449 LPASS_BE_SEC_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530450 { AFE_PORT_ID_TERTIARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530451 LPASS_BE_TERT_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530452 { AFE_PORT_ID_TERTIARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530453 LPASS_BE_TERT_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530454 { AFE_PORT_ID_TERTIARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530455 LPASS_BE_TERT_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530456 { AFE_PORT_ID_TERTIARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530457 LPASS_BE_TERT_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530458 { AFE_PORT_ID_TERTIARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530459 LPASS_BE_TERT_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530460 { AFE_PORT_ID_TERTIARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530461 LPASS_BE_TERT_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530462 { AFE_PORT_ID_TERTIARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530463 LPASS_BE_TERT_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530464 { AFE_PORT_ID_TERTIARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530465 LPASS_BE_TERT_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530466 { AFE_PORT_ID_TERTIARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530467 LPASS_BE_TERT_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530468 { AFE_PORT_ID_TERTIARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530469 LPASS_BE_TERT_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530470 { AFE_PORT_ID_TERTIARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530471 LPASS_BE_TERT_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530472 { AFE_PORT_ID_TERTIARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530473 LPASS_BE_TERT_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530474 { AFE_PORT_ID_TERTIARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530475 LPASS_BE_TERT_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530476 { AFE_PORT_ID_TERTIARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530477 LPASS_BE_TERT_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530478 { AFE_PORT_ID_TERTIARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530479 LPASS_BE_TERT_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530480 { AFE_PORT_ID_TERTIARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530481 LPASS_BE_TERT_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530482 { AFE_PORT_ID_QUATERNARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530483 LPASS_BE_QUAT_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530484 { AFE_PORT_ID_QUATERNARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530485 LPASS_BE_QUAT_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530486 { AFE_PORT_ID_QUATERNARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530487 LPASS_BE_QUAT_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530488 { AFE_PORT_ID_QUATERNARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530489 LPASS_BE_QUAT_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530490 { AFE_PORT_ID_QUATERNARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530491 LPASS_BE_QUAT_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530492 { AFE_PORT_ID_QUATERNARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530493 LPASS_BE_QUAT_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530494 { AFE_PORT_ID_QUATERNARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530495 LPASS_BE_QUAT_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530496 { AFE_PORT_ID_QUATERNARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530497 LPASS_BE_QUAT_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530498 { AFE_PORT_ID_QUATERNARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530499 LPASS_BE_QUAT_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530500 { AFE_PORT_ID_QUATERNARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530501 LPASS_BE_QUAT_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530502 { AFE_PORT_ID_QUATERNARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530503 LPASS_BE_QUAT_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530504 { AFE_PORT_ID_QUATERNARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530505 LPASS_BE_QUAT_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530506 { AFE_PORT_ID_QUATERNARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530507 LPASS_BE_QUAT_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530508 { AFE_PORT_ID_QUATERNARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530509 LPASS_BE_QUAT_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530510 { AFE_PORT_ID_QUATERNARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530511 LPASS_BE_QUAT_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530512 { AFE_PORT_ID_QUATERNARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530513 LPASS_BE_QUAT_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530514 { AFE_PORT_ID_QUINARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530515 LPASS_BE_QUIN_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530516 { AFE_PORT_ID_QUINARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530517 LPASS_BE_QUIN_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530518 { AFE_PORT_ID_QUINARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530519 LPASS_BE_QUIN_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530520 { AFE_PORT_ID_QUINARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530521 LPASS_BE_QUIN_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530522 { AFE_PORT_ID_QUINARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530523 LPASS_BE_QUIN_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530524 { AFE_PORT_ID_QUINARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530525 LPASS_BE_QUIN_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530526 { AFE_PORT_ID_QUINARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530527 LPASS_BE_QUIN_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530528 { AFE_PORT_ID_QUINARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530529 LPASS_BE_QUIN_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530530 { AFE_PORT_ID_QUINARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530531 LPASS_BE_QUIN_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530532 { AFE_PORT_ID_QUINARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530533 LPASS_BE_QUIN_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530534 { AFE_PORT_ID_QUINARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530535 LPASS_BE_QUIN_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530536 { AFE_PORT_ID_QUINARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530537 LPASS_BE_QUIN_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530538 { AFE_PORT_ID_QUINARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530539 LPASS_BE_QUIN_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530540 { AFE_PORT_ID_QUINARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530541 LPASS_BE_QUIN_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530542 { AFE_PORT_ID_QUINARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530543 LPASS_BE_QUIN_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530544 { AFE_PORT_ID_QUINARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530545 LPASS_BE_QUIN_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530546 { INT_BT_A2DP_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530547 LPASS_BE_INT_BT_A2DP_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530548 { AFE_PORT_ID_USB_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530549 LPASS_BE_USB_AUDIO_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530550 { AFE_PORT_ID_USB_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530551 LPASS_BE_USB_AUDIO_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530552 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530553 LPASS_BE_DISPLAY_PORT},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530554 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0,
Karthikeyan Mani57550082018-05-03 18:43:58 -0700555 LPASS_BE_DISPLAY_PORT1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530556 { AFE_PORT_ID_TERTIARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530557 LPASS_BE_TERT_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530558 { AFE_PORT_ID_TERTIARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530559 LPASS_BE_TERT_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530560 { AFE_PORT_ID_QUATERNARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530561 LPASS_BE_QUAT_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530562 { AFE_PORT_ID_QUATERNARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530563 LPASS_BE_QUAT_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530564 { AFE_PORT_ID_QUINARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530565 LPASS_BE_QUIN_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530566 { AFE_PORT_ID_QUINARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530567 LPASS_BE_QUIN_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530568 { AFE_PORT_ID_INT0_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530569 LPASS_BE_INT0_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530570 { AFE_PORT_ID_INT0_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530571 LPASS_BE_INT0_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530572 { AFE_PORT_ID_INT1_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530573 LPASS_BE_INT1_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530574 { AFE_PORT_ID_INT1_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530575 LPASS_BE_INT1_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530576 { AFE_PORT_ID_INT2_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530577 LPASS_BE_INT2_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530578 { AFE_PORT_ID_INT2_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530579 LPASS_BE_INT2_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530580 { AFE_PORT_ID_INT3_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530581 LPASS_BE_INT3_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530582 { AFE_PORT_ID_INT3_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530583 LPASS_BE_INT3_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530584 { AFE_PORT_ID_INT4_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530585 LPASS_BE_INT4_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530586 { AFE_PORT_ID_INT4_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530587 LPASS_BE_INT4_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530588 { AFE_PORT_ID_INT5_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530589 LPASS_BE_INT5_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530590 { AFE_PORT_ID_INT5_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530591 LPASS_BE_INT5_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530592 { AFE_PORT_ID_INT6_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530593 LPASS_BE_INT6_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530594 { AFE_PORT_ID_INT6_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530595 LPASS_BE_INT6_MI2S_TX},
Dieter Luecking70668fc2018-09-28 15:03:01 +0200596 { AFE_PORT_ID_SENARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
597 LPASS_BE_SEN_AUXPCM_RX},
598 { AFE_PORT_ID_SENARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
599 LPASS_BE_SEN_AUXPCM_TX},
600 { AFE_PORT_ID_SENARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
601 LPASS_BE_SENARY_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530602 { AFE_PORT_ID_WSA_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530603 LPASS_BE_WSA_CDC_DMA_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530604 { AFE_PORT_ID_WSA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530605 LPASS_BE_WSA_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530606 { AFE_PORT_ID_WSA_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530607 LPASS_BE_WSA_CDC_DMA_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530608 { AFE_PORT_ID_WSA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530609 LPASS_BE_WSA_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530610 { AFE_PORT_ID_WSA_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530611 LPASS_BE_WSA_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530612 { AFE_PORT_ID_VA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530613 LPASS_BE_VA_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530614 { AFE_PORT_ID_VA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530615 LPASS_BE_VA_CDC_DMA_TX_1},
Xiaoyu Yef439aed2019-01-02 16:40:01 -0800616 { AFE_PORT_ID_VA_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
617 LPASS_BE_VA_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530618 { AFE_PORT_ID_RX_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530619 LPASS_BE_RX_CDC_DMA_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530620 { AFE_PORT_ID_TX_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530621 LPASS_BE_TX_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530622 { AFE_PORT_ID_RX_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530623 LPASS_BE_RX_CDC_DMA_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530624 { AFE_PORT_ID_TX_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530625 LPASS_BE_TX_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530626 { AFE_PORT_ID_RX_CODEC_DMA_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530627 LPASS_BE_RX_CDC_DMA_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530628 { AFE_PORT_ID_TX_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530629 LPASS_BE_TX_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530630 { AFE_PORT_ID_RX_CODEC_DMA_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530631 LPASS_BE_RX_CDC_DMA_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530632 { AFE_PORT_ID_TX_CODEC_DMA_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530633 LPASS_BE_TX_CDC_DMA_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530634 { AFE_PORT_ID_RX_CODEC_DMA_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530635 LPASS_BE_RX_CDC_DMA_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530636 { AFE_PORT_ID_TX_CODEC_DMA_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530637 LPASS_BE_TX_CDC_DMA_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530638 { AFE_PORT_ID_RX_CODEC_DMA_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530639 LPASS_BE_RX_CDC_DMA_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530640 { AFE_PORT_ID_TX_CODEC_DMA_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530641 LPASS_BE_TX_CDC_DMA_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530642 { AFE_PORT_ID_RX_CODEC_DMA_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530643 LPASS_BE_RX_CDC_DMA_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530644 { AFE_PORT_ID_RX_CODEC_DMA_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530645 LPASS_BE_RX_CDC_DMA_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530646 { AFE_PORT_ID_PRIMARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200647 LPASS_BE_PRI_SPDIF_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530648 { AFE_PORT_ID_SECONDARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200649 LPASS_BE_SEC_SPDIF_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530650 { AFE_PORT_ID_SECONDARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200651 LPASS_BE_SEC_SPDIF_TX},
Surendar Karka3ef3d812018-09-28 18:52:35 +0530652 { SLIMBUS_9_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_9_RX},
653 { SLIMBUS_9_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_9_TX},
Surendar Karkad47fda42018-05-20 19:21:10 +0530654 { AFE_LOOPBACK_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_AFE_LOOPBACK_TX},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530655};
656
657/* Track ASM playback & capture sessions of DAI
658 * Track LSM listen sessions
659 */
660static struct msm_pcm_routing_fdai_data
661 fe_dai_map[MSM_FRONTEND_DAI_MAX][2] = {
662 /* MULTIMEDIA1 */
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 /* MULTIMEDIA2 */
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 /* MULTIMEDIA3 */
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 /* MULTIMEDIA4 */
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 /* MULTIMEDIA5 */
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 /* MULTIMEDIA6 */
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 /* MULTIMEDIA7*/
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 /* MULTIMEDIA8 */
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 /* MULTIMEDIA9 */
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 /* MULTIMEDIA10 */
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 /* MULTIMEDIA11 */
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 /* MULTIMEDIA12 */
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 /* MULTIMEDIA13 */
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 /* MULTIMEDIA14 */
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 /* MULTIMEDIA15 */
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 /* MULTIMEDIA16 */
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 /* MULTIMEDIA17 */
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} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530713 /* MULTIMEDIA18 */
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} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530716 /* MULTIMEDIA19 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530717 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
718 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530719 /* MULTIMEDIA20 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530720 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
721 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Derek Chen07c6d1c2018-07-05 10:39:25 -0700722 /* MULTIMEDIA21 */
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} },
Surendar Karkac1cde372018-08-14 18:56:24 +0530725 /* MULTIMEDIA26 */
726 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
727 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
728 /* MULTIMEDIA27 */
729 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
730 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530731 /* MULTIMEDIA28 */
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} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530734 /* MULTIMEDIA29 */
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 /* VOIP */
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 /* AFE_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 /* AFE_TX */
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 /* VOICE_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 /* DTMF_RX */
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 /* QCHAT */
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 /* VOLTE_STUB */
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 /* LSM1 */
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 /* LSM2 */
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 /* LSM3 */
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 /* LSM4 */
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 /* LSM5 */
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 /* LSM6 */
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 /* LSM7 */
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 /* LSM8 */
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 /* VOICE2_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530783 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
784 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530785 /* VOICEMMODE1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530786 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
787 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530788 /* VOICEMMODE2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530789 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
790 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530791};
792
793static unsigned long session_copp_map[MSM_FRONTEND_DAI_MAX][2]
794 [MSM_BACKEND_DAI_MAX];
795static struct msm_pcm_routing_app_type_data app_type_cfg[MAX_APP_TYPES];
796static struct msm_pcm_routing_app_type_data lsm_app_type_cfg[MAX_APP_TYPES];
797static struct msm_pcm_stream_app_type_cfg
798 fe_dai_app_type_cfg[MSM_FRONTEND_DAI_MAX][2][MSM_BACKEND_DAI_MAX];
799
800static int last_be_id_configured[MSM_FRONTEND_DAI_MAX][MAX_SESSION_TYPES];
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_bedai_info(int be_idx,
804 struct msm_pcm_routing_bdai_data *be_dai)
805{
806 if (be_idx >= 0 && be_idx < MSM_BACKEND_DAI_MAX)
807 memcpy(be_dai, &msm_bedais[be_idx],
808 sizeof(struct msm_pcm_routing_bdai_data));
809}
810
Florian Pfister522073c2018-09-26 15:39:15 +0200811/* The caller of this should acquire routing lock */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530812void msm_pcm_routing_get_fedai_info(int fe_idx, int sess_type,
813 struct msm_pcm_routing_fdai_data *fe_dai)
814{
815 if ((sess_type == SESSION_TYPE_TX) || (sess_type == SESSION_TYPE_RX))
816 memcpy(fe_dai, &fe_dai_map[fe_idx][sess_type],
817 sizeof(struct msm_pcm_routing_fdai_data));
818}
819
820void msm_pcm_routing_acquire_lock(void)
821{
822 mutex_lock(&routing_lock);
823}
824
825void msm_pcm_routing_release_lock(void)
826{
827 mutex_unlock(&routing_lock);
828}
829
830static int msm_pcm_routing_get_app_type_idx(int app_type)
831{
832 int idx;
833
834 pr_debug("%s: app_type: %d\n", __func__, app_type);
835 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
836 if (app_type_cfg[idx].app_type == app_type)
837 return idx;
838 }
839 pr_info("%s: App type not available, fallback to default\n", __func__);
840 return 0;
841}
842
843static int msm_pcm_routing_get_lsm_app_type_idx(int app_type)
844{
845 int idx;
846
847 pr_debug("%s: app_type: %d\n", __func__, app_type);
848 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
849 if (lsm_app_type_cfg[idx].app_type == app_type)
850 return idx;
851 }
852 pr_debug("%s: App type not available, fallback to default\n", __func__);
853 return 0;
854}
855
Surendar Karkae7507512018-07-20 15:46:54 +0530856static int get_port_id(int port_id)
857{
858 return (port_id == AFE_LOOPBACK_TX ? msm_ec_ref_port_id : port_id);
859}
860
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530861static bool is_mm_lsm_fe_id(int fe_id)
862{
863 bool rc = true;
864
865 if (fe_id > MSM_FRONTEND_DAI_MM_MAX_ID &&
866 ((fe_id < MSM_FRONTEND_DAI_LSM1) ||
867 (fe_id > MSM_FRONTEND_DAI_LSM8))) {
868 rc = false;
869 }
870 return rc;
871}
872
Bhalchandra Gajareeed46bd2018-05-15 16:48:07 -0700873/*
874 * msm_pcm_routing_send_chmix_cfg:
875 * send the channel mixer command to mix the input channels
876 * into output channels.
877 *
878 * @fe_id: front end id
879 * @ip_channel_cnt: input channel count
880 * @op_channel_cnt: output channel count
881 * @ch_wght_coeff: channel weight co-efficients for channel mixing
882 * @session_type: indicates session is of type TX or RX
883 * @stream_type: indicates either Audio or Listen stream type
884 */
885int msm_pcm_routing_send_chmix_cfg(int fe_id, int ip_channel_cnt,
886 int op_channel_cnt, int *ch_wght_coeff,
887 int session_type, int stream_type)
888{
889
890 int rc = 0, idx = 0;
891 int be_index = 0, port_id;
892 unsigned int session_id = 0;
893
894 pr_debug("%s:fe_id[%d] ip_ch[%d] op_ch[%d] sess_type [%d], stream_type[%d]",
895 __func__, fe_id, ip_channel_cnt, op_channel_cnt, session_type,
896 stream_type);
897 if (!is_mm_lsm_fe_id(fe_id)) {
898 /* bad ID assigned in machine driver */
899 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
900 return -EINVAL;
901 }
902
903 if (ch_wght_coeff == NULL) {
904 pr_err("%s: Null channel weightage coefficients passed\n",
905 __func__);
906 return -EINVAL;
907 }
908
909 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
910 port_id = msm_bedais[be_index].port_id;
911 if (!msm_bedais[be_index].active ||
912 !test_bit(fe_id, &msm_bedais[be_index].fe_sessions[0]))
913 continue;
914
915 session_id = fe_dai_map[fe_id][session_type].strm_id;
916
917 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
918 unsigned long copp =
919 session_copp_map[fe_id][session_type][be_index];
920 if (!test_bit(idx, &copp))
921 continue;
922 msm_qti_pp_send_chmix_cfg_cmd(port_id, idx,
923 session_id, ip_channel_cnt,
924 op_channel_cnt, ch_wght_coeff,
925 session_type, stream_type);
926 if (rc < 0)
927 pr_err("%s: err setting channel mix config\n",
928 __func__);
929 }
930 }
931
932 return 0;
933}
934EXPORT_SYMBOL(msm_pcm_routing_send_chmix_cfg);
935
Dhananjay Kumar807f7e92018-12-11 18:10:08 +0530936/**
937 * msm_pcm_routing_set_channel_mixer_cfg - cache channel mixer
938 * setting before use case start.
939 *
940 * @fe_id: frontend idx
941 * @type: stream direction type
942 * @params: parameters of channel mixer setting
943 *
944 * Return 0 for success
945 */
946int msm_pcm_routing_set_channel_mixer_cfg(
947 int fe_id, int type,
948 struct msm_pcm_channel_mixer *params)
949{
950 int i, j = 0;
951
952 channel_mixer_v2[fe_id][type].enable = params->enable;
953 channel_mixer_v2[fe_id][type].rule = params->rule;
954 channel_mixer_v2[fe_id][type].input_channel =
955 params->input_channel;
956 channel_mixer_v2[fe_id][type].output_channel =
957 params->output_channel;
958 channel_mixer_v2[fe_id][type].port_idx = params->port_idx;
959
960 for (i = 0; i < ADM_MAX_CHANNELS; i++)
961 channel_mixer_v2[fe_id][type].in_ch_map[i] =
962 params->in_ch_map[i];
963 for (i = 0; i < ADM_MAX_CHANNELS; i++)
964 channel_mixer_v2[fe_id][type].out_ch_map[i] =
965 params->out_ch_map[i];
966
967 for (i = 0; i < ADM_MAX_CHANNELS; i++)
968 for (j = 0; j < ADM_MAX_CHANNELS; j++)
969 channel_mixer_v2[fe_id][type].channel_weight[i][j] =
970 params->channel_weight[i][j];
971
972 channel_mixer_v2[fe_id][type].override_in_ch_map =
973 params->override_in_ch_map;
974 channel_mixer_v2[fe_id][type].override_out_ch_map =
975 params->override_out_ch_map;
976
977 return 0;
978}
979EXPORT_SYMBOL(msm_pcm_routing_set_channel_mixer_cfg);
980
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530981int msm_pcm_routing_reg_stream_app_type_cfg(
982 int fedai_id, int session_type, int be_id,
983 struct msm_pcm_stream_app_type_cfg *cfg_data)
984{
985 int ret = 0;
986
987 if (cfg_data == NULL) {
988 pr_err("%s: Received NULL pointer for cfg_data\n", __func__);
989 ret = -EINVAL;
990 goto done;
991 }
992
993 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
994 __func__, fedai_id, session_type, be_id,
995 cfg_data->app_type, cfg_data->acdb_dev_id,
996 cfg_data->sample_rate);
997
998 if (!is_mm_lsm_fe_id(fedai_id)) {
999 pr_err("%s: Invalid machine driver ID %d\n",
1000 __func__, fedai_id);
1001 ret = -EINVAL;
1002 goto done;
1003 }
1004 if (session_type != SESSION_TYPE_RX &&
1005 session_type != SESSION_TYPE_TX) {
1006 pr_err("%s: Invalid session type %d\n",
1007 __func__, session_type);
1008 ret = -EINVAL;
1009 goto done;
1010 }
1011 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1012 pr_err("%s: Received out of bounds be_id %d\n",
1013 __func__, be_id);
1014 ret = -EINVAL;
1015 goto done;
1016 }
1017
1018 fe_dai_app_type_cfg[fedai_id][session_type][be_id] = *cfg_data;
1019
1020 /*
1021 * Store the BE ID of the configuration information set as the latest so
1022 * the get mixer control knows what to return.
1023 */
1024 last_be_id_configured[fedai_id][session_type] = be_id;
1025
1026done:
1027 return ret;
1028}
1029EXPORT_SYMBOL(msm_pcm_routing_reg_stream_app_type_cfg);
1030
1031/**
1032 * msm_pcm_routing_get_stream_app_type_cfg
1033 *
1034 * Receives fedai_id, session_type, be_id, and populates app_type,
1035 * acdb_dev_id, & sample rate. Returns 0 on success. On failure returns
1036 * -EINVAL and does not alter passed values.
1037 *
1038 * fedai_id - Passed value, front end ID for which app type config is wanted
1039 * session_type - Passed value, session type for which app type config
1040 * is wanted
1041 * be_id - Returned value, back end device id the app type config data is for
1042 * cfg_data - Returned value, configuration data used by app type config
1043 */
1044int msm_pcm_routing_get_stream_app_type_cfg(
1045 int fedai_id, int session_type, int *bedai_id,
1046 struct msm_pcm_stream_app_type_cfg *cfg_data)
1047{
1048 int be_id;
1049 int ret = 0;
1050
1051 if (bedai_id == NULL) {
1052 pr_err("%s: Received NULL pointer for backend ID\n", __func__);
1053 ret = -EINVAL;
1054 goto done;
1055 } else if (cfg_data == NULL) {
1056 pr_err("%s: NULL pointer sent for cfg_data\n", __func__);
1057 ret = -EINVAL;
1058 goto done;
1059 } else if (!is_mm_lsm_fe_id(fedai_id)) {
1060 pr_err("%s: Invalid FE ID %d\n", __func__, fedai_id);
1061 ret = -EINVAL;
1062 goto done;
1063 } else if (session_type != SESSION_TYPE_RX &&
1064 session_type != SESSION_TYPE_TX) {
1065 pr_err("%s: Invalid session type %d\n", __func__, session_type);
1066 ret = -EINVAL;
1067 goto done;
1068 }
1069
1070 be_id = last_be_id_configured[fedai_id][session_type];
1071 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1072 pr_err("%s: Invalid BE ID %d\n", __func__, be_id);
1073 ret = -EINVAL;
1074 goto done;
1075 }
1076
1077 *bedai_id = be_id;
1078 *cfg_data = fe_dai_app_type_cfg[fedai_id][session_type][be_id];
1079 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
1080 __func__, fedai_id, session_type, *bedai_id,
1081 cfg_data->app_type, cfg_data->acdb_dev_id,
1082 cfg_data->sample_rate);
1083done:
1084 return ret;
1085}
1086EXPORT_SYMBOL(msm_pcm_routing_get_stream_app_type_cfg);
1087
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301088static struct cal_block_data *msm_routing_find_topology_by_path(int path,
1089 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301090{
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301091 struct list_head *ptr, *next;
1092 struct cal_block_data *cal_block = NULL;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301093 pr_debug("%s\n", __func__);
1094
1095 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301096 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301097
1098 cal_block = list_entry(ptr,
1099 struct cal_block_data, list);
1100
Vikram Panduranga770b8382017-09-27 12:17:36 -07001101 if (cal_utils_is_cal_stale(cal_block))
1102 continue;
1103
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301104 if (((struct audio_cal_info_adm_top *)cal_block
1105 ->cal_info)->path == path) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301106 return cal_block;
1107 }
1108 }
1109 pr_debug("%s: Can't find topology for path %d\n", __func__, path);
1110 return NULL;
1111}
1112
1113static struct cal_block_data *msm_routing_find_topology(int path,
1114 int app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301115 int acdb_id,
1116 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301117{
1118 struct list_head *ptr, *next;
1119 struct cal_block_data *cal_block = NULL;
1120 struct audio_cal_info_adm_top *cal_info;
1121
1122 pr_debug("%s\n", __func__);
1123
1124 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301125 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301126
1127 cal_block = list_entry(ptr,
1128 struct cal_block_data, list);
1129
Vikram Panduranga770b8382017-09-27 12:17:36 -07001130 if (cal_utils_is_cal_stale(cal_block))
1131 continue;
1132
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301133 cal_info = (struct audio_cal_info_adm_top *)
1134 cal_block->cal_info;
1135 if ((cal_info->path == path) &&
1136 (cal_info->app_type == app_type) &&
1137 (cal_info->acdb_id == acdb_id)) {
1138 return cal_block;
1139 }
1140 }
1141 pr_debug("%s: Can't find topology for path %d, app %d, acdb_id %d defaulting to search by path\n",
1142 __func__, path, app_type, acdb_id);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001143 return msm_routing_find_topology_by_path(path, cal_index);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301144}
1145
Vikram Panduranga770b8382017-09-27 12:17:36 -07001146/*
1147 * Retrieving cal_block will mark cal_block as stale.
1148 * Hence it cannot be reused or resent unless the flag
1149 * is reset.
1150 */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301151static int msm_routing_get_adm_topology(int fedai_id, int session_type,
1152 int be_id)
1153{
1154 int topology = NULL_COPP_TOPOLOGY;
1155 struct cal_block_data *cal_block = NULL;
1156 int app_type = 0, acdb_dev_id = 0;
1157
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301158 pr_debug("%s: fedai_id %d, session_type %d, be_id %d\n",
1159 __func__, fedai_id, session_type, be_id);
1160
1161 if (cal_data == NULL)
1162 goto done;
1163
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301164 app_type = fe_dai_app_type_cfg[fedai_id][session_type][be_id].app_type;
1165 acdb_dev_id =
1166 fe_dai_app_type_cfg[fedai_id][session_type][be_id].acdb_dev_id;
1167
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301168 mutex_lock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301169 cal_block = msm_routing_find_topology(session_type, app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301170 acdb_dev_id,
1171 ADM_TOPOLOGY_CAL_TYPE_IDX);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001172 if (cal_block != NULL) {
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301173 topology = ((struct audio_cal_info_adm_top *)
1174 cal_block->cal_info)->topology;
Vikram Panduranga770b8382017-09-27 12:17:36 -07001175 cal_utils_mark_cal_used(cal_block);
1176 mutex_unlock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1177 } else {
1178 mutex_unlock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301179
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301180 pr_debug("%s: Check for LSM topology\n", __func__);
1181 mutex_lock(&cal_data[ADM_LSM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1182 cal_block = msm_routing_find_topology(session_type, app_type,
1183 acdb_dev_id,
1184 ADM_LSM_TOPOLOGY_CAL_TYPE_IDX);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001185 if (cal_block != NULL) {
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301186 topology = ((struct audio_cal_info_adm_top *)
1187 cal_block->cal_info)->topology;
Vikram Panduranga770b8382017-09-27 12:17:36 -07001188 cal_utils_mark_cal_used(cal_block);
1189 }
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301190 mutex_unlock(&cal_data[ADM_LSM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1191 }
1192
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301193done:
1194 pr_debug("%s: Using topology %d\n", __func__, topology);
1195 return topology;
1196}
1197
1198static uint8_t is_be_dai_extproc(int be_dai)
1199{
1200 if (be_dai == MSM_BACKEND_DAI_EXTPROC_RX ||
1201 be_dai == MSM_BACKEND_DAI_EXTPROC_TX ||
1202 be_dai == MSM_BACKEND_DAI_EXTPROC_EC_TX)
1203 return 1;
1204 else
1205 return 0;
1206}
1207
1208static void msm_pcm_routing_build_matrix(int fedai_id, int sess_type,
1209 int path_type, int perf_mode,
1210 uint32_t passthr_mode)
1211{
1212 int i, port_type, j, num_copps = 0;
1213 struct route_payload payload;
1214
1215 port_type = ((path_type == ADM_PATH_PLAYBACK ||
1216 path_type == ADM_PATH_COMPRESSED_RX) ?
1217 MSM_AFE_PORT_TYPE_RX : MSM_AFE_PORT_TYPE_TX);
1218
1219 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1220 if (!is_be_dai_extproc(i) &&
1221 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1222 (msm_bedais[i].active) &&
1223 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
Surendar Karkae7507512018-07-20 15:46:54 +05301224 int port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301225 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1226 unsigned long copp =
1227 session_copp_map[fedai_id][sess_type][i];
1228 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301229 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301230 payload.copp_idx[num_copps] = j;
1231 payload.app_type[num_copps] =
1232 fe_dai_app_type_cfg
1233 [fedai_id][sess_type][i]
1234 .app_type;
1235 payload.acdb_dev_id[num_copps] =
1236 fe_dai_app_type_cfg
1237 [fedai_id][sess_type][i]
1238 .acdb_dev_id;
1239 payload.sample_rate[num_copps] =
1240 fe_dai_app_type_cfg
1241 [fedai_id][sess_type][i]
1242 .sample_rate;
1243 num_copps++;
1244 }
1245 }
1246 }
1247 }
1248
1249 if (num_copps) {
1250 payload.num_copps = num_copps;
1251 payload.session_id = fe_dai_map[fedai_id][sess_type].strm_id;
1252 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1253 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1254 }
1255}
1256
1257void msm_pcm_routing_reg_psthr_stream(int fedai_id, int dspst_id,
1258 int stream_type)
1259{
1260 int i, session_type, path_type, port_type;
1261 u32 mode = 0;
1262
1263 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1264 /* bad ID assigned in machine driver */
1265 pr_err("%s: bad MM ID\n", __func__);
1266 return;
1267 }
1268
1269 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1270 session_type = SESSION_TYPE_RX;
1271 path_type = ADM_PATH_PLAYBACK;
1272 port_type = MSM_AFE_PORT_TYPE_RX;
1273 } else {
1274 session_type = SESSION_TYPE_TX;
1275 path_type = ADM_PATH_LIVE_REC;
1276 port_type = MSM_AFE_PORT_TYPE_TX;
1277 }
1278
1279 mutex_lock(&routing_lock);
1280
1281 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1282 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1283 if (!is_be_dai_extproc(i) &&
1284 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1285 (msm_bedais[i].active) &&
1286 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1287 mode = afe_get_port_type(msm_bedais[i].port_id);
1288 adm_connect_afe_port(mode, dspst_id,
1289 msm_bedais[i].port_id);
1290 break;
1291 }
1292 }
1293 mutex_unlock(&routing_lock);
1294}
1295
1296static bool route_check_fe_id_adm_support(int fe_id)
1297{
1298 bool rc = true;
1299
1300 if ((fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1301 (fe_id <= MSM_FRONTEND_DAI_LSM8)) {
1302 /* fe id is listen while port is set to afe */
1303 if (lsm_port_index != ADM_LSM_PORT_INDEX) {
1304 pr_debug("%s: fe_id %d, lsm mux slim port %d\n",
1305 __func__, fe_id, lsm_port_index);
1306 rc = false;
1307 }
1308 }
1309
1310 return rc;
1311}
1312
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001313/*
1314 * msm_pcm_routing_get_pp_ch_cnt:
1315 * Read the processed channel count
1316 *
1317 * @fe_id: Front end ID
1318 * @session_type: Inidicates RX or TX session type
1319 */
1320int msm_pcm_routing_get_pp_ch_cnt(int fe_id, int session_type)
1321{
1322 struct msm_pcm_stream_app_type_cfg cfg_data;
1323 int be_id = 0, app_type_idx = 0, app_type = 0;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +05301324 int ret = -EINVAL;
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001325
1326 memset(&cfg_data, 0, sizeof(cfg_data));
1327
1328 if (!is_mm_lsm_fe_id(fe_id)) {
1329 pr_err("%s: bad MM ID\n", __func__);
1330 return -EINVAL;
1331 }
1332
1333 ret = msm_pcm_routing_get_stream_app_type_cfg(fe_id, session_type,
1334 &be_id, &cfg_data);
1335 if (ret) {
Mangesh Kunchamwardaf02b02018-06-28 19:42:24 +05301336 pr_err("%s: cannot get stream app type cfg\n", __func__);
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001337 return ret;
1338 }
1339
1340 app_type = cfg_data.app_type;
1341 app_type_idx = msm_pcm_routing_get_lsm_app_type_idx(app_type);
1342 return lsm_app_type_cfg[app_type_idx].num_out_channels;
1343}
1344EXPORT_SYMBOL(msm_pcm_routing_get_pp_ch_cnt);
1345
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301346int msm_pcm_routing_reg_phy_compr_stream(int fe_id, int perf_mode,
1347 int dspst_id, int stream_type,
1348 uint32_t passthr_mode)
1349{
1350 int i, j, session_type, path_type, port_type, topology;
1351 int num_copps = 0;
1352 struct route_payload payload;
1353 u32 channels, sample_rate;
1354 u16 bit_width = 16;
1355 bool is_lsm;
1356
1357 pr_debug("%s:fe_id[%d] perf_mode[%d] id[%d] stream_type[%d] passt[%d]",
1358 __func__, fe_id, perf_mode, dspst_id,
1359 stream_type, passthr_mode);
1360 if (!is_mm_lsm_fe_id(fe_id)) {
1361 /* bad ID assigned in machine driver */
1362 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
1363 return -EINVAL;
1364 }
1365
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301366 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1367 session_type = SESSION_TYPE_RX;
1368 if (passthr_mode != LEGACY_PCM)
1369 path_type = ADM_PATH_COMPRESSED_RX;
1370 else
1371 path_type = ADM_PATH_PLAYBACK;
1372 port_type = MSM_AFE_PORT_TYPE_RX;
1373 } else if (stream_type == SNDRV_PCM_STREAM_CAPTURE) {
1374 session_type = SESSION_TYPE_TX;
Laxminath Kasam38070be2017-08-17 18:21:59 +05301375 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301376 path_type = ADM_PATH_COMPRESSED_TX;
1377 else
1378 path_type = ADM_PATH_LIVE_REC;
1379 port_type = MSM_AFE_PORT_TYPE_TX;
1380 } else {
1381 pr_err("%s: invalid stream type %d\n", __func__, stream_type);
1382 return -EINVAL;
1383 }
1384
1385 is_lsm = (fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1386 (fe_id <= MSM_FRONTEND_DAI_LSM8);
1387 mutex_lock(&routing_lock);
1388
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301389 fe_dai_map[fe_id][session_type].strm_id = dspst_id;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301390 fe_dai_map[fe_id][session_type].perf_mode = perf_mode;
1391 fe_dai_map[fe_id][session_type].passthr_mode = passthr_mode;
1392 if (!route_check_fe_id_adm_support(fe_id)) {
1393 /* ignore adm open if not supported for fe_id */
1394 pr_debug("%s: No ADM support for fe id %d\n", __func__, fe_id);
1395 mutex_unlock(&routing_lock);
1396 return 0;
1397 }
1398
1399 payload.num_copps = 0; /* only RX needs to use payload */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301400 /* re-enable EQ if active */
1401 msm_qti_pp_send_eq_values(fe_id);
1402 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301403 if (!is_be_dai_extproc(i) &&
1404 (afe_get_port_type(msm_bedais[i].port_id) ==
1405 port_type) &&
1406 (msm_bedais[i].active) &&
1407 (test_bit(fe_id, &msm_bedais[i].fe_sessions[0]))) {
1408 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301409 int port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301410
1411 /*
1412 * check if ADM needs to be configured with different
1413 * channel mapping than backend
1414 */
1415 if (!msm_bedais[i].adm_override_ch)
1416 channels = msm_bedais[i].channel;
1417 else
1418 channels = msm_bedais[i].adm_override_ch;
1419
1420 bit_width = msm_routing_get_bit_width(
1421 msm_bedais[i].format);
1422 app_type =
1423 fe_dai_app_type_cfg[fe_id][session_type][i].app_type;
1424 if (app_type && is_lsm) {
1425 app_type_idx =
1426 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1427 sample_rate =
1428 fe_dai_app_type_cfg[fe_id][session_type][i]
1429 .sample_rate;
1430 bit_width =
1431 lsm_app_type_cfg[app_type_idx].bit_width;
1432 } else if (app_type) {
1433 app_type_idx =
1434 msm_pcm_routing_get_app_type_idx(
1435 app_type);
1436 sample_rate =
1437 fe_dai_app_type_cfg[fe_id][session_type][i].sample_rate;
1438 bit_width =
1439 app_type_cfg[app_type_idx].bit_width;
1440 } else {
1441 sample_rate = msm_bedais[i].sample_rate;
1442 }
1443 acdb_dev_id =
1444 fe_dai_app_type_cfg[fe_id][session_type][i].acdb_dev_id;
1445 topology = msm_routing_get_adm_topology(fe_id,
1446 session_type,
1447 i);
1448 if ((passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
1449 || (passthr_mode ==
Ralf Herzc8701f72018-06-20 11:37:35 +02001450 COMPRESSED_PASSTHROUGH_GEN)
1451 || (passthr_mode ==
1452 COMPRESSED_PASSTHROUGH_IEC61937))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301453 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
1454 pr_debug("%s: Before adm open topology %d\n", __func__,
1455 topology);
1456
1457 copp_idx =
Surendar Karkae7507512018-07-20 15:46:54 +05301458 adm_open(port_id, path_type, sample_rate,
1459 channels, topology, perf_mode,
1460 bit_width, app_type, acdb_dev_id,
1461 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301462 if ((copp_idx < 0) ||
1463 (copp_idx >= MAX_COPPS_PER_PORT)) {
1464 pr_err("%s:adm open failed coppid:%d\n",
1465 __func__, copp_idx);
1466 mutex_unlock(&routing_lock);
1467 return -EINVAL;
1468 }
1469 pr_debug("%s: set idx bit of fe:%d, type: %d, be:%d\n",
1470 __func__, fe_id, session_type, i);
1471 set_bit(copp_idx,
1472 &session_copp_map[fe_id][session_type][i]);
1473
1474 if (msm_is_resample_needed(
1475 sample_rate,
1476 msm_bedais[i].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05301477 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301478 msm_bedais[i].sample_rate);
1479
1480 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1481 unsigned long copp =
1482 session_copp_map[fe_id][session_type][i];
1483 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301484 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301485 payload.copp_idx[num_copps] = j;
1486 payload.app_type[num_copps] =
1487 fe_dai_app_type_cfg
1488 [fe_id][session_type][i]
1489 .app_type;
1490 payload.acdb_dev_id[num_copps] =
1491 fe_dai_app_type_cfg
1492 [fe_id][session_type][i]
1493 .acdb_dev_id;
1494 payload.sample_rate[num_copps] =
1495 fe_dai_app_type_cfg
1496 [fe_id][session_type][i]
1497 .sample_rate;
1498 num_copps++;
1499 }
1500 }
1501 if (passthr_mode != COMPRESSED_PASSTHROUGH_DSD
Ralf Herzc8701f72018-06-20 11:37:35 +02001502 && passthr_mode != COMPRESSED_PASSTHROUGH_GEN
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301503 && passthr_mode != COMPRESSED_PASSTHROUGH_IEC61937)
Surendar Karkae7507512018-07-20 15:46:54 +05301504 msm_routing_send_device_pp_params(port_id,
1505 copp_idx, fe_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301506 }
1507 }
1508 if (num_copps) {
1509 payload.num_copps = num_copps;
1510 payload.session_id = fe_dai_map[fe_id][session_type].strm_id;
1511 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1512 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1513 }
1514 mutex_unlock(&routing_lock);
1515 return 0;
1516}
1517
1518static u32 msm_pcm_routing_get_voc_sessionid(u16 val)
1519{
1520 u32 session_id;
1521
1522 switch (val) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301523 case MSM_FRONTEND_DAI_QCHAT:
1524 session_id = voc_get_session_id(QCHAT_SESSION_NAME);
1525 break;
1526 case MSM_FRONTEND_DAI_VOIP:
1527 session_id = voc_get_session_id(VOIP_SESSION_NAME);
1528 break;
1529 case MSM_FRONTEND_DAI_VOICEMMODE1:
1530 session_id = voc_get_session_id(VOICEMMODE1_NAME);
1531 break;
1532 case MSM_FRONTEND_DAI_VOICEMMODE2:
1533 session_id = voc_get_session_id(VOICEMMODE2_NAME);
1534 break;
1535 default:
1536 session_id = 0;
1537 }
1538
1539 pr_debug("%s session_id 0x%x", __func__, session_id);
1540 return session_id;
1541}
1542
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301543static int msm_pcm_routing_channel_mixer_v2(int fe_id, bool perf_mode,
1544 int dspst_id, int stream_type)
1545{
1546 int copp_idx = 0;
1547 int sess_type = 0;
1548 int j = 0, be_id = 0;
1549 int ret = 0;
1550
1551 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1552 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1553 return 0;
1554 }
1555
1556 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1557 sess_type = SESSION_TYPE_RX;
1558 else
1559 sess_type = SESSION_TYPE_TX;
1560
1561 if (!(channel_mixer_v2[fe_id][sess_type].enable)) {
1562 pr_debug("%s: channel mixer not enabled for FE %d direction %d\n",
1563 __func__, fe_id, sess_type);
1564 return 0;
1565 }
1566
1567 be_id = channel_mixer_v2[fe_id][sess_type].port_idx - 1;
1568 channel_mixer_v2[fe_id][sess_type].input_channels[0] =
1569 channel_mixer_v2[fe_id][sess_type].input_channel;
1570
1571 pr_debug("%s sess type %d,fe_id %d,override in:%d out:%d,be active %d\n",
1572 __func__, sess_type, fe_id,
1573 channel_mixer_v2[fe_id][sess_type].override_in_ch_map,
1574 channel_mixer_v2[fe_id][sess_type].override_out_ch_map,
1575 msm_bedais[be_id].active);
1576
1577 if ((msm_bedais[be_id].active) &&
1578 test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0])) {
1579 unsigned long copp =
1580 session_copp_map[fe_id][sess_type][be_id];
1581 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1582 if (test_bit(j, &copp)) {
1583 copp_idx = j;
1584 break;
1585 }
1586 }
1587
1588 ret = adm_programable_channel_mixer(
1589 msm_bedais[be_id].port_id,
1590 copp_idx, dspst_id, sess_type,
1591 &channel_mixer_v2[fe_id][sess_type], 0);
1592 }
1593
1594 return ret;
1595}
1596
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301597static int msm_pcm_routing_channel_mixer(int fe_id, bool perf_mode,
1598 int dspst_id, int stream_type)
1599{
1600 int copp_idx = 0;
1601 int sess_type = 0;
1602 int i = 0, j = 0, be_id;
1603 int ret = 0;
1604
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301605 ret = msm_pcm_routing_channel_mixer_v2(fe_id, perf_mode,
1606 dspst_id, stream_type);
1607 if (ret) {
1608 pr_err("%s channel mixer v2 cmd set failure%d\n", __func__,
1609 fe_id);
1610 return ret;
1611 }
1612
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301613 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1614 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1615 return 0;
1616 }
1617
1618 if (!(channel_mixer[fe_id].enable)) {
1619 pr_debug("%s: channel mixer not enabled for FE %d\n",
1620 __func__, fe_id);
1621 return 0;
1622 }
1623
1624 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1625 sess_type = SESSION_TYPE_RX;
1626 else
1627 sess_type = SESSION_TYPE_TX;
1628
1629 for (i = 0; i < ADM_MAX_CHANNELS && channel_input[fe_id][i] > 0;
1630 ++i) {
1631 be_id = channel_input[fe_id][i] - 1;
1632 channel_mixer[fe_id].input_channels[i] =
1633 msm_bedais[be_id].channel;
1634
1635 if ((msm_bedais[be_id].active) &&
1636 test_bit(fe_id,
1637 &msm_bedais[be_id].fe_sessions[0])) {
1638 unsigned long copp =
1639 session_copp_map[fe_id][sess_type][be_id];
1640 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1641 if (test_bit(j, &copp)) {
1642 copp_idx = j;
1643 break;
1644 }
1645 }
1646
1647 pr_debug("%s: fe %d, be %d, channel %d, copp %d\n",
1648 __func__,
1649 fe_id, be_id, msm_bedais[be_id].channel,
1650 copp_idx);
1651 ret = adm_programable_channel_mixer(
Meng Wangf016d302019-01-21 10:35:53 +08001652 get_port_id(msm_bedais[be_id].port_id),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301653 copp_idx, dspst_id, sess_type,
1654 channel_mixer + fe_id, i);
1655 }
1656 }
1657
1658 return ret;
1659}
1660
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301661/**
1662 * msm_pcm_routing_set_channel_mixer_runtime - apply channel mixer
1663 * setting during runtime.
1664 *
1665 * @be_id: backend index
1666 * @session_id: session index
1667 * @session_type: session type
1668 * @params: parameters for channel mixer
1669 *
1670 * Retuen: 0 for success, else error
1671 */
1672int msm_pcm_routing_set_channel_mixer_runtime(int be_id, int session_id,
1673 int session_type,
1674 struct msm_pcm_channel_mixer *params)
1675{
1676 int rc = 0;
1677 int port_id, copp_idx = 0;
1678
1679 be_id--;
1680 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1681 pr_err("%s: invalid backend id %d\n", __func__,
1682 be_id);
1683 return -EINVAL;
1684 }
1685
1686 port_id = msm_bedais[be_id].port_id;
1687 copp_idx = adm_get_default_copp_idx(port_id);
1688 pr_debug("%s: port_id - %d, copp_idx %d session id - %d\n",
1689 __func__, port_id, copp_idx, session_id);
1690
1691 if ((params->input_channel < 0) ||
1692 (params->input_channel > ADM_MAX_CHANNELS)) {
1693 pr_err("%s: invalid input channel %d\n", __func__,
1694 params->input_channel);
1695 return -EINVAL;
1696 }
1697
1698 if ((params->output_channel < 0) ||
1699 (params->output_channel > ADM_MAX_CHANNELS)) {
1700 pr_err("%s: invalid output channel %d\n", __func__,
1701 params->output_channel);
1702 return -EINVAL;
1703 }
1704
1705 params->input_channels[0] = params->input_channel;
1706
1707 pr_debug("%s sess type %d,override in:%d out:%d,be active %d\n",
1708 __func__, session_type,
1709 params->override_in_ch_map,
1710 params->override_out_ch_map,
1711 msm_bedais[be_id].active);
1712
1713 rc = adm_programable_channel_mixer(port_id,
1714 copp_idx,
1715 session_id,
1716 session_type,
1717 params,
1718 0);
1719 if (rc) {
1720 pr_err("%s: send params failed rc=%d\n", __func__, rc);
1721 rc = -EINVAL;
1722 }
1723 return rc;
1724}
1725EXPORT_SYMBOL(msm_pcm_routing_set_channel_mixer_runtime);
1726
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301727int msm_pcm_routing_reg_phy_stream(int fedai_id, int perf_mode,
1728 int dspst_id, int stream_type)
1729{
1730 int i, j, session_type, path_type, port_type, topology, num_copps = 0;
1731 struct route_payload payload;
1732 u32 channels, sample_rate;
1733 uint16_t bits_per_sample = 16;
1734 uint32_t passthr_mode = LEGACY_PCM;
1735 int ret = 0;
1736
1737 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1738 /* bad ID assigned in machine driver */
1739 pr_err("%s: bad MM ID %d\n", __func__, fedai_id);
1740 return -EINVAL;
1741 }
1742
1743 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1744 session_type = SESSION_TYPE_RX;
1745 path_type = ADM_PATH_PLAYBACK;
1746 port_type = MSM_AFE_PORT_TYPE_RX;
1747 } else {
1748 session_type = SESSION_TYPE_TX;
1749 path_type = ADM_PATH_LIVE_REC;
1750 port_type = MSM_AFE_PORT_TYPE_TX;
1751 }
1752
1753 mutex_lock(&routing_lock);
1754
1755 payload.num_copps = 0; /* only RX needs to use payload */
1756 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1757 fe_dai_map[fedai_id][session_type].perf_mode = perf_mode;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301758 fe_dai_map[fedai_id][session_type].passthr_mode = LEGACY_PCM;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301759
1760 /* re-enable EQ if active */
1761 msm_qti_pp_send_eq_values(fedai_id);
1762 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1763 if (!is_be_dai_extproc(i) &&
1764 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1765 (msm_bedais[i].active) &&
1766 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1767 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301768 int port_id = get_port_id(msm_bedais[i].port_id);
1769
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301770 /*
1771 * check if ADM needs to be configured with different
1772 * channel mapping than backend
1773 */
1774 if (!msm_bedais[i].adm_override_ch)
1775 channels = msm_bedais[i].channel;
1776 else
1777 channels = msm_bedais[i].adm_override_ch;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301778
1779 bits_per_sample = msm_routing_get_bit_width(
1780 msm_bedais[i].format);
1781
1782 app_type =
1783 fe_dai_app_type_cfg[fedai_id][session_type][i].app_type;
1784 if (app_type) {
1785 app_type_idx =
1786 msm_pcm_routing_get_app_type_idx(app_type);
1787 sample_rate =
1788 fe_dai_app_type_cfg[fedai_id][session_type][i]
1789 .sample_rate;
1790 bits_per_sample =
1791 app_type_cfg[app_type_idx].bit_width;
1792 } else
1793 sample_rate = msm_bedais[i].sample_rate;
1794
1795 acdb_dev_id =
1796 fe_dai_app_type_cfg[fedai_id][session_type][i]
1797 .acdb_dev_id;
1798 topology = msm_routing_get_adm_topology(fedai_id,
1799 session_type,
1800 i);
Surendar Karkae7507512018-07-20 15:46:54 +05301801 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301802 sample_rate, channels, topology,
1803 perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +05301804 app_type, acdb_dev_id,
1805 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301806 if ((copp_idx < 0) ||
1807 (copp_idx >= MAX_COPPS_PER_PORT)) {
1808 pr_err("%s: adm open failed copp_idx:%d\n",
Vikram Panduranga770b8382017-09-27 12:17:36 -07001809 __func__, copp_idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301810 mutex_unlock(&routing_lock);
1811 return -EINVAL;
1812 }
1813 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1814 __func__, fedai_id, session_type, i);
1815 set_bit(copp_idx,
1816 &session_copp_map[fedai_id][session_type][i]);
1817
1818 if (msm_is_resample_needed(
1819 sample_rate,
1820 msm_bedais[i].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05301821 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301822 msm_bedais[i].sample_rate);
1823
1824 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1825 unsigned long copp =
1826 session_copp_map[fedai_id][session_type][i];
1827 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301828 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301829 payload.copp_idx[num_copps] = j;
1830 payload.app_type[num_copps] =
1831 fe_dai_app_type_cfg
1832 [fedai_id][session_type]
1833 [i].app_type;
1834 payload.acdb_dev_id[num_copps] =
1835 fe_dai_app_type_cfg
1836 [fedai_id][session_type]
1837 [i].acdb_dev_id;
1838 payload.sample_rate[num_copps] =
1839 fe_dai_app_type_cfg
1840 [fedai_id][session_type]
1841 [i].sample_rate;
1842 num_copps++;
1843 }
1844 }
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301845 if (perf_mode == LEGACY_PCM_MODE)
Surendar Karkae7507512018-07-20 15:46:54 +05301846 msm_pcm_routing_cfg_pp(port_id, copp_idx,
1847 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301848 }
1849 }
1850 if (num_copps) {
1851 payload.num_copps = num_copps;
1852 payload.session_id = fe_dai_map[fedai_id][session_type].strm_id;
1853 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1854 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1855 }
1856
1857 ret = msm_pcm_routing_channel_mixer(fedai_id, perf_mode,
1858 dspst_id, stream_type);
1859 mutex_unlock(&routing_lock);
1860 return ret;
1861}
1862
1863int msm_pcm_routing_reg_phy_stream_v2(int fedai_id, int perf_mode,
1864 int dspst_id, int stream_type,
1865 struct msm_pcm_routing_evt event_info)
1866{
1867 if (msm_pcm_routing_reg_phy_stream(fedai_id, perf_mode, dspst_id,
1868 stream_type)) {
1869 pr_err("%s: failed to reg phy stream\n", __func__);
1870 return -EINVAL;
1871 }
1872
1873 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1874 fe_dai_map[fedai_id][SESSION_TYPE_RX].event_info = event_info;
1875 else
1876 fe_dai_map[fedai_id][SESSION_TYPE_TX].event_info = event_info;
1877 return 0;
1878}
1879
1880void msm_pcm_routing_dereg_phy_stream(int fedai_id, int stream_type)
1881{
Surendar Karkae7507512018-07-20 15:46:54 +05301882 int i, port_type, session_type, path_type, topology, port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301883 struct msm_pcm_routing_fdai_data *fdai;
1884
1885 if (!is_mm_lsm_fe_id(fedai_id)) {
1886 /* bad ID assigned in machine driver */
1887 pr_err("%s: bad MM ID\n", __func__);
1888 return;
1889 }
1890
1891 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1892 port_type = MSM_AFE_PORT_TYPE_RX;
1893 session_type = SESSION_TYPE_RX;
1894 path_type = ADM_PATH_PLAYBACK;
1895 } else {
1896 port_type = MSM_AFE_PORT_TYPE_TX;
1897 session_type = SESSION_TYPE_TX;
1898 path_type = ADM_PATH_LIVE_REC;
1899 }
1900
1901 mutex_lock(&routing_lock);
1902 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1903 if (!is_be_dai_extproc(i) &&
1904 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1905 (msm_bedais[i].active) &&
1906 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1907 int idx;
1908 unsigned long copp =
1909 session_copp_map[fedai_id][session_type][i];
1910 fdai = &fe_dai_map[fedai_id][session_type];
1911
1912 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1913 if (test_bit(idx, &copp))
1914 break;
1915
1916 if (idx >= MAX_COPPS_PER_PORT || idx < 0) {
1917 pr_debug("%s: copp idx is invalid, exiting\n",
1918 __func__);
1919 continue;
1920 }
Surendar Karkae7507512018-07-20 15:46:54 +05301921 port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301922 topology = adm_get_topology_for_port_copp_idx(
Surendar Karkae7507512018-07-20 15:46:54 +05301923 port_id, idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07001924 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +05301925 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301926 pr_debug("%s:copp:%ld,idx bit fe:%d,type:%d,be:%d\n",
1927 __func__, copp, fedai_id, session_type, i);
1928 clear_bit(idx,
1929 &session_copp_map[fedai_id][session_type][i]);
1930 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1931 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1932 (fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301933 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05301934 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301935 }
1936 }
1937
1938 fe_dai_map[fedai_id][session_type].strm_id = INVALID_SESSION;
1939 fe_dai_map[fedai_id][session_type].be_srate = 0;
1940 mutex_unlock(&routing_lock);
1941}
1942
1943/* Check if FE/BE route is set */
1944static bool msm_pcm_routing_route_is_set(u16 be_id, u16 fe_id)
1945{
1946 bool rc = false;
1947
1948 if (!is_mm_lsm_fe_id(fe_id)) {
1949 /* recheck FE ID in the mixer control defined in this file */
1950 pr_err("%s: bad MM ID\n", __func__);
1951 return rc;
1952 }
1953
1954 if (test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0]))
1955 rc = true;
1956
1957 return rc;
1958}
1959
1960static void msm_pcm_routing_process_audio(u16 reg, u16 val, int set)
1961{
1962 int session_type, path_type, topology;
1963 u32 channels, sample_rate;
1964 uint16_t bits_per_sample = 16;
1965 struct msm_pcm_routing_fdai_data *fdai;
1966 uint32_t passthr_mode;
1967 bool is_lsm;
1968
1969 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
1970
1971 if (!is_mm_lsm_fe_id(val)) {
1972 /* recheck FE ID in the mixer control defined in this file */
1973 pr_err("%s: bad MM ID\n", __func__);
1974 return;
1975 }
1976
1977 if (!route_check_fe_id_adm_support(val)) {
1978 /* ignore adm open if not supported for fe_id */
1979 pr_debug("%s: No ADM support for fe id %d\n", __func__, val);
1980 return;
1981 }
1982
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301983 session_type =
1984 (afe_get_port_type(msm_bedais[reg].port_id) == MSM_AFE_PORT_TYPE_RX) ?
1985 SESSION_TYPE_RX : SESSION_TYPE_TX;
1986 fdai = &fe_dai_map[val][session_type];
1987 passthr_mode = fdai->passthr_mode;
1988 if (session_type == SESSION_TYPE_RX) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301989 if (passthr_mode != LEGACY_PCM)
1990 path_type = ADM_PATH_COMPRESSED_RX;
1991 else
1992 path_type = ADM_PATH_PLAYBACK;
1993 } else {
Ralf Herzc8701f72018-06-20 11:37:35 +02001994 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301995 path_type = ADM_PATH_COMPRESSED_TX;
1996 else
1997 path_type = ADM_PATH_LIVE_REC;
1998 }
1999 is_lsm = (val >= MSM_FRONTEND_DAI_LSM1) &&
2000 (val <= MSM_FRONTEND_DAI_LSM8);
2001
2002 mutex_lock(&routing_lock);
2003 if (set) {
2004 if (!test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
2005 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
2006 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
2007 voc_start_playback(set, msm_bedais[reg].port_id);
2008
2009 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302010 if (msm_bedais[reg].active && fdai->strm_id !=
2011 INVALID_SESSION) {
2012 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05302013 int port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302014 /*
2015 * check if ADM needs to be configured with different
2016 * channel mapping than backend
2017 */
2018 if (!msm_bedais[reg].adm_override_ch)
2019 channels = msm_bedais[reg].channel;
2020 else
2021 channels = msm_bedais[reg].adm_override_ch;
2022 if (session_type == SESSION_TYPE_TX &&
2023 fdai->be_srate &&
2024 (fdai->be_srate != msm_bedais[reg].sample_rate)) {
2025 pr_debug("%s: flush strm %d diff BE rates\n",
2026 __func__, fdai->strm_id);
2027
2028 if (fdai->event_info.event_func)
2029 fdai->event_info.event_func(
2030 MSM_PCM_RT_EVT_BUF_RECFG,
2031 fdai->event_info.priv_data);
2032 fdai->be_srate = 0; /* might not need it */
2033 }
2034
2035 bits_per_sample = msm_routing_get_bit_width(
2036 msm_bedais[reg].format);
2037
2038 app_type =
2039 fe_dai_app_type_cfg[val][session_type][reg].app_type;
2040 if (app_type && is_lsm) {
2041 app_type_idx =
2042 msm_pcm_routing_get_lsm_app_type_idx(app_type);
2043 sample_rate =
2044 fe_dai_app_type_cfg[val][session_type][reg]
2045 .sample_rate;
2046 bits_per_sample =
2047 lsm_app_type_cfg[app_type_idx].bit_width;
2048 } else if (app_type) {
2049 app_type_idx =
2050 msm_pcm_routing_get_app_type_idx(app_type);
2051 sample_rate =
2052 fe_dai_app_type_cfg[val][session_type][reg]
2053 .sample_rate;
2054 bits_per_sample =
2055 app_type_cfg[app_type_idx].bit_width;
2056 } else
2057 sample_rate = msm_bedais[reg].sample_rate;
2058
2059 topology = msm_routing_get_adm_topology(val,
2060 session_type,
2061 reg);
2062 acdb_dev_id =
2063 fe_dai_app_type_cfg[val][session_type][reg].acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05302064 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302065 sample_rate, channels, topology,
2066 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +05302067 app_type, acdb_dev_id,
2068 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302069 if ((copp_idx < 0) ||
2070 (copp_idx >= MAX_COPPS_PER_PORT)) {
2071 pr_err("%s: adm open failed\n", __func__);
2072 mutex_unlock(&routing_lock);
2073 return;
2074 }
2075 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
2076 __func__, val, session_type, reg);
2077 set_bit(copp_idx,
2078 &session_copp_map[val][session_type][reg]);
2079
2080 if (msm_is_resample_needed(
2081 sample_rate,
2082 msm_bedais[reg].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05302083 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302084 msm_bedais[reg].sample_rate);
2085
2086 if (session_type == SESSION_TYPE_RX &&
2087 fdai->event_info.event_func)
2088 fdai->event_info.event_func(
2089 MSM_PCM_RT_EVT_DEVSWITCH,
2090 fdai->event_info.priv_data);
2091
2092 msm_pcm_routing_build_matrix(val, session_type,
2093 path_type,
2094 fdai->perf_mode,
2095 passthr_mode);
2096 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
2097 (passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05302098 msm_pcm_routing_cfg_pp(port_id, copp_idx,
2099 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302100 }
2101 } else {
2102 if (test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
2103 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
2104 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
2105 voc_start_playback(set, msm_bedais[reg].port_id);
2106 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302107 if (msm_bedais[reg].active && fdai->strm_id !=
2108 INVALID_SESSION) {
2109 int idx;
2110 int port_id;
2111 unsigned long copp =
2112 session_copp_map[val][session_type][reg];
2113 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
2114 if (test_bit(idx, &copp))
2115 break;
2116
Vignesh Kulothungane59d3152018-10-10 14:19:59 -07002117 if (idx >= MAX_COPPS_PER_PORT) {
2118 pr_debug("%s: copp idx is invalid, exiting\n",
2119 __func__);
2120 mutex_unlock(&routing_lock);
2121 return;
2122 }
Surendar Karkae7507512018-07-20 15:46:54 +05302123 port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302124 topology = adm_get_topology_for_port_copp_idx(port_id,
2125 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07002126 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +05302127 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302128 pr_debug("%s: copp: %ld, reset idx bit fe:%d, type: %d, be:%d topology=0x%x\n",
2129 __func__, copp, val, session_type, reg,
2130 topology);
2131 clear_bit(idx,
2132 &session_copp_map[val][session_type][reg]);
2133 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
2134 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
2135 (fdai->perf_mode == LEGACY_PCM_MODE) &&
2136 (passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05302137 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302138 msm_pcm_routing_build_matrix(val, session_type,
2139 path_type,
2140 fdai->perf_mode,
2141 passthr_mode);
2142 }
2143 }
2144 if ((msm_bedais[reg].port_id == VOICE_RECORD_RX)
2145 || (msm_bedais[reg].port_id == VOICE_RECORD_TX))
2146 voc_start_record(msm_bedais[reg].port_id, set, voc_session_id);
2147
2148 mutex_unlock(&routing_lock);
2149}
2150
2151static int msm_routing_get_audio_mixer(struct snd_kcontrol *kcontrol,
2152 struct snd_ctl_elem_value *ucontrol)
2153{
2154 struct soc_mixer_control *mc =
2155 (struct soc_mixer_control *)kcontrol->private_value;
2156
Meng Wang05d5e9a2018-03-28 16:45:03 +08002157 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302158 ucontrol->value.integer.value[0] = 1;
2159 else
2160 ucontrol->value.integer.value[0] = 0;
2161
Meng Wang05d5e9a2018-03-28 16:45:03 +08002162 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302163 ucontrol->value.integer.value[0]);
2164
2165 return 0;
2166}
2167
2168static int msm_routing_put_audio_mixer(struct snd_kcontrol *kcontrol,
2169 struct snd_ctl_elem_value *ucontrol)
2170{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302171 struct snd_soc_dapm_widget *widget =
2172 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302173 struct soc_mixer_control *mc =
2174 (struct soc_mixer_control *)kcontrol->private_value;
2175 struct snd_soc_dapm_update *update = NULL;
2176
2177 if (ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08002178 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false) {
2179 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302180 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2181 update);
2182 } else if (!ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08002183 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true) {
2184 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302185 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2186 update);
2187 }
2188
2189 return 1;
2190}
2191
2192static int msm_routing_get_listen_mixer(struct snd_kcontrol *kcontrol,
2193 struct snd_ctl_elem_value *ucontrol)
2194{
2195 struct soc_mixer_control *mc =
2196 (struct soc_mixer_control *)kcontrol->private_value;
2197
Meng Wang05d5e9a2018-03-28 16:45:03 +08002198 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302199 ucontrol->value.integer.value[0] = 1;
2200 else
2201 ucontrol->value.integer.value[0] = 0;
2202
Meng Wang05d5e9a2018-03-28 16:45:03 +08002203 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302204 ucontrol->value.integer.value[0]);
2205
2206 return 0;
2207}
2208
2209static int msm_routing_put_listen_mixer(struct snd_kcontrol *kcontrol,
2210 struct snd_ctl_elem_value *ucontrol)
2211{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302212 struct snd_soc_dapm_widget *widget =
2213 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302214 struct soc_mixer_control *mc =
2215 (struct soc_mixer_control *)kcontrol->private_value;
2216 struct snd_soc_dapm_update *update = NULL;
2217
Meng Wang05d5e9a2018-03-28 16:45:03 +08002218 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302219 ucontrol->value.integer.value[0]);
2220
2221 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002222 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false)
2223 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302224 snd_soc_dapm_mixer_update_power(widget->dapm,
2225 kcontrol, 1, update);
2226 } else if (!ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002227 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true)
2228 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302229 snd_soc_dapm_mixer_update_power(widget->dapm,
2230 kcontrol, 0, update);
2231 }
2232
2233 return 1;
2234}
2235
2236static void msm_pcm_routing_process_voice(u16 reg, u16 val, int set)
2237{
2238 u32 session_id = 0;
2239 u16 path_type;
2240 struct media_format_info voc_be_media_format;
2241
2242 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
2243
2244 session_id = msm_pcm_routing_get_voc_sessionid(val);
2245
2246 pr_debug("%s: FE DAI 0x%x session_id 0x%x\n",
2247 __func__, val, session_id);
2248
2249 mutex_lock(&routing_lock);
2250
2251 if (set)
2252 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2253 else
2254 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
2255
2256 if (val == MSM_FRONTEND_DAI_DTMF_RX &&
2257 afe_get_port_type(msm_bedais[reg].port_id) ==
2258 MSM_AFE_PORT_TYPE_RX) {
2259 pr_debug("%s(): set=%d port id=0x%x for dtmf generation\n",
2260 __func__, set, msm_bedais[reg].port_id);
2261 afe_set_dtmf_gen_rx_portid(msm_bedais[reg].port_id, set);
2262 }
2263
2264 if (afe_get_port_type(msm_bedais[reg].port_id) ==
2265 MSM_AFE_PORT_TYPE_RX)
2266 path_type = RX_PATH;
2267 else
2268 path_type = TX_PATH;
2269
2270 if (set) {
2271 if (msm_bedais[reg].active) {
2272 voc_set_route_flag(session_id, path_type, 1);
2273
2274 memset(&voc_be_media_format, 0,
2275 sizeof(struct media_format_info));
2276
2277 voc_be_media_format.port_id = msm_bedais[reg].port_id;
2278 voc_be_media_format.num_channels =
2279 msm_bedais[reg].channel;
2280 voc_be_media_format.sample_rate =
2281 msm_bedais[reg].sample_rate;
2282 voc_be_media_format.bits_per_sample =
2283 msm_bedais[reg].format;
2284 /* Defaulting this to 1 for voice call usecases */
2285 voc_be_media_format.channel_mapping[0] = 1;
2286
2287 voc_set_device_config(session_id, path_type,
2288 &voc_be_media_format);
2289
2290 if (voc_get_route_flag(session_id, TX_PATH) &&
2291 voc_get_route_flag(session_id, RX_PATH))
2292 voc_enable_device(session_id);
2293 } else {
2294 pr_debug("%s BE is not active\n", __func__);
2295 }
2296 } else {
2297 voc_set_route_flag(session_id, path_type, 0);
2298 voc_disable_device(session_id);
2299 }
2300
2301 mutex_unlock(&routing_lock);
2302
2303}
2304
2305static int msm_routing_get_voice_mixer(struct snd_kcontrol *kcontrol,
2306 struct snd_ctl_elem_value *ucontrol)
2307{
2308 struct soc_mixer_control *mc =
2309 (struct soc_mixer_control *)kcontrol->private_value;
2310
2311 mutex_lock(&routing_lock);
2312
Meng Wang05d5e9a2018-03-28 16:45:03 +08002313 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302314 ucontrol->value.integer.value[0] = 1;
2315 else
2316 ucontrol->value.integer.value[0] = 0;
2317
2318 mutex_unlock(&routing_lock);
2319
Meng Wang05d5e9a2018-03-28 16:45:03 +08002320 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302321 ucontrol->value.integer.value[0]);
2322
2323 return 0;
2324}
2325
2326static int msm_routing_put_voice_mixer(struct snd_kcontrol *kcontrol,
2327 struct snd_ctl_elem_value *ucontrol)
2328{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302329 struct snd_soc_dapm_widget *widget =
2330 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302331 struct soc_mixer_control *mc =
2332 (struct soc_mixer_control *)kcontrol->private_value;
2333 struct snd_soc_dapm_update *update = NULL;
2334
2335 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002336 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302337 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2338 update);
2339 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002340 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302341 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2342 update);
2343 }
2344
2345 return 1;
2346}
2347
2348static int msm_routing_get_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2349 struct snd_ctl_elem_value *ucontrol)
2350{
2351 struct soc_mixer_control *mc =
2352 (struct soc_mixer_control *)kcontrol->private_value;
2353
2354 mutex_lock(&routing_lock);
2355
Meng Wang05d5e9a2018-03-28 16:45:03 +08002356 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302357 ucontrol->value.integer.value[0] = 1;
2358 else
2359 ucontrol->value.integer.value[0] = 0;
2360
2361 mutex_unlock(&routing_lock);
2362
Meng Wang05d5e9a2018-03-28 16:45:03 +08002363 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302364 ucontrol->value.integer.value[0]);
2365
2366 return 0;
2367}
2368
2369static int msm_routing_put_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2370 struct snd_ctl_elem_value *ucontrol)
2371{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302372 struct snd_soc_dapm_widget *widget =
2373 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302374 struct soc_mixer_control *mc =
2375 (struct soc_mixer_control *)kcontrol->private_value;
2376 struct snd_soc_dapm_update *update = NULL;
2377
2378 if (ucontrol->value.integer.value[0]) {
2379 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002380 set_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302381 mutex_unlock(&routing_lock);
2382
2383 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2384 update);
2385 } else {
2386 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002387 clear_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302388 mutex_unlock(&routing_lock);
2389
2390 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2391 update);
2392 }
2393
Meng Wang05d5e9a2018-03-28 16:45:03 +08002394 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302395 ucontrol->value.integer.value[0]);
2396
2397 return 1;
2398}
2399
2400/*
2401 * Return the mapping between port ID and backend ID to enable the AFE callback
2402 * to determine the acdb_dev_id from the port id
2403 */
2404int msm_pcm_get_be_id_from_port_id(int port_id)
2405{
2406 int i;
2407 int be_id = -EINVAL;
2408
2409 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
2410 if (msm_bedais[i].port_id == port_id) {
2411 be_id = i;
2412 break;
2413 }
2414 }
2415
2416 return be_id;
2417}
2418
2419/*
2420 * Return the registered dev_acdb_id given a port ID to enable identifying the
2421 * correct AFE calibration information by comparing the header information.
2422 */
2423static int msm_pcm_get_dev_acdb_id_by_port_id(int port_id)
2424{
2425 int acdb_id = -EINVAL;
2426 int i = 0;
2427 int session;
2428 int port_type = afe_get_port_type(port_id);
2429 int be_id = msm_pcm_get_be_id_from_port_id(port_id);
2430
2431 pr_debug("%s:port_id %d be_id %d, port_type 0x%x\n",
2432 __func__, port_id, be_id, port_type);
2433
2434 if (port_type == MSM_AFE_PORT_TYPE_TX) {
2435 session = SESSION_TYPE_TX;
2436 } else if (port_type == MSM_AFE_PORT_TYPE_RX) {
2437 session = SESSION_TYPE_RX;
2438 } else {
2439 pr_err("%s: Invalid port type %d\n", __func__, port_type);
2440 acdb_id = -EINVAL;
2441 goto exit;
2442 }
2443
2444 if (be_id < 0) {
2445 pr_err("%s: Error getting backend id %d\n", __func__, be_id);
2446 goto exit;
2447 }
2448
2449 mutex_lock(&routing_lock);
2450 i = find_first_bit(&msm_bedais[be_id].fe_sessions[0],
2451 MSM_FRONTEND_DAI_MAX);
2452 if (i < MSM_FRONTEND_DAI_MAX)
2453 acdb_id = fe_dai_app_type_cfg[i][session][be_id].acdb_dev_id;
2454
2455 pr_debug("%s: FE[%d] session[%d] BE[%d] acdb_id(%d)\n",
2456 __func__, i, session, be_id, acdb_id);
2457 mutex_unlock(&routing_lock);
2458exit:
2459 return acdb_id;
2460}
2461
2462static int msm_routing_get_switch_mixer(struct snd_kcontrol *kcontrol,
2463 struct snd_ctl_elem_value *ucontrol)
2464{
2465 ucontrol->value.integer.value[0] = fm_switch_enable;
2466 pr_debug("%s: FM Switch enable %ld\n", __func__,
2467 ucontrol->value.integer.value[0]);
2468 return 0;
2469}
2470
2471static int msm_routing_put_switch_mixer(struct snd_kcontrol *kcontrol,
2472 struct snd_ctl_elem_value *ucontrol)
2473{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302474 struct snd_soc_dapm_widget *widget =
2475 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302476 struct snd_soc_dapm_update *update = NULL;
2477
2478 pr_debug("%s: FM Switch enable %ld\n", __func__,
2479 ucontrol->value.integer.value[0]);
2480 if (ucontrol->value.integer.value[0])
2481 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2482 update);
2483 else
2484 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2485 update);
2486 fm_switch_enable = ucontrol->value.integer.value[0];
2487 return 1;
2488}
2489
2490static int msm_routing_get_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2491 struct snd_ctl_elem_value *ucontrol)
2492{
2493 ucontrol->value.integer.value[0] = hfp_switch_enable;
2494 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2495 ucontrol->value.integer.value[0]);
2496 return 0;
2497}
2498
2499static int msm_routing_put_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2500 struct snd_ctl_elem_value *ucontrol)
2501{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302502 struct snd_soc_dapm_widget *widget =
2503 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302504 struct snd_soc_dapm_update *update = NULL;
2505
2506 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2507 ucontrol->value.integer.value[0]);
2508 if (ucontrol->value.integer.value[0])
2509 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2510 1, update);
2511 else
2512 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2513 0, update);
2514 hfp_switch_enable = ucontrol->value.integer.value[0];
2515 return 1;
2516}
2517
Aniket Kumar Latac0c31472018-02-22 14:46:09 -08002518static int msm_routing_a2dp_switch_mixer_get(struct snd_kcontrol *kcontrol,
2519 struct snd_ctl_elem_value *ucontrol)
2520{
2521 ucontrol->value.integer.value[0] = a2dp_switch_enable;
2522 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2523 ucontrol->value.integer.value[0]);
2524 return 0;
2525}
2526
2527static int msm_routing_a2dp_switch_mixer_put(struct snd_kcontrol *kcontrol,
2528 struct snd_ctl_elem_value *ucontrol)
2529{
2530 struct snd_soc_dapm_widget *widget =
2531 snd_soc_dapm_kcontrol_widget(kcontrol);
2532 struct snd_soc_dapm_update *update = NULL;
2533
2534 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2535 ucontrol->value.integer.value[0]);
2536 a2dp_switch_enable = ucontrol->value.integer.value[0];
2537 if (a2dp_switch_enable)
2538 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2539 1, update);
2540 else
2541 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2542 0, update);
2543 return 1;
2544}
2545
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302546static int msm_routing_get_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2547 struct snd_ctl_elem_value *ucontrol)
2548{
2549 ucontrol->value.integer.value[0] = int0_mi2s_switch_enable;
2550 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2551 ucontrol->value.integer.value[0]);
2552 return 0;
2553}
2554
2555static int msm_routing_put_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2556 struct snd_ctl_elem_value *ucontrol)
2557{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302558 struct snd_soc_dapm_widget *widget =
2559 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302560 struct snd_soc_dapm_update *update = NULL;
2561
2562 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2563 ucontrol->value.integer.value[0]);
2564 if (ucontrol->value.integer.value[0])
2565 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2566 update);
2567 else
2568 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2569 update);
2570 int0_mi2s_switch_enable = ucontrol->value.integer.value[0];
2571 return 1;
2572}
2573
2574static int msm_routing_get_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2575 struct snd_ctl_elem_value *ucontrol)
2576{
2577 ucontrol->value.integer.value[0] = int4_mi2s_switch_enable;
2578 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2579 ucontrol->value.integer.value[0]);
2580 return 0;
2581}
2582
2583static int msm_routing_put_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2584 struct snd_ctl_elem_value *ucontrol)
2585{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302586 struct snd_soc_dapm_widget *widget =
2587 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302588 struct snd_soc_dapm_update *update = NULL;
2589
2590 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2591 ucontrol->value.integer.value[0]);
2592 if (ucontrol->value.integer.value[0])
2593 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2594 update);
2595 else
2596 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2597 update);
2598 int4_mi2s_switch_enable = ucontrol->value.integer.value[0];
2599 return 1;
2600}
2601
2602static int msm_routing_get_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2603 struct snd_ctl_elem_value *ucontrol)
2604{
2605 ucontrol->value.integer.value[0] = usb_switch_enable;
2606 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2607 ucontrol->value.integer.value[0]);
2608 return 0;
2609}
2610
2611static int msm_routing_put_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2612 struct snd_ctl_elem_value *ucontrol)
2613{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302614 struct snd_soc_dapm_widget *widget =
2615 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302616 struct snd_soc_dapm_update *update = NULL;
2617
2618 pr_debug("%s: USB Switch enable %ld\n", __func__,
2619 ucontrol->value.integer.value[0]);
2620 if (ucontrol->value.integer.value[0])
2621 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2622 1, update);
2623 else
2624 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2625 0, update);
2626 usb_switch_enable = ucontrol->value.integer.value[0];
2627 return 1;
2628}
2629
2630static int msm_routing_get_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2631 struct snd_ctl_elem_value *ucontrol)
2632{
2633 ucontrol->value.integer.value[0] = pri_mi2s_switch_enable;
2634 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2635 ucontrol->value.integer.value[0]);
2636 return 0;
2637}
2638
2639static int msm_routing_put_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2640 struct snd_ctl_elem_value *ucontrol)
2641{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302642 struct snd_soc_dapm_widget *widget =
2643 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302644 struct snd_soc_dapm_update *update = NULL;
2645
2646 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2647 ucontrol->value.integer.value[0]);
2648 if (ucontrol->value.integer.value[0])
2649 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2650 update);
2651 else
2652 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2653 update);
2654 pri_mi2s_switch_enable = ucontrol->value.integer.value[0];
2655 return 1;
2656}
2657
2658static int msm_routing_get_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2659 struct snd_ctl_elem_value *ucontrol)
2660{
2661 ucontrol->value.integer.value[0] = sec_mi2s_switch_enable;
2662 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2663 ucontrol->value.integer.value[0]);
2664 return 0;
2665}
2666
2667static int msm_routing_put_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2668 struct snd_ctl_elem_value *ucontrol)
2669{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302670 struct snd_soc_dapm_widget *widget =
2671 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302672 struct snd_soc_dapm_update *update = NULL;
2673
2674 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2675 ucontrol->value.integer.value[0]);
2676 if (ucontrol->value.integer.value[0])
2677 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2678 update);
2679 else
2680 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2681 update);
2682 sec_mi2s_switch_enable = ucontrol->value.integer.value[0];
2683 return 1;
2684}
2685
2686static int msm_routing_get_tert_mi2s_switch_mixer(
2687 struct snd_kcontrol *kcontrol,
2688 struct snd_ctl_elem_value *ucontrol)
2689{
2690 ucontrol->value.integer.value[0] = tert_mi2s_switch_enable;
2691 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2692 ucontrol->value.integer.value[0]);
2693 return 0;
2694}
2695
2696static int msm_routing_put_tert_mi2s_switch_mixer(
2697 struct snd_kcontrol *kcontrol,
2698 struct snd_ctl_elem_value *ucontrol)
2699{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302700 struct snd_soc_dapm_widget *widget =
2701 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302702 struct snd_soc_dapm_update *update = NULL;
2703
2704 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2705 ucontrol->value.integer.value[0]);
2706 if (ucontrol->value.integer.value[0])
2707 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2708 update);
2709 else
2710 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2711 update);
2712 tert_mi2s_switch_enable = ucontrol->value.integer.value[0];
2713 return 1;
2714}
2715
2716static int msm_routing_get_quat_mi2s_switch_mixer(
2717 struct snd_kcontrol *kcontrol,
2718 struct snd_ctl_elem_value *ucontrol)
2719{
2720 ucontrol->value.integer.value[0] = quat_mi2s_switch_enable;
2721 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2722 ucontrol->value.integer.value[0]);
2723 return 0;
2724}
2725
2726static int msm_routing_put_quat_mi2s_switch_mixer(
2727 struct snd_kcontrol *kcontrol,
2728 struct snd_ctl_elem_value *ucontrol)
2729{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302730 struct snd_soc_dapm_widget *widget =
2731 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302732 struct snd_soc_dapm_update *update = NULL;
2733
2734 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2735 ucontrol->value.integer.value[0]);
2736 if (ucontrol->value.integer.value[0])
2737 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2738 update);
2739 else
2740 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2741 update);
2742 quat_mi2s_switch_enable = ucontrol->value.integer.value[0];
2743 return 1;
2744}
2745
Rohit Kumara5077932017-09-10 22:05:05 +05302746static int msm_routing_get_quin_mi2s_switch_mixer(
2747 struct snd_kcontrol *kcontrol,
2748 struct snd_ctl_elem_value *ucontrol)
2749{
2750 ucontrol->value.integer.value[0] = quin_mi2s_switch_enable;
2751 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2752 ucontrol->value.integer.value[0]);
2753 return 0;
2754}
2755
2756static int msm_routing_put_quin_mi2s_switch_mixer(
2757 struct snd_kcontrol *kcontrol,
2758 struct snd_ctl_elem_value *ucontrol)
2759{
2760 struct snd_soc_dapm_widget *widget =
2761 snd_soc_dapm_kcontrol_widget(kcontrol);
2762 struct snd_soc_dapm_update *update = NULL;
2763
2764 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2765 ucontrol->value.integer.value[0]);
2766 if (ucontrol->value.integer.value[0])
2767 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2768 update);
2769 else
2770 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2771 update);
2772 quin_mi2s_switch_enable = ucontrol->value.integer.value[0];
2773 return 1;
2774}
2775
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302776static int msm_routing_get_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2777 struct snd_ctl_elem_value *ucontrol)
2778{
2779 ucontrol->value.integer.value[0] = fm_pcmrx_switch_enable;
2780 pr_debug("%s: FM Switch enable %ld\n", __func__,
2781 ucontrol->value.integer.value[0]);
2782 return 0;
2783}
2784
2785static int msm_routing_put_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2786 struct snd_ctl_elem_value *ucontrol)
2787{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302788 struct snd_soc_dapm_widget *widget =
2789 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302790 struct snd_soc_dapm_update *update = NULL;
2791
2792 pr_debug("%s: FM Switch enable %ld\n", __func__,
2793 ucontrol->value.integer.value[0]);
2794 if (ucontrol->value.integer.value[0])
2795 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2796 update);
2797 else
2798 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2799 update);
2800 fm_pcmrx_switch_enable = ucontrol->value.integer.value[0];
2801 return 1;
2802}
2803
2804static int msm_routing_lsm_port_get(struct snd_kcontrol *kcontrol,
2805 struct snd_ctl_elem_value *ucontrol)
2806{
2807 ucontrol->value.integer.value[0] = lsm_port_index;
2808 return 0;
2809}
2810
2811static int msm_routing_lsm_port_put(struct snd_kcontrol *kcontrol,
2812 struct snd_ctl_elem_value *ucontrol)
2813{
2814 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
2815 int mux = ucontrol->value.enumerated.item[0];
2816 int lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2817
2818 if (mux >= e->items) {
2819 pr_err("%s: Invalid mux value %d\n", __func__, mux);
2820 return -EINVAL;
2821 }
2822
2823 pr_debug("%s: LSM enable %ld\n", __func__,
2824 ucontrol->value.integer.value[0]);
2825 switch (ucontrol->value.integer.value[0]) {
2826 case 1:
2827 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_0_TX;
2828 break;
2829 case 2:
2830 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_1_TX;
2831 break;
2832 case 3:
2833 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_2_TX;
2834 break;
2835 case 4:
2836 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_3_TX;
2837 break;
2838 case 5:
2839 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_4_TX;
2840 break;
2841 case 6:
2842 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2843 break;
2844 case 7:
2845 lsm_port = AFE_PORT_ID_TERTIARY_MI2S_TX;
2846 break;
2847 case 8:
2848 lsm_port = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2849 break;
2850 case 9:
2851 lsm_port = ADM_LSM_PORT_ID;
2852 break;
2853 case 10:
2854 lsm_port = AFE_PORT_ID_INT3_MI2S_TX;
2855 break;
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +05302856 case 11:
2857 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
2858 break;
2859 case 12:
2860 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_1;
2861 break;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302862 case 13:
Xiaoyu Yef439aed2019-01-02 16:40:01 -08002863 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_2;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302864 break;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302865 case 14:
Xiaoyu Yef439aed2019-01-02 16:40:01 -08002866 lsm_port = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2867 break;
2868 case 15:
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302869 lsm_port = AFE_PORT_ID_QUINARY_TDM_TX;
2870 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302871 default:
2872 pr_err("Default lsm port");
2873 break;
2874 }
2875 set_lsm_port(lsm_port);
2876 lsm_port_index = ucontrol->value.integer.value[0];
2877
2878 return 0;
2879}
2880
2881static int msm_routing_lsm_func_get(struct snd_kcontrol *kcontrol,
2882 struct snd_ctl_elem_value *ucontrol)
2883{
2884 int i;
2885 u16 port_id;
2886 enum afe_mad_type mad_type;
2887
2888 pr_debug("%s: enter\n", __func__);
2889 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2890 if (!strnstr(kcontrol->id.name, lsm_port_text[i],
2891 strlen(lsm_port_text[i])))
2892 break;
2893
2894 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002895 pr_warn("%s: Invalid id name %s\n", __func__,
2896 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302897 return -EINVAL;
2898 }
2899
2900 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2901
2902 /*Check for Tertiary/Quaternary/INT3 TX port*/
2903 if (strnstr(kcontrol->id.name, lsm_port_text[7],
2904 strlen(lsm_port_text[7])))
2905 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
2906
2907 if (strnstr(kcontrol->id.name, lsm_port_text[8],
2908 strlen(lsm_port_text[8])))
2909 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2910
2911 if (strnstr(kcontrol->id.name, lsm_port_text[10],
2912 strlen(lsm_port_text[10])))
2913 port_id = AFE_PORT_ID_INT3_MI2S_TX;
2914
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302915 if (strnstr(kcontrol->id.name, lsm_port_text[13],
2916 strlen(lsm_port_text[13])))
2917 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2918
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302919 if (strnstr(kcontrol->id.name, lsm_port_text[14],
2920 strlen(lsm_port_text[14])))
2921 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
2922
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302923 mad_type = afe_port_get_mad_type(port_id);
2924 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
2925 mad_type);
2926 switch (mad_type) {
2927 case MAD_HW_NONE:
2928 ucontrol->value.integer.value[0] = MADNONE;
2929 break;
2930 case MAD_HW_AUDIO:
2931 ucontrol->value.integer.value[0] = MADAUDIO;
2932 break;
2933 case MAD_HW_BEACON:
2934 ucontrol->value.integer.value[0] = MADBEACON;
2935 break;
2936 case MAD_HW_ULTRASOUND:
2937 ucontrol->value.integer.value[0] = MADULTRASOUND;
2938 break;
2939 case MAD_SW_AUDIO:
2940 ucontrol->value.integer.value[0] = MADSWAUDIO;
2941 break;
2942 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002943 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302944 return -EINVAL;
2945 }
2946 return 0;
2947}
2948
2949static int msm_routing_lsm_func_put(struct snd_kcontrol *kcontrol,
2950 struct snd_ctl_elem_value *ucontrol)
2951{
2952 int i;
2953 u16 port_id;
2954 enum afe_mad_type mad_type;
2955
2956 pr_debug("%s: enter\n", __func__);
2957 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2958 if (strnstr(kcontrol->id.name, lsm_port_text[i],
2959 strlen(lsm_port_text[i])))
2960 break;
2961
2962 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002963 pr_warn("%s: Invalid id name %s\n", __func__,
2964 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302965 return -EINVAL;
2966 }
2967
2968 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2969 switch (ucontrol->value.integer.value[0]) {
2970 case MADNONE:
2971 mad_type = MAD_HW_NONE;
2972 break;
2973 case MADAUDIO:
2974 mad_type = MAD_HW_AUDIO;
2975 break;
2976 case MADBEACON:
2977 mad_type = MAD_HW_BEACON;
2978 break;
2979 case MADULTRASOUND:
2980 mad_type = MAD_HW_ULTRASOUND;
2981 break;
2982 case MADSWAUDIO:
2983 mad_type = MAD_SW_AUDIO;
2984 break;
2985 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002986 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302987 return -EINVAL;
2988 }
2989
2990 /*Check for Tertiary/Quaternary/INT3 TX port*/
2991 if (strnstr(kcontrol->id.name, lsm_port_text[7],
2992 strlen(lsm_port_text[7])))
2993 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
2994
2995 if (strnstr(kcontrol->id.name, lsm_port_text[8],
2996 strlen(lsm_port_text[8])))
2997 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2998
2999 if (strnstr(kcontrol->id.name, lsm_port_text[10],
3000 strlen(lsm_port_text[10])))
3001 port_id = AFE_PORT_ID_INT3_MI2S_TX;
3002
Aditya Bavanarie9454c62018-08-23 23:45:20 +05303003 if (strnstr(kcontrol->id.name, lsm_port_text[13],
3004 strlen(lsm_port_text[13])))
3005 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
3006
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303007 if (strnstr(kcontrol->id.name, lsm_port_text[14],
3008 strlen(lsm_port_text[14])))
3009 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
3010
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303011 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
3012 mad_type);
3013 return afe_port_set_mad_type(port_id, mad_type);
3014}
3015
3016static const char *const adm_override_chs_text[] = {"Zero", "One", "Two"};
3017
3018static SOC_ENUM_SINGLE_EXT_DECL(slim_7_rx_adm_override_chs,
3019 adm_override_chs_text);
3020
3021static int msm_routing_adm_get_backend_idx(struct snd_kcontrol *kcontrol)
3022{
3023 int backend_id;
3024
3025 if (strnstr(kcontrol->id.name, "SLIM7_RX", sizeof("SLIM7_RX"))) {
3026 backend_id = MSM_BACKEND_DAI_SLIMBUS_7_RX;
3027 } else {
3028 pr_err("%s: unsupported backend id: %s",
3029 __func__, kcontrol->id.name);
3030 return -EINVAL;
3031 }
3032
3033 return backend_id;
3034}
3035static int msm_routing_adm_channel_config_get(
3036 struct snd_kcontrol *kcontrol,
3037 struct snd_ctl_elem_value *ucontrol)
3038{
3039 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
3040
3041 if (backend_id >= 0) {
3042 mutex_lock(&routing_lock);
3043 ucontrol->value.integer.value[0] =
3044 msm_bedais[backend_id].adm_override_ch;
3045 pr_debug("%s: adm channel count %ld for BE:%d\n", __func__,
3046 ucontrol->value.integer.value[0], backend_id);
3047 mutex_unlock(&routing_lock);
3048 }
3049
3050 return 0;
3051}
3052
3053static int msm_routing_adm_channel_config_put(
3054 struct snd_kcontrol *kcontrol,
3055 struct snd_ctl_elem_value *ucontrol)
3056{
3057 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
3058
3059 if (backend_id >= 0) {
3060 mutex_lock(&routing_lock);
3061 msm_bedais[backend_id].adm_override_ch =
3062 ucontrol->value.integer.value[0];
3063 pr_debug("%s:updating BE :%d adm channels: %d\n",
3064 __func__, backend_id,
3065 msm_bedais[backend_id].adm_override_ch);
3066 mutex_unlock(&routing_lock);
3067 }
3068
3069 return 0;
3070}
3071
3072static const struct snd_kcontrol_new adm_channel_config_controls[] = {
3073 SOC_ENUM_EXT("SLIM7_RX ADM Channels", slim_7_rx_adm_override_chs,
3074 msm_routing_adm_channel_config_get,
3075 msm_routing_adm_channel_config_put),
3076};
3077
3078static int msm_routing_slim_0_rx_aanc_mux_get(struct snd_kcontrol *kcontrol,
3079 struct snd_ctl_elem_value *ucontrol)
3080{
3081
3082 mutex_lock(&routing_lock);
3083 ucontrol->value.integer.value[0] = slim0_rx_aanc_fb_port;
3084 mutex_unlock(&routing_lock);
3085 pr_debug("%s: AANC Mux Port %ld\n", __func__,
3086 ucontrol->value.integer.value[0]);
3087 return 0;
3088};
3089
3090static int msm_routing_slim_0_rx_aanc_mux_put(struct snd_kcontrol *kcontrol,
3091 struct snd_ctl_elem_value *ucontrol)
3092{
3093 struct aanc_data aanc_info;
3094
3095 mutex_lock(&routing_lock);
3096 memset(&aanc_info, 0x00, sizeof(aanc_info));
3097 pr_debug("%s: AANC Mux Port %ld\n", __func__,
3098 ucontrol->value.integer.value[0]);
3099 slim0_rx_aanc_fb_port = ucontrol->value.integer.value[0];
3100 if (ucontrol->value.integer.value[0] == 0) {
3101 aanc_info.aanc_active = false;
3102 aanc_info.aanc_tx_port = 0;
3103 aanc_info.aanc_rx_port = 0;
3104 } else {
3105 aanc_info.aanc_active = true;
3106 aanc_info.aanc_rx_port = SLIMBUS_0_RX;
3107 aanc_info.aanc_tx_port =
3108 (SLIMBUS_0_RX - 1 + (slim0_rx_aanc_fb_port * 2));
3109 }
3110 afe_set_aanc_info(&aanc_info);
3111 mutex_unlock(&routing_lock);
3112 return 0;
3113};
3114static int msm_routing_get_port_mixer(struct snd_kcontrol *kcontrol,
3115 struct snd_ctl_elem_value *ucontrol)
3116{
3117 int idx = 0, shift = 0;
3118 struct soc_mixer_control *mc =
3119 (struct soc_mixer_control *)kcontrol->private_value;
3120
Meng Wang05d5e9a2018-03-28 16:45:03 +08003121 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
3122 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303123
3124 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
3125 pr_err("%s: Invalid idx = %d\n", __func__, idx);
3126 return -EINVAL;
3127 }
3128
3129 if (test_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003130 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303131 ucontrol->value.integer.value[0] = 1;
3132 else
3133 ucontrol->value.integer.value[0] = 0;
3134
Meng Wang05d5e9a2018-03-28 16:45:03 +08003135 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303136 ucontrol->value.integer.value[0]);
3137
3138 return 0;
3139}
3140
3141static int msm_routing_put_port_mixer(struct snd_kcontrol *kcontrol,
3142 struct snd_ctl_elem_value *ucontrol)
3143{
3144 int idx = 0, shift = 0;
3145 struct soc_mixer_control *mc =
3146 (struct soc_mixer_control *)kcontrol->private_value;
3147
Meng Wang05d5e9a2018-03-28 16:45:03 +08003148 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
3149 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303150
3151 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
3152 pr_err("%s: Invalid idx = %d\n", __func__, idx);
3153 return -EINVAL;
3154 }
3155
Meng Wang05d5e9a2018-03-28 16:45:03 +08003156 pr_debug("%s: shift 0x%x rshift 0x%x val %ld idx %d reminder shift %d\n",
3157 __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303158 ucontrol->value.integer.value[0], idx, shift);
3159
3160 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08003161 afe_loopback(1, msm_bedais[mc->shift].port_id,
3162 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303163 set_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003164 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303165 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08003166 afe_loopback(0, msm_bedais[mc->shift].port_id,
3167 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303168 clear_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003169 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303170 }
3171
3172 return 1;
3173}
3174
3175static int msm_pcm_get_channel_rule_index(struct snd_kcontrol *kcontrol,
3176 struct snd_ctl_elem_value *ucontrol)
3177{
3178 u16 fe_id = 0;
3179
3180 fe_id = ((struct soc_mixer_control *)
3181 kcontrol->private_value)->shift;
3182 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3183 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3184 return -EINVAL;
3185 }
3186
3187 ucontrol->value.integer.value[0] = channel_mixer[fe_id].rule;
3188
3189 return 0;
3190}
3191
3192static int msm_pcm_put_channel_rule_index(struct snd_kcontrol *kcontrol,
3193 struct snd_ctl_elem_value *ucontrol)
3194{
3195 u16 fe_id = 0;
3196
3197 fe_id = ((struct soc_mixer_control *)
3198 kcontrol->private_value)->shift;
3199 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3200 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3201 return -EINVAL;
3202 }
3203
3204 channel_mixer[fe_id].rule = ucontrol->value.integer.value[0];
3205
3206 return 1;
3207}
3208
3209static int msm_pcm_get_out_chs(struct snd_kcontrol *kcontrol,
3210 struct snd_ctl_elem_value *ucontrol)
3211{
3212 u16 fe_id = 0;
3213
3214 fe_id = ((struct soc_multi_mixer_control *)
3215 kcontrol->private_value)->shift;
3216 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3217 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3218 return -EINVAL;
3219 }
3220
3221 ucontrol->value.integer.value[0] =
3222 channel_mixer[fe_id].output_channel;
3223 return 0;
3224}
3225
3226static int msm_pcm_put_out_chs(struct snd_kcontrol *kcontrol,
3227 struct snd_ctl_elem_value *ucontrol)
3228{
3229 u16 fe_id = 0;
3230
3231 fe_id = ((struct soc_multi_mixer_control *)
3232 kcontrol->private_value)->shift;
3233 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3234 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3235 return -EINVAL;
3236 }
3237
3238 pr_debug("%s: fe_id is %d, output channels = %d\n", __func__,
3239 fe_id,
3240 (unsigned int)(ucontrol->value.integer.value[0]));
3241 channel_mixer[fe_id].output_channel =
3242 (unsigned int)(ucontrol->value.integer.value[0]);
3243
3244 return 1;
3245}
3246
3247static const char *const ch_mixer[] = {"Disable", "Enable"};
3248
3249/* If new backend is added, need update this array */
3250static const char *const be_name[] = {
3251"ZERO", "PRI_I2S_RX", "PRI_I2S_TX", "SLIM_0_RX",
3252"SLIM_0_TX", "HDMI_RX", "INT_BT_SCO_RX", "INT_BT_SCO_TX",
3253"INT_FM_RX", "INT_FM_TX", "AFE_PCM_RX", "AFE_PCM_TX",
3254"AUXPCM_RX", "AUXPCM_TX", "VOICE_PLAYBACK_TX", "VOICE2_PLAYBACK_TX",
3255"INCALL_RECORD_RX", "INCALL_RECORD_TX", "MI2S_RX", "MI2S_TX",
3256"SEC_I2S_RX", "SLIM_1_RX", "SLIM_1_TX", "SLIM_2_RX",
3257"SLIM_2_TX", "SLIM_3_RX", "SLIM_3_TX", "SLIM_4_RX",
3258"SLIM_4_TX", "SLIM_5_RX", "SLIM_5_TX", "SLIM_6_RX",
3259"SLIM_6_TX", "SLIM_7_RX", "SLIM_7_TX", "SLIM_8_RX",
3260"SLIM_8_TX", "EXTPROC_RX", "EXTPROC_TX", "EXPROC_EC_TX",
3261"QUAT_MI2S_RX", "QUAT_MI2S_TX", "SECOND_MI2S_RX", "SECOND_MI2S_TX",
3262"PRI_MI2S_RX", "PRI_MI2S_TX", "TERT_MI2S_RX", "TERT_MI2S_TX",
Ralf Herzc8701f72018-06-20 11:37:35 +02003263"AUDIO_I2S_RX", "SEC_AUXPCM_RX", "SEC_AUXPCM_TX", "PRI_SPDIF_RX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303264"SECOND_MI2S_RX_SD1", "QUIN_MI2S_RX", "QUIN_MI2S_TX", "SENARY_MI2S_TX",
3265"PRI_TDM_RX_0", "PRI_TDM_TX_0", "PRI_TDM_RX_1", "PRI_TDM_TX_1",
3266"PRI_TDM_RX_2", "PRI_TDM_TX_2", "PRI_TDM_RX_3", "PRI_TDM_TX_3",
3267"PRI_TDM_RX_4", "PRI_TDM_TX_4", "PRI_TDM_RX_5", "PRI_TDM_TX_5",
3268"PRI_TDM_RX_6", "PRI_TDM_TX_6", "PRI_TDM_RX_7", "PRI_TDM_TX_7",
3269"SEC_TDM_RX_0", "SEC_TDM_TX_0", "SEC_TDM_RX_1", "SEC_TDM_TX_1",
3270"SEC_TDM_RX_2", "SEC_TDM_TX_2", "SEC_TDM_RX_3", "SEC_TDM_TX_3",
3271"SEC_TDM_RX_4", "SEC_TDM_TX_4", "SEC_TDM_RX_5", "SEC_TDM_TX_5",
3272"SEC_TDM_RX_6", "SEC_TDM_TX_6", "SEC_TDM_RX_7", "SEC_TDM_TX_7",
3273"TERT_TDM_RX_0", "TERT_TDM_TX_0", "TERT_TDM_RX_1", "TERT_TDM_TX_1",
3274"TERT_TDM_RX_2", "TERT_TDM_TX_2", "TERT_TDM_RX_3", "TERT_TDM_TX_3",
3275"TERT_TDM_RX_4", "TERT_TDM_TX_4", "TERT_TDM_RX_5", "TERT_TDM_TX_5",
3276"TERT_TDM_RX_6", "TERT_TDM_TX_6", "TERT_TDM_RX_7", "TERT_TDM_TX_7",
3277"QUAT_TDM_RX_0", "QUAT_TDM_TX_0", "QUAT_TDM_RX_1", "QUAT_TDM_TX_1",
3278"QUAT_TDM_RX_2", "QUAT_TDM_TX_2", "QUAT_TDM_RX_3", "QUAT_TDM_TX_3",
3279"QUAT_TDM_RX_4", "QUAT_TDM_TX_4", "QUAT_TDM_RX_5", "QUAT_TDM_TX_5",
3280"QUAT_TDM_RX_6", "QUAT_TDM_TX_6", "QUAT_TDM_RX_7", "QUAT_TDM_TX_7",
Rohit Kumara5077932017-09-10 22:05:05 +05303281"QUIN_TDM_RX_0", "QUIN_TDM_TX_0", "QUIN_TDM_RX_1", "QUIN_TDM_TX_1",
3282"QUIN_TDM_RX_2", "QUIN_TDM_TX_2", "QUIN_TDM_RX_3", "QUIN_TDM_TX_3",
3283"QUIN_TDM_RX_4", "QUIN_TDM_TX_4", "QUIN_TDM_RX_5", "QUIN_TDM_TX_5",
3284"QUIN_TDM_RX_6", "QUIN_TDM_TX_6", "QUIN_TDM_RX_7", "QUIN_TDM_TX_7",
Meng Wangf016d302019-01-21 10:35:53 +08003285"INT_BT_A2DP_RX", "USB_RX", "USB_TX", "DISPLAY_PORT_RX",
3286"DISPLAY_PORT_RX1", "TERT_AUXPCM_RX", "TERT_AUXPCM_TX", "QUAT_AUXPCM_RX",
3287"QUAT_AUXPCM_TX", "QUIN_AUXPCM_RX", "QUIN_AUXPCM_TX", "INT0_MI2S_RX",
3288"INT0_MI2S_TX", "INT1_MI2S_RX", "INT1_MI2S_TX", "INT2_MI2S_RX",
3289"INT2_MI2S_TX", "INT3_MI2S_RX", "INT3_MI2S_TX", "INT4_MI2S_RX",
3290"INT4_MI2S_TX", "INT5_MI2S_RX", "INT5_MI2S_TX", "INT6_MI2S_RX",
3291"INT6_MI2S_TX", "SEN_AUXPCM_RX", "SEN_AUXPCM_TX", "SENARY_MI2S_RX",
3292"WSA_CDC_DMA_RX_0", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_RX_1","WSA_CDC_DMA_TX_1",
Xiaoyu Yef439aed2019-01-02 16:40:01 -08003293"WSA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_2",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303294"RX_CDC_DMA_RX_0", "TX_CDC_DMA_TX_0", "RX_CDC_DMA_RX_1", "TX_CDC_DMA_TX_1",
3295"RX_CDC_DMA_RX_2", "TX_CDC_DMA_TX_2", "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_3",
3296"RX_CDC_DMA_RX_4", "TX_CDC_DMA_TX_4", "RX_CDC_DMA_RX_5", "TX_CDC_DMA_TX_5",
3297"RX_CDC_DMA_RX_6", "RX_CDC_DMA_RX_7",
3298"PRI_SPDIF_TX", "SEC_SPDIF_RX", "SEC_SPDIF_TX",
Meng Wangf016d302019-01-21 10:35:53 +08003299"SLIM_9_RX", "SLIM_9_TX", "AFE_LOOPBACK_TX"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303300};
3301
3302static SOC_ENUM_SINGLE_DECL(mm1_channel_mux,
3303 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, ch_mixer);
3304static SOC_ENUM_SINGLE_DECL(mm2_channel_mux,
3305 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA2, ch_mixer);
3306static SOC_ENUM_SINGLE_DECL(mm3_channel_mux,
3307 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA3, ch_mixer);
3308static SOC_ENUM_SINGLE_DECL(mm4_channel_mux,
3309 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA4, ch_mixer);
3310
3311static SOC_ENUM_DOUBLE_DECL(mm1_ch1_enum,
3312 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 0, be_name);
3313static SOC_ENUM_DOUBLE_DECL(mm1_ch2_enum,
3314 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 1, be_name);
3315static SOC_ENUM_DOUBLE_DECL(mm1_ch3_enum,
3316 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 2, be_name);
3317static SOC_ENUM_DOUBLE_DECL(mm1_ch4_enum,
3318 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 3, be_name);
3319static SOC_ENUM_DOUBLE_DECL(mm1_ch5_enum,
3320 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 4, be_name);
3321static SOC_ENUM_DOUBLE_DECL(mm1_ch6_enum,
3322 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 5, be_name);
3323static SOC_ENUM_DOUBLE_DECL(mm1_ch7_enum,
3324 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 6, be_name);
3325static SOC_ENUM_DOUBLE_DECL(mm1_ch8_enum,
3326 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 7, be_name);
3327
3328static int msm_pcm_get_ctl_enum_info(struct snd_ctl_elem_info *uinfo,
3329 unsigned int channels,
3330 unsigned int items, const char *const names[])
3331{
3332 if (uinfo->value.enumerated.item >= items)
3333 uinfo->value.enumerated.item = items - 1;
3334
3335 WARN(strlen(names[uinfo->value.enumerated.item]) >=
3336 sizeof(uinfo->value.enumerated.name),
3337 "ALSA: too long item name '%s'\n",
3338 names[uinfo->value.enumerated.item]);
3339 strlcpy(uinfo->value.enumerated.name,
3340 names[uinfo->value.enumerated.item],
3341 sizeof(uinfo->value.enumerated.name));
3342 return 0;
3343}
3344
3345static int msm_pcm_channel_mixer_info(struct snd_kcontrol *kcontrol,
3346 struct snd_ctl_elem_info *uinfo)
3347{
3348 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3349
3350 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3351 uinfo->count = 1;
3352
3353 uinfo->value.enumerated.items = ARRAY_SIZE(ch_mixer);
3354 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3355
3356 return 0;
3357}
3358static int msm_pcm_channel_mixer_get(struct snd_kcontrol *kcontrol,
3359 struct snd_ctl_elem_value *ucontrol)
3360{
3361 u16 fe_id = 0;
3362
3363 fe_id = ((struct soc_enum *)
3364 kcontrol->private_value)->shift_l;
3365 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3366 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3367 return -EINVAL;
3368 }
3369
3370 pr_debug("%s: FE %d %s\n", __func__,
3371 fe_id,
3372 channel_mixer[fe_id].enable ? "Enabled" : "Disabled");
3373 ucontrol->value.enumerated.item[0] = channel_mixer[fe_id].enable;
3374 return 0;
3375}
3376
3377static int msm_pcm_channel_mixer_put(struct snd_kcontrol *kcontrol,
3378 struct snd_ctl_elem_value *ucontrol)
3379{
3380 u16 fe_id = 0;
3381
3382 fe_id = ((struct soc_enum *)
3383 kcontrol->private_value)->shift_l;
3384 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3385 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3386 return -EINVAL;
3387 }
3388
3389 channel_mixer[fe_id].enable = ucontrol->value.enumerated.item[0];
3390 pr_debug("%s: %s FE %d\n", __func__,
3391 channel_mixer[fe_id].enable ? "Enable" : "Disable",
3392 fe_id);
3393 return 0;
3394}
3395
3396static int msm_pcm_channel_input_be_info(struct snd_kcontrol *kcontrol,
3397 struct snd_ctl_elem_info *uinfo)
3398{
3399 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3400
3401 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3402 uinfo->count = 1;
3403
3404 uinfo->value.enumerated.items = ARRAY_SIZE(be_name);
3405 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3406
3407 return 0;
3408}
3409
3410static int msm_pcm_channel_input_be_put(struct snd_kcontrol *kcontrol,
3411 struct snd_ctl_elem_value *ucontrol)
3412{
3413 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3414 u16 fe_id = 0, in_ch = 0;
3415
3416 fe_id = e->shift_l;
3417 in_ch = e->shift_r;
3418 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3419 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3420 return -EINVAL;
3421 }
3422 if (in_ch >= ADM_MAX_CHANNELS) {
3423 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3424 return -EINVAL;
3425 }
3426
3427 channel_input[fe_id][in_ch] = ucontrol->value.enumerated.item[0];
3428 return 1;
3429}
3430
3431static int msm_pcm_channel_input_be_get(struct snd_kcontrol *kcontrol,
3432 struct snd_ctl_elem_value *ucontrol)
3433{
3434 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3435 u16 fe_id = 0, in_ch = 0;
3436
3437 fe_id = e->shift_l;
3438 in_ch = e->shift_r;
3439 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3440 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3441 return -EINVAL;
3442 }
3443 if (in_ch >= ADM_MAX_CHANNELS) {
3444 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3445 return -EINVAL;
3446 }
3447
3448 ucontrol->value.enumerated.item[0] = channel_input[fe_id][in_ch];
3449 return 1;
3450}
3451
3452
3453static int msm_pcm_channel_weight_info(struct snd_kcontrol *kcontrol,
3454 struct snd_ctl_elem_info *uinfo)
3455{
3456 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3457 uinfo->count = ADM_MAX_CHANNELS;
3458 uinfo->value.integer.min = 0;
3459 uinfo->value.integer.max = WEIGHT_0_DB;
3460
3461 return 0;
3462}
3463
3464static int msm_pcm_channel_weight_put(struct snd_kcontrol *kcontrol,
3465 struct snd_ctl_elem_value *ucontrol)
3466{
3467 u16 fe_id = 0, out_ch = 0;
3468 int i, weight;
3469
3470 fe_id = ((struct soc_multi_mixer_control *)
3471 kcontrol->private_value)->shift;
3472 out_ch = ((struct soc_multi_mixer_control *)
3473 kcontrol->private_value)->rshift;
3474 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3475 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3476 return -EINVAL;
3477 }
3478 if (out_ch >= ADM_MAX_CHANNELS) {
3479 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3480 return -EINVAL;
3481 }
3482
3483 pr_debug("%s: FE_ID: %d, channel weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld\n",
3484 __func__, fe_id,
3485 ucontrol->value.integer.value[0],
3486 ucontrol->value.integer.value[1],
3487 ucontrol->value.integer.value[2],
3488 ucontrol->value.integer.value[3],
3489 ucontrol->value.integer.value[4],
3490 ucontrol->value.integer.value[5],
3491 ucontrol->value.integer.value[6],
3492 ucontrol->value.integer.value[7]);
3493
3494 for (i = 0; i < ADM_MAX_CHANNELS; ++i) {
3495 weight = ucontrol->value.integer.value[i];
3496 channel_mixer[fe_id].channel_weight[out_ch][i] = weight;
3497 pr_debug("%s: FE_ID %d, output %d input %d weight %d\n",
3498 __func__, fe_id, out_ch, i,
3499 channel_mixer[fe_id].channel_weight[out_ch][i]);
3500 }
3501
3502 return 0;
3503}
3504
3505static int msm_pcm_channel_weight_get(struct snd_kcontrol *kcontrol,
3506 struct snd_ctl_elem_value *ucontrol)
3507{
3508 u16 fe_id = 0, out_ch = 0;
3509 int i;
3510
3511 fe_id = ((struct soc_multi_mixer_control *)
3512 kcontrol->private_value)->shift;
3513 out_ch = ((struct soc_multi_mixer_control *)
3514 kcontrol->private_value)->rshift;
3515 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3516 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3517 return -EINVAL;
3518 }
3519 if (out_ch >= ADM_MAX_CHANNELS) {
3520 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3521 return -EINVAL;
3522 }
3523
3524 for (i = 0; i < ADM_MAX_CHANNELS; ++i)
3525 ucontrol->value.integer.value[i] =
3526 channel_mixer[fe_id].channel_weight[out_ch][i];
3527
3528 pr_debug("%s: FE_ID: %d, weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld",
3529 __func__, fe_id,
3530 ucontrol->value.integer.value[0],
3531 ucontrol->value.integer.value[1],
3532 ucontrol->value.integer.value[2],
3533 ucontrol->value.integer.value[3],
3534 ucontrol->value.integer.value[4],
3535 ucontrol->value.integer.value[5],
3536 ucontrol->value.integer.value[6],
3537 ucontrol->value.integer.value[7]);
3538
3539 return 0;
3540}
3541
3542static const struct snd_kcontrol_new channel_mixer_controls[] = {
3543 SOC_SINGLE_EXT("MultiMedia1 Channel Rule", SND_SOC_NOPM,
3544 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3545 msm_pcm_get_channel_rule_index,
3546 msm_pcm_put_channel_rule_index),
3547 SOC_SINGLE_EXT("MultiMedia2 Channel Rule", SND_SOC_NOPM,
3548 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3549 msm_pcm_get_channel_rule_index,
3550 msm_pcm_put_channel_rule_index),
3551 SOC_SINGLE_EXT("MultiMedia3 Channel Rule", SND_SOC_NOPM,
3552 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3553 msm_pcm_get_channel_rule_index,
3554 msm_pcm_put_channel_rule_index),
3555 SOC_SINGLE_EXT("MultiMedia4 Channel Rule", SND_SOC_NOPM,
3556 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3557 msm_pcm_get_channel_rule_index,
3558 msm_pcm_put_channel_rule_index),
3559 SOC_SINGLE_EXT("MultiMedia5 Channel Rule", SND_SOC_NOPM,
3560 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3561 msm_pcm_get_channel_rule_index,
3562 msm_pcm_put_channel_rule_index),
3563 SOC_SINGLE_EXT("MultiMedia6 Channel Rule", SND_SOC_NOPM,
3564 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3565 msm_pcm_get_channel_rule_index,
3566 msm_pcm_put_channel_rule_index),
3567
3568 SOC_SINGLE_EXT("MultiMedia1 Channels", SND_SOC_NOPM,
3569 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3570 msm_pcm_get_out_chs,
3571 msm_pcm_put_out_chs),
3572 SOC_SINGLE_EXT("MultiMedia2 Channels", SND_SOC_NOPM,
3573 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3574 msm_pcm_get_out_chs,
3575 msm_pcm_put_out_chs),
3576 SOC_SINGLE_EXT("MultiMedia3 Channels", SND_SOC_NOPM,
3577 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3578 msm_pcm_get_out_chs,
3579 msm_pcm_put_out_chs),
3580 SOC_SINGLE_EXT("MultiMedia4 Channels", SND_SOC_NOPM,
3581 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3582 msm_pcm_get_out_chs,
3583 msm_pcm_put_out_chs),
3584 SOC_SINGLE_EXT("MultiMedia5 Channels", SND_SOC_NOPM,
3585 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3586 msm_pcm_get_out_chs,
3587 msm_pcm_put_out_chs),
3588 SOC_SINGLE_EXT("MultiMedia6 Channels", SND_SOC_NOPM,
3589 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3590 msm_pcm_get_out_chs,
3591 msm_pcm_put_out_chs),
3592 {
3593 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3594 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3595 .name = "MultiMedia1 Channel Mixer",
3596 .info = msm_pcm_channel_mixer_info,
3597 .get = msm_pcm_channel_mixer_get,
3598 .put = msm_pcm_channel_mixer_put,
3599 .private_value = (unsigned long)&(mm1_channel_mux)
3600 },
3601 {
3602 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3603 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3604 .name = "MultiMedia2 Channel Mixer",
3605 .info = msm_pcm_channel_mixer_info,
3606 .get = msm_pcm_channel_mixer_get,
3607 .put = msm_pcm_channel_mixer_put,
3608 .private_value = (unsigned long)&(mm2_channel_mux)
3609 },
3610 {
3611 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3612 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3613 .name = "MultiMedia3 Channel Mixer",
3614 .info = msm_pcm_channel_mixer_info,
3615 .get = msm_pcm_channel_mixer_get,
3616 .put = msm_pcm_channel_mixer_put,
3617 .private_value = (unsigned long)&(mm3_channel_mux)
3618 },
3619 {
3620 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3621 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3622 .name = "MultiMedia4 Channel Mixer",
3623 .info = msm_pcm_channel_mixer_info,
3624 .get = msm_pcm_channel_mixer_get,
3625 .put = msm_pcm_channel_mixer_put,
3626 .private_value = (unsigned long)&(mm4_channel_mux)
3627 },
3628 {
3629 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3630 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3631 .name = "MultiMedia1 Output Channel1",
3632 .info = msm_pcm_channel_weight_info,
3633 .get = msm_pcm_channel_weight_get,
3634 .put = msm_pcm_channel_weight_put,
3635 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3636 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 0,}
3637 },
3638 {
3639 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3640 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3641 .name = "MultiMedia1 Output Channel2",
3642 .info = msm_pcm_channel_weight_info,
3643 .get = msm_pcm_channel_weight_get,
3644 .put = msm_pcm_channel_weight_put,
3645 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3646 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 1, }
3647 },
3648 {
3649 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3650 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3651 .name = "MultiMedia1 Output Channel3",
3652 .info = msm_pcm_channel_weight_info,
3653 .get = msm_pcm_channel_weight_get,
3654 .put = msm_pcm_channel_weight_put,
3655 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3656 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 2,}
3657 },
3658 {
3659 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3660 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3661 .name = "MultiMedia1 Output Channel4",
3662 .info = msm_pcm_channel_weight_info,
3663 .get = msm_pcm_channel_weight_get,
3664 .put = msm_pcm_channel_weight_put,
3665 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3666 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 3,}
3667 },
3668 {
3669 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3670 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3671 .name = "MultiMedia1 Output Channel5",
3672 .info = msm_pcm_channel_weight_info,
3673 .get = msm_pcm_channel_weight_get,
3674 .put = msm_pcm_channel_weight_put,
3675 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3676 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 4,}
3677 },
3678 {
3679 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3680 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3681 .name = "MultiMedia1 Output Channel6",
3682 .info = msm_pcm_channel_weight_info,
3683 .get = msm_pcm_channel_weight_get,
3684 .put = msm_pcm_channel_weight_put,
3685 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3686 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 5,}
3687 },
3688 {
3689 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3690 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3691 .name = "MultiMedia1 Output Channel7",
3692 .info = msm_pcm_channel_weight_info,
3693 .get = msm_pcm_channel_weight_get,
3694 .put = msm_pcm_channel_weight_put,
3695 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3696 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 6,}
3697 },
3698 {
3699 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3700 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3701 .name = "MultiMedia1 Output Channel8",
3702 .info = msm_pcm_channel_weight_info,
3703 .get = msm_pcm_channel_weight_get,
3704 .put = msm_pcm_channel_weight_put,
3705 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3706 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 7,}
3707 },
3708 {
3709 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3710 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3711 .name = "MultiMedia2 Output Channel1",
3712 .info = msm_pcm_channel_weight_info,
3713 .get = msm_pcm_channel_weight_get,
3714 .put = msm_pcm_channel_weight_put,
3715 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3716 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 0,}
3717 },
3718 {
3719 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3720 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3721 .name = "MultiMedia2 Output Channel2",
3722 .info = msm_pcm_channel_weight_info,
3723 .get = msm_pcm_channel_weight_get,
3724 .put = msm_pcm_channel_weight_put,
3725 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3726 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 1,}
3727 },
3728 {
3729 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3730 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3731 .name = "MultiMedia2 Output Channel3",
3732 .info = msm_pcm_channel_weight_info,
3733 .get = msm_pcm_channel_weight_get,
3734 .put = msm_pcm_channel_weight_put,
3735 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3736 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 2,}
3737 },
3738 {
3739 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3740 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3741 .name = "MultiMedia3 Output Channel1",
3742 .info = msm_pcm_channel_weight_info,
3743 .get = msm_pcm_channel_weight_get,
3744 .put = msm_pcm_channel_weight_put,
3745 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3746 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 0,}
3747 },
3748 {
3749 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3750 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3751 .name = "MultiMedia3 Output Channel2",
3752 .info = msm_pcm_channel_weight_info,
3753 .get = msm_pcm_channel_weight_get,
3754 .put = msm_pcm_channel_weight_put,
3755 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3756 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 1,}
3757 },
3758 {
3759 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3760 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3761 .name = "MultiMedia1 Channel1",
3762 .info = msm_pcm_channel_input_be_info,
3763 .get = msm_pcm_channel_input_be_get,
3764 .put = msm_pcm_channel_input_be_put,
3765 .private_value = (unsigned long)&(mm1_ch1_enum)
3766 },
3767 {
3768 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3769 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3770 .name = "MultiMedia1 Channel2",
3771 .info = msm_pcm_channel_input_be_info,
3772 .get = msm_pcm_channel_input_be_get,
3773 .put = msm_pcm_channel_input_be_put,
3774 .private_value = (unsigned long)&(mm1_ch2_enum)
3775 },
3776 {
3777 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3778 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3779 .name = "MultiMedia1 Channel3",
3780 .info = msm_pcm_channel_input_be_info,
3781 .get = msm_pcm_channel_input_be_get,
3782 .put = msm_pcm_channel_input_be_put,
3783 .private_value = (unsigned long)&(mm1_ch3_enum)
3784 },
3785 {
3786 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3787 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3788 .name = "MultiMedia1 Channel4",
3789 .info = msm_pcm_channel_input_be_info,
3790 .get = msm_pcm_channel_input_be_get,
3791 .put = msm_pcm_channel_input_be_put,
3792 .private_value = (unsigned long)&(mm1_ch4_enum)
3793 },
3794 {
3795 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3796 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3797 .name = "MultiMedia1 Channel5",
3798 .info = msm_pcm_channel_input_be_info,
3799 .get = msm_pcm_channel_input_be_get,
3800 .put = msm_pcm_channel_input_be_put,
3801 .private_value = (unsigned long)&(mm1_ch5_enum)
3802 },
3803 {
3804 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3805 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3806 .name = "MultiMedia1 Channel6",
3807 .info = msm_pcm_channel_input_be_info,
3808 .get = msm_pcm_channel_input_be_get,
3809 .put = msm_pcm_channel_input_be_put,
3810 .private_value = (unsigned long)&(mm1_ch6_enum)
3811 },
3812 {
3813 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3814 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3815 .name = "MultiMedia1 Channel7",
3816 .info = msm_pcm_channel_input_be_info,
3817 .get = msm_pcm_channel_input_be_get,
3818 .put = msm_pcm_channel_input_be_put,
3819 .private_value = (unsigned long)&(mm1_ch7_enum)
3820 },
3821 {
3822 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3823 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3824 .name = "MultiMedia1 Channel8",
3825 .info = msm_pcm_channel_input_be_info,
3826 .get = msm_pcm_channel_input_be_get,
3827 .put = msm_pcm_channel_input_be_put,
3828 .private_value = (unsigned long)&(mm1_ch8_enum)
3829 },
3830};
3831static int msm_ec_ref_ch_get(struct snd_kcontrol *kcontrol,
3832 struct snd_ctl_elem_value *ucontrol)
3833{
3834 ucontrol->value.integer.value[0] = msm_ec_ref_ch;
3835 pr_debug("%s: msm_ec_ref_ch = %ld\n", __func__,
3836 ucontrol->value.integer.value[0]);
3837 return 0;
3838}
3839
3840static int msm_ec_ref_ch_put(struct snd_kcontrol *kcontrol,
3841 struct snd_ctl_elem_value *ucontrol)
3842{
3843 msm_ec_ref_ch = ucontrol->value.integer.value[0];
3844 pr_debug("%s: msm_ec_ref_ch = %d\n", __func__, msm_ec_ref_ch);
3845 adm_num_ec_ref_rx_chans(msm_ec_ref_ch);
3846 return 0;
3847}
3848
3849static const char *const ec_ref_ch_text[] = {"Zero", "One", "Two", "Three",
3850 "Four", "Five", "Six", "Seven", "Eight"};
3851
3852static int msm_ec_ref_bit_format_get(struct snd_kcontrol *kcontrol,
3853 struct snd_ctl_elem_value *ucontrol)
3854{
3855 switch (msm_ec_ref_bit_format) {
3856 case SNDRV_PCM_FORMAT_S24_LE:
3857 ucontrol->value.integer.value[0] = 2;
3858 break;
3859 case SNDRV_PCM_FORMAT_S16_LE:
3860 ucontrol->value.integer.value[0] = 1;
3861 break;
3862 default:
3863 ucontrol->value.integer.value[0] = 0;
3864 break;
3865 }
3866 pr_debug("%s: msm_ec_ref_bit_format = %ld\n",
3867 __func__, ucontrol->value.integer.value[0]);
3868 return 0;
3869}
3870
3871static int msm_ec_ref_bit_format_put(struct snd_kcontrol *kcontrol,
3872 struct snd_ctl_elem_value *ucontrol)
3873{
3874 u16 bit_width = 0;
3875
3876 switch (ucontrol->value.integer.value[0]) {
3877 case 2:
3878 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S24_LE;
3879 break;
3880 case 1:
3881 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
3882 break;
3883 default:
3884 msm_ec_ref_bit_format = 0;
3885 break;
3886 }
3887
3888 if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S16_LE)
3889 bit_width = 16;
3890 else if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S24_LE)
3891 bit_width = 24;
3892
3893 pr_debug("%s: msm_ec_ref_bit_format = %d\n",
3894 __func__, msm_ec_ref_bit_format);
3895 adm_ec_ref_rx_bit_width(bit_width);
3896 return 0;
3897}
3898
3899static char const *ec_ref_bit_format_text[] = {"0", "S16_LE", "S24_LE"};
3900
3901static int msm_ec_ref_rate_get(struct snd_kcontrol *kcontrol,
3902 struct snd_ctl_elem_value *ucontrol)
3903{
3904 ucontrol->value.integer.value[0] = msm_ec_ref_sampling_rate;
3905 pr_debug("%s: msm_ec_ref_sampling_rate = %ld\n",
3906 __func__, ucontrol->value.integer.value[0]);
3907 return 0;
3908}
3909
3910static int msm_ec_ref_rate_put(struct snd_kcontrol *kcontrol,
3911 struct snd_ctl_elem_value *ucontrol)
3912{
3913 switch (ucontrol->value.integer.value[0]) {
3914 case 0:
3915 msm_ec_ref_sampling_rate = 0;
3916 break;
3917 case 1:
3918 msm_ec_ref_sampling_rate = 8000;
3919 break;
3920 case 2:
3921 msm_ec_ref_sampling_rate = 16000;
3922 break;
3923 case 3:
3924 msm_ec_ref_sampling_rate = 32000;
3925 break;
3926 case 4:
3927 msm_ec_ref_sampling_rate = 44100;
3928 break;
3929 case 5:
3930 msm_ec_ref_sampling_rate = 48000;
3931 break;
3932 case 6:
3933 msm_ec_ref_sampling_rate = 96000;
3934 break;
3935 case 7:
3936 msm_ec_ref_sampling_rate = 192000;
3937 break;
3938 case 8:
3939 msm_ec_ref_sampling_rate = 384000;
3940 break;
3941 default:
3942 msm_ec_ref_sampling_rate = 48000;
3943 break;
3944 }
3945 pr_debug("%s: msm_ec_ref_sampling_rate = %d\n",
3946 __func__, msm_ec_ref_sampling_rate);
3947 adm_ec_ref_rx_sampling_rate(msm_ec_ref_sampling_rate);
3948 return 0;
3949}
3950
3951static const char *const ec_ref_rate_text[] = {"0", "8000", "16000",
3952 "32000", "44100", "48000", "96000", "192000", "384000"};
3953
3954static const struct soc_enum msm_route_ec_ref_params_enum[] = {
3955 SOC_ENUM_SINGLE_EXT(9, ec_ref_ch_text),
3956 SOC_ENUM_SINGLE_EXT(3, ec_ref_bit_format_text),
3957 SOC_ENUM_SINGLE_EXT(9, ec_ref_rate_text),
3958};
3959
3960static const struct snd_kcontrol_new ec_ref_param_controls[] = {
3961 SOC_ENUM_EXT("EC Reference Channels", msm_route_ec_ref_params_enum[0],
3962 msm_ec_ref_ch_get, msm_ec_ref_ch_put),
3963 SOC_ENUM_EXT("EC Reference Bit Format", msm_route_ec_ref_params_enum[1],
3964 msm_ec_ref_bit_format_get, msm_ec_ref_bit_format_put),
3965 SOC_ENUM_EXT("EC Reference SampleRate", msm_route_ec_ref_params_enum[2],
3966 msm_ec_ref_rate_get, msm_ec_ref_rate_put),
3967};
3968
3969static int msm_routing_ec_ref_rx_get(struct snd_kcontrol *kcontrol,
3970 struct snd_ctl_elem_value *ucontrol)
3971{
3972 pr_debug("%s: ec_ref_rx = %d", __func__, msm_route_ec_ref_rx);
3973 mutex_lock(&routing_lock);
3974 ucontrol->value.integer.value[0] = msm_route_ec_ref_rx;
3975 mutex_unlock(&routing_lock);
3976 return 0;
3977}
3978
3979static int msm_routing_ec_ref_rx_put(struct snd_kcontrol *kcontrol,
3980 struct snd_ctl_elem_value *ucontrol)
3981{
3982 int ec_ref_port_id;
Asish Bhattacharya34504582017-08-08 12:55:01 +05303983 struct snd_soc_dapm_widget *widget =
3984 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303985 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3986 struct snd_soc_dapm_update *update = NULL;
3987
3988
3989 mutex_lock(&routing_lock);
3990 switch (ucontrol->value.integer.value[0]) {
3991 case 0:
3992 msm_route_ec_ref_rx = 0;
3993 ec_ref_port_id = AFE_PORT_INVALID;
3994 break;
3995 case 1:
3996 msm_route_ec_ref_rx = 1;
3997 ec_ref_port_id = SLIMBUS_0_RX;
3998 break;
3999 case 2:
4000 msm_route_ec_ref_rx = 2;
4001 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_RX;
4002 break;
4003 case 3:
4004 msm_route_ec_ref_rx = 3;
4005 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
4006 break;
4007 case 4:
4008 msm_route_ec_ref_rx = 4;
4009 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
4010 break;
4011 case 5:
4012 msm_route_ec_ref_rx = 5;
4013 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
4014 break;
4015 case 6:
4016 msm_route_ec_ref_rx = 6;
4017 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
4018 break;
4019 case 7:
4020 msm_route_ec_ref_rx = 7;
4021 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_RX;
4022 break;
4023 case 9:
4024 msm_route_ec_ref_rx = 9;
4025 ec_ref_port_id = SLIMBUS_5_RX;
4026 break;
4027 case 10:
4028 msm_route_ec_ref_rx = 10;
4029 ec_ref_port_id = SLIMBUS_1_TX;
4030 break;
4031 case 11:
4032 msm_route_ec_ref_rx = 11;
4033 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_TX_1;
4034 break;
4035 case 12:
4036 msm_route_ec_ref_rx = 12;
4037 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX;
4038 break;
4039 case 13:
4040 msm_route_ec_ref_rx = 13;
4041 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_1;
4042 break;
4043 case 14:
4044 msm_route_ec_ref_rx = 14;
4045 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_2;
4046 break;
4047 case 15:
4048 msm_route_ec_ref_rx = 15;
4049 ec_ref_port_id = SLIMBUS_6_RX;
4050 break;
4051 case 16:
4052 msm_route_ec_ref_rx = 16;
4053 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_RX;
4054 break;
4055 case 17:
4056 msm_route_ec_ref_rx = 17;
4057 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_RX;
4058 break;
4059 case 18:
4060 msm_route_ec_ref_rx = 18;
4061 ec_ref_port_id = AFE_PORT_ID_TERTIARY_TDM_TX;
4062 break;
4063 case 19:
4064 msm_route_ec_ref_rx = 19;
4065 ec_ref_port_id = AFE_PORT_ID_USB_RX;
4066 break;
4067 case 20:
4068 msm_route_ec_ref_rx = 20;
4069 ec_ref_port_id = AFE_PORT_ID_INT0_MI2S_RX;
4070 break;
4071 case 21:
4072 msm_route_ec_ref_rx = 21;
4073 ec_ref_port_id = AFE_PORT_ID_INT4_MI2S_RX;
4074 break;
4075 case 22:
4076 msm_route_ec_ref_rx = 22;
4077 ec_ref_port_id = AFE_PORT_ID_INT3_MI2S_TX;
4078 break;
Aalique Grahamee4fd7d52017-11-28 13:24:13 -08004079 case 23:
4080 msm_route_ec_ref_rx = 23;
4081 ec_ref_port_id = AFE_PORT_ID_HDMI_OVER_DP_RX;
4082 break;
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05304083 case 24:
4084 msm_route_ec_ref_rx = 24;
4085 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_0;
4086 break;
4087 case 25:
4088 msm_route_ec_ref_rx = 25;
4089 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_1;
4090 break;
4091 case 26:
4092 msm_route_ec_ref_rx = 26;
4093 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_0;
4094 break;
4095 case 27:
4096 msm_route_ec_ref_rx = 27;
4097 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_1;
4098 break;
4099 case 28:
4100 msm_route_ec_ref_rx = 28;
4101 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_2;
4102 break;
Zhou Songb167db12018-07-02 17:14:00 +08004103 case 29:
4104 msm_route_ec_ref_rx = 29;
4105 ec_ref_port_id = SLIMBUS_7_RX;
4106 break;
Aditya Bavanari1e84a932018-06-18 19:40:08 +05304107 case 30:
4108 msm_route_ec_ref_rx = 30;
4109 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_0;
4110 break;
4111 case 31:
4112 msm_route_ec_ref_rx = 31;
4113 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_1;
4114 break;
4115 case 32:
4116 msm_route_ec_ref_rx = 32;
4117 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_2;
4118 break;
4119 case 33:
4120 msm_route_ec_ref_rx = 33;
4121 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_3;
4122 break;
4123 case 34:
4124 msm_route_ec_ref_rx = 34;
4125 ec_ref_port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_0;
4126 break;
Derek Chen2bb55772018-10-24 00:17:15 -07004127 case 35:
4128 msm_route_ec_ref_rx = 35;
4129 ec_ref_port_id = AFE_PORT_ID_TERTIARY_TDM_RX_2;
4130 break;
4131 case 36:
4132 msm_route_ec_ref_rx = 36;
4133 ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
4134 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304135 default:
4136 msm_route_ec_ref_rx = 0; /* NONE */
4137 pr_err("%s EC ref rx %ld not valid\n",
4138 __func__, ucontrol->value.integer.value[0]);
4139 ec_ref_port_id = AFE_PORT_INVALID;
4140 break;
4141 }
Surendar Karkae7507512018-07-20 15:46:54 +05304142 msm_ec_ref_port_id = ec_ref_port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304143 adm_ec_ref_rx_id(ec_ref_port_id);
4144 pr_debug("%s: msm_route_ec_ref_rx = %d\n",
4145 __func__, msm_route_ec_ref_rx);
4146 mutex_unlock(&routing_lock);
4147 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol,
4148 msm_route_ec_ref_rx, e, update);
4149 return 0;
4150}
4151
4152static const char *const ec_ref_rx[] = { "None", "SLIM_RX", "I2S_RX",
4153 "PRI_MI2S_TX", "SEC_MI2S_TX",
4154 "TERT_MI2S_TX", "QUAT_MI2S_TX", "SEC_I2S_RX", "PROXY_RX",
4155 "SLIM_5_RX", "SLIM_1_TX", "QUAT_TDM_TX_1",
4156 "QUAT_TDM_RX_0", "QUAT_TDM_RX_1", "QUAT_TDM_RX_2", "SLIM_6_RX",
4157 "TERT_MI2S_RX", "QUAT_MI2S_RX", "TERT_TDM_TX_0", "USB_AUDIO_RX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05304158 "INT0_MI2S_RX", "INT4_MI2S_RX", "INT3_MI2S_TX", "DISPLAY_PORT",
4159 "WSA_CDC_DMA_RX_0", "WSA_CDC_DMA_RX_1",
Zhou Songb167db12018-07-02 17:14:00 +08004160 "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_2",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05304161 "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 -07004162 "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 +05304163};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304164
4165static const struct soc_enum msm_route_ec_ref_rx_enum[] = {
4166 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rx), ec_ref_rx),
4167};
4168
4169static const struct snd_kcontrol_new ext_ec_ref_mux_ul1 =
4170 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL1 MUX Mux",
4171 msm_route_ec_ref_rx_enum[0],
4172 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4173
4174static const struct snd_kcontrol_new ext_ec_ref_mux_ul2 =
4175 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL2 MUX Mux",
4176 msm_route_ec_ref_rx_enum[0],
4177 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4178
4179static const struct snd_kcontrol_new ext_ec_ref_mux_ul3 =
4180 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL3 MUX Mux",
4181 msm_route_ec_ref_rx_enum[0],
4182 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4183
4184static const struct snd_kcontrol_new ext_ec_ref_mux_ul4 =
4185 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL4 MUX Mux",
4186 msm_route_ec_ref_rx_enum[0],
4187 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4188
4189static const struct snd_kcontrol_new ext_ec_ref_mux_ul5 =
4190 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL5 MUX Mux",
4191 msm_route_ec_ref_rx_enum[0],
4192 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4193
4194static const struct snd_kcontrol_new ext_ec_ref_mux_ul6 =
4195 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL6 MUX Mux",
4196 msm_route_ec_ref_rx_enum[0],
4197 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4198
4199static const struct snd_kcontrol_new ext_ec_ref_mux_ul8 =
4200 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL8 MUX Mux",
4201 msm_route_ec_ref_rx_enum[0],
4202 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4203
4204static const struct snd_kcontrol_new ext_ec_ref_mux_ul9 =
4205 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL9 MUX Mux",
4206 msm_route_ec_ref_rx_enum[0],
4207 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4208
Asish Bhattacharya34504582017-08-08 12:55:01 +05304209static const struct snd_kcontrol_new ext_ec_ref_mux_ul16 =
4210 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL16 MUX Mux",
4211 msm_route_ec_ref_rx_enum[0],
4212 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4213
Laxminath Kasam38070be2017-08-17 18:21:59 +05304214static const struct snd_kcontrol_new ext_ec_ref_mux_ul10 =
4215 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL10 MUX Mux",
4216 msm_route_ec_ref_rx_enum[0],
4217 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4218
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304219static const struct snd_kcontrol_new ext_ec_ref_mux_ul17 =
4220 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL17 MUX Mux",
4221 msm_route_ec_ref_rx_enum[0],
4222 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4223
4224static const struct snd_kcontrol_new ext_ec_ref_mux_ul18 =
4225 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL18 MUX Mux",
4226 msm_route_ec_ref_rx_enum[0],
4227 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4228
4229static const struct snd_kcontrol_new ext_ec_ref_mux_ul19 =
4230 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL19 MUX Mux",
4231 msm_route_ec_ref_rx_enum[0],
4232 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4233
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304234static const struct snd_kcontrol_new ext_ec_ref_mux_ul28 =
4235 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL28 MUX Mux",
4236 msm_route_ec_ref_rx_enum[0],
4237 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4238
4239static const struct snd_kcontrol_new ext_ec_ref_mux_ul29 =
4240 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL29 MUX Mux",
4241 msm_route_ec_ref_rx_enum[0],
4242 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4243
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304244static int msm_routing_ext_ec_get(struct snd_kcontrol *kcontrol,
4245 struct snd_ctl_elem_value *ucontrol)
4246{
4247 pr_debug("%s: ext_ec_ref_rx = %x\n", __func__, msm_route_ext_ec_ref);
4248
4249 mutex_lock(&routing_lock);
4250 ucontrol->value.integer.value[0] = msm_route_ext_ec_ref;
4251 mutex_unlock(&routing_lock);
4252 return 0;
4253}
4254
4255static int msm_routing_ext_ec_put(struct snd_kcontrol *kcontrol,
4256 struct snd_ctl_elem_value *ucontrol)
4257{
Asish Bhattacharya34504582017-08-08 12:55:01 +05304258 struct snd_soc_dapm_widget *widget =
4259 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304260 int mux = ucontrol->value.enumerated.item[0];
4261 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
4262 int ret = 1;
4263 bool state = true;
4264 uint16_t ext_ec_ref_port_id;
4265 struct snd_soc_dapm_update *update = NULL;
4266
4267 if (mux >= e->items) {
4268 pr_err("%s: Invalid mux value %d\n", __func__, mux);
4269 return -EINVAL;
4270 }
4271
4272 mutex_lock(&routing_lock);
4273 msm_route_ext_ec_ref = ucontrol->value.integer.value[0];
4274
4275 switch (msm_route_ext_ec_ref) {
4276 case EXT_EC_REF_PRI_MI2S_TX:
4277 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
4278 break;
4279 case EXT_EC_REF_SEC_MI2S_TX:
4280 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
4281 break;
4282 case EXT_EC_REF_TERT_MI2S_TX:
4283 ext_ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
4284 break;
4285 case EXT_EC_REF_QUAT_MI2S_TX:
4286 ext_ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
4287 break;
4288 case EXT_EC_REF_QUIN_MI2S_TX:
4289 ext_ec_ref_port_id = AFE_PORT_ID_QUINARY_MI2S_TX;
4290 break;
4291 case EXT_EC_REF_SLIM_1_TX:
4292 ext_ec_ref_port_id = SLIMBUS_1_TX;
4293 break;
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004294 case EXT_EC_REF_SEC_TDM_TX:
4295 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
4296 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304297 case EXT_EC_REF_NONE:
4298 default:
4299 ext_ec_ref_port_id = AFE_PORT_INVALID;
4300 state = false;
4301 break;
4302 }
4303
4304 pr_debug("%s: val = %d ext_ec_ref_port_id = 0x%0x state = %d\n",
4305 __func__, msm_route_ext_ec_ref, ext_ec_ref_port_id, state);
4306
4307 if (!voc_set_ext_ec_ref_port_id(ext_ec_ref_port_id, state)) {
4308 mutex_unlock(&routing_lock);
4309 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol, mux, e,
4310 update);
4311 } else {
4312 ret = -EINVAL;
4313 mutex_unlock(&routing_lock);
4314 }
4315 return ret;
4316}
4317
4318static const char * const ext_ec_ref_rx[] = {"NONE", "PRI_MI2S_TX",
4319 "SEC_MI2S_TX", "TERT_MI2S_TX",
4320 "QUAT_MI2S_TX", "QUIN_MI2S_TX",
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004321 "SLIM_1_TX", "SEC_TDM_TX"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304322
4323static const struct soc_enum msm_route_ext_ec_ref_rx_enum[] = {
4324 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ext_ec_ref_rx), ext_ec_ref_rx),
4325};
4326
4327static const struct snd_kcontrol_new voc_ext_ec_mux =
4328 SOC_DAPM_ENUM_EXT("VOC_EXT_EC MUX Mux", msm_route_ext_ec_ref_rx_enum[0],
4329 msm_routing_ext_ec_get, msm_routing_ext_ec_put);
4330
4331
4332static const struct snd_kcontrol_new pri_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004333 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4334 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304335 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004337 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4338 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304339 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4340 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004341 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4342 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304343 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4344 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004345 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4346 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304347 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004349 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4350 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304351 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004353 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4354 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304355 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004357 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4358 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304359 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004361 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4362 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304363 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004365 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4366 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304367 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004369 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4370 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304371 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004373 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4374 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304375 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004377 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4378 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304379 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004381 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4382 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304383 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004385 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4386 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304387 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004389 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4390 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304391 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004393 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4394 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304395 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004397 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4398 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304399 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004401 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4402 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304403 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004405 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4406 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304407 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4408 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304409 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4410 MSM_BACKEND_DAI_PRI_I2S_RX,
4411 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4412 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004413 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4414 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304415 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4416 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004417 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4418 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304419 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4420 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304421};
4422
4423static const struct snd_kcontrol_new sec_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004424 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4425 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304426 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004428 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4429 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304430 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4431 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004432 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4433 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304434 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4435 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004436 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4437 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304438 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4439 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004440 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4441 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304442 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4443 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004444 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4445 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304446 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004448 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4449 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304450 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004452 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4453 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304454 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004456 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4457 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304458 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4459 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004460 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4461 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304462 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4463 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004464 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4465 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304466 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004468 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4469 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304470 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004472 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4473 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304474 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4475 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004476 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4477 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304478 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004480 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4481 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304482 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4483 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004484 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4485 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304486 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4487 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004488 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4489 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304490 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4491 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004492 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4493 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304494 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004496 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4497 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304498 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4499 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304500 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4501 MSM_BACKEND_DAI_SEC_I2S_RX,
4502 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4503 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004504 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4505 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304506 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4507 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004508 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4509 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304510 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4511 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304512};
4513
Ralf Herzc8701f72018-06-20 11:37:35 +02004514static const struct snd_kcontrol_new pri_spdif_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004515 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004516 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304517 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004519 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004520 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304521 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004523 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004524 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304525 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004527 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004528 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304529 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004531 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004532 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304533 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004535 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004536 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304537 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004539 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004540 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304541 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004543 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004544 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304545 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004547 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004548 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304549 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004551 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004552 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304553 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4554 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004555 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004556 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304557 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004559 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004560 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304561 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004563 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004564 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304565 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004567 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004568 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304569 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004571 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004572 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304573 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004575 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004576 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304577 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004579 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004580 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304581 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004583 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004584 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304585 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004587 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004588 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304589 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4590 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304591 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4592 MSM_BACKEND_DAI_PRI_SPDIF_RX,
4593 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004595 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004596 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304597 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004599 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004600 MSM_BACKEND_DAI_PRI_SPDIF_RX,
4601 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4602 msm_routing_put_audio_mixer),
4603};
4604
4605static const struct snd_kcontrol_new sec_spdif_rx_mixer_controls[] = {
4606 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4607 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4608 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4609 msm_routing_put_audio_mixer),
4610 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4611 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4612 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4613 msm_routing_put_audio_mixer),
4614 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4615 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4616 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4617 msm_routing_put_audio_mixer),
4618 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4619 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4620 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4621 msm_routing_put_audio_mixer),
4622 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4623 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4624 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4625 msm_routing_put_audio_mixer),
4626 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4627 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4628 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4629 msm_routing_put_audio_mixer),
4630 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4631 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4632 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4633 msm_routing_put_audio_mixer),
4634 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4635 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4636 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4637 msm_routing_put_audio_mixer),
4638 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4639 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4640 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4641 msm_routing_put_audio_mixer),
4642 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4643 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4644 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4645 msm_routing_put_audio_mixer),
4646 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4647 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4648 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4649 msm_routing_put_audio_mixer),
4650 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4651 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4652 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4653 msm_routing_put_audio_mixer),
4654 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4655 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4656 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4657 msm_routing_put_audio_mixer),
4658 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4659 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4660 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4661 msm_routing_put_audio_mixer),
4662 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4663 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4664 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4665 msm_routing_put_audio_mixer),
4666 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4667 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4668 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4669 msm_routing_put_audio_mixer),
4670 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4671 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4672 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4673 msm_routing_put_audio_mixer),
4674 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4675 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4676 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4677 msm_routing_put_audio_mixer),
4678 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4679 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4680 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4681 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304682 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4683 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4684 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4685 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02004686 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4687 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4688 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4689 msm_routing_put_audio_mixer),
4690 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4691 MSM_BACKEND_DAI_SEC_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304692 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4693 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304694};
4695
4696static const struct snd_kcontrol_new slimbus_2_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004697 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4698 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304699 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004701 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4702 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304703 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004705 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4706 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304707 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004709 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4710 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304711 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004713 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4714 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304715 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004717 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4718 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304719 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004721 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4722 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304723 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4724 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004725 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4726 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304727 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004729 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4730 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304731 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004733 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4734 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304735 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004737 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4738 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304739 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004741 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4742 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304743 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004745 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4746 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304747 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004749 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4750 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304751 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4752 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004753 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4754 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304755 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4756 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004757 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4758 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304759 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4760 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304761 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4762 MSM_BACKEND_DAI_SLIMBUS_2_RX,
4763 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4764 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304765};
4766
4767static const struct snd_kcontrol_new slimbus_5_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004768 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4769 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304770 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4771 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004772 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4773 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304774 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4775 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004776 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4777 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304778 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004780 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4781 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304782 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004784 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4785 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304786 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004788 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4789 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304790 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004792 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4793 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304794 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4795 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004796 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4797 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304798 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4799 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004800 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4801 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304802 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004804 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4805 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304806 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004808 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4809 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304810 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004812 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4813 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304814 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004816 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4817 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304818 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4819 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004820 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4821 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304822 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4823 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004824 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4825 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304826 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004828 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4829 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304830 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004832 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4833 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304834 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4835 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004836 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4837 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304838 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4839 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004840 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4841 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304842 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4843 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304844 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4845 MSM_BACKEND_DAI_SLIMBUS_5_RX,
4846 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4847 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004848 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4849 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304850 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4851 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004852 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4853 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304854 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4855 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304856};
4857
4858static const struct snd_kcontrol_new slimbus_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004859 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4860 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304861 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004863 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4864 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304865 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4866 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004867 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4868 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304869 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004871 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4872 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304873 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004875 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4876 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304877 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004879 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4880 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304881 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004883 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4884 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304885 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004887 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4888 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304889 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4890 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004891 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4892 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304893 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004895 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4896 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304897 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4898 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004899 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4900 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304901 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4902 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004903 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4904 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304905 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4906 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004907 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4908 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304909 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004911 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4912 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304913 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004915 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4916 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304917 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4918 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004919 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4920 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304921 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4922 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004923 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4924 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304925 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4926 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004927 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4928 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304929 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4930 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004931 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4932 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304933 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4934 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304935 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4936 MSM_BACKEND_DAI_SLIMBUS_0_RX,
4937 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4938 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004939 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4940 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304941 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4942 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004943 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4944 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304945 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4946 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304947};
4948
4949static const struct snd_kcontrol_new mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004950 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4951 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304952 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004954 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4955 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304956 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4957 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004958 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4959 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304960 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004962 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4963 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304964 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004966 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4967 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304968 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004970 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4971 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304972 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004974 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4975 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304976 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004978 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4979 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304980 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004982 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4983 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304984 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4985 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004986 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4987 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304988 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004990 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4991 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304992 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004994 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4995 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304996 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4997 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004998 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4999 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305000 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5001 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005002 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5003 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305004 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005006 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5007 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305008 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5009 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005010 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5011 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305012 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5013 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005014 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5015 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305016 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5017 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005018 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5019 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305020 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5021 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005022 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5023 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305024 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5025 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305026 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5027 MSM_BACKEND_DAI_MI2S_RX,
5028 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5029 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005030 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5031 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305032 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5033 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005034 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5035 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305036 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5037 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305038};
5039
5040static const struct snd_kcontrol_new quaternary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005041 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5042 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305043 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5044 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005045 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5046 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305047 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5048 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005049 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5050 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305051 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5052 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005053 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5054 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305055 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5056 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005057 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5058 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305059 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5060 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005061 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5062 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305063 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5064 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005065 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5066 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305067 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5068 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005069 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5070 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305071 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5072 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005073 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5074 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305075 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5076 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005077 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5078 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305079 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005081 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5082 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305083 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005085 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5086 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305087 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005089 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5090 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305091 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005093 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5094 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305095 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005097 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5098 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305099 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5100 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005101 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5102 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305103 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005105 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5106 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305107 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5108 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005109 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5110 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305111 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5112 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005113 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5114 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305115 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5116 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305117 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5118 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
5119 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005121 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5122 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305123 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5124 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005125 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5126 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305127 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5128 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305129};
5130
5131static const struct snd_kcontrol_new quinary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005132 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5133 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305134 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5135 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005136 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5137 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305138 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5139 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005140 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5141 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305142 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5143 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005144 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5145 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305146 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5147 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005148 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5149 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305150 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5151 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005152 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5153 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305154 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5155 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005156 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5157 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305158 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5159 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005160 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5161 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305162 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005164 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5165 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305166 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5167 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005168 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5169 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305170 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5171 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005172 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5173 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305174 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5175 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005176 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5177 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305178 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5179 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005180 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5181 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305182 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005184 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5185 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305186 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005188 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5189 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305190 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005192 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5193 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305194 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005196 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5197 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305198 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005200 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5201 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305202 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005204 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5205 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305206 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5207 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305208 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5209 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
5210 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5211 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005212 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5213 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305214 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5215 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005216 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5217 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305218 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5219 msm_routing_put_audio_mixer),
5220
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305221};
5222
5223static const struct snd_kcontrol_new tertiary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005224 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5225 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305226 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5227 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005228 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5229 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305230 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5231 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005232 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5233 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305234 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5235 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005236 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5237 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305238 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5239 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005240 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5241 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305242 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5243 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005244 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5245 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305246 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5247 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005248 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5249 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305250 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5251 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005252 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5253 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305254 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5255 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005256 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5257 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305258 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5259 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005260 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5261 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305262 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005264 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5265 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305266 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005268 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5269 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305270 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5271 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005272 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5273 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305274 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5275 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005276 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5277 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305278 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5279 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005280 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5281 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305282 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005284 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5285 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305286 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005288 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5289 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305290 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5291 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305292 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5293 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
5294 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5295 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005296 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5297 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305298 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005300 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5301 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305302 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5303 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305304};
5305
5306static const struct snd_kcontrol_new secondary_mi2s_rx2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005307 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5308 MSM_BACKEND_DAI_SECONDARY_MI2S_RX_SD1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305309 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5310 msm_routing_put_audio_mixer),
5311};
5312
5313static const struct snd_kcontrol_new secondary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005314 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5315 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305316 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005318 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5319 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305320 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005322 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5323 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305324 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005326 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5327 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305328 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005330 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5331 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305332 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005334 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5335 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305336 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005338 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5339 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305340 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005342 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5343 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305344 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005346 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5347 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305348 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005350 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5351 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305352 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005354 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5355 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305356 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005358 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5359 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305360 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005362 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5363 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305364 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005366 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5367 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305368 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005370 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5371 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305372 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005374 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5375 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305376 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5377 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005378 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5379 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305380 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5381 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005382 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5383 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305384 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5385 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005386 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5387 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305388 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5389 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305390 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5391 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
5392 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5393 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005394 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5395 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305396 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005398 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5399 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305400 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5401 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305402};
5403
5404static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005405 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5406 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305407 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005409 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5410 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305411 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5412 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005413 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5414 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305415 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5416 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005417 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5418 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305419 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5420 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005421 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5422 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305423 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5424 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005425 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5426 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305427 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5428 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005429 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5430 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305431 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5432 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005433 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5434 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305435 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5436 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005437 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5438 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305439 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5440 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005441 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5442 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305443 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5444 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005445 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5446 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305447 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5448 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005449 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5450 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305451 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5452 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005453 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5454 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305455 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5456 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005457 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5458 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305459 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5460 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005461 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5462 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305463 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5464 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005465 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5466 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305467 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5468 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005469 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5470 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305471 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005473 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5474 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305475 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005477 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5478 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305479 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5480 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305481 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5482 MSM_BACKEND_DAI_PRI_MI2S_RX,
5483 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005485 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5486 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305487 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005489 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5490 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305491 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5492 msm_routing_put_audio_mixer),
5493
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305494};
5495
5496static const struct snd_kcontrol_new int0_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005497 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5498 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305499 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005501 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5502 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305503 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005505 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5506 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305507 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005509 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5510 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305511 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005513 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5514 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305515 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005517 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5518 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305519 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005521 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5522 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305523 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005525 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5526 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305527 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005529 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5530 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305531 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005533 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5534 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305535 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005537 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5538 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305539 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005541 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5542 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305543 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005545 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5546 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305547 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005549 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5550 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305551 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005553 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5554 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305555 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005557 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5558 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305559 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5560 msm_routing_put_audio_mixer),
5561};
5562
5563static const struct snd_kcontrol_new int4_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005564 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5565 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305566 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005568 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5569 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305570 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005572 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5573 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305574 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005576 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5577 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305578 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005580 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5581 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305582 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005584 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5585 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305586 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005588 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5589 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305590 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005592 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5593 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305594 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005596 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5597 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305598 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005600 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5601 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305602 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005604 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5605 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305606 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005608 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5609 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305610 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005612 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5613 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305614 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5615 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005616 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5617 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305618 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5619 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005620 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5621 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305622 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5623 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005624 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5625 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305626 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5627 msm_routing_put_audio_mixer),
5628};
5629
5630static const struct snd_kcontrol_new hdmi_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005631 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5632 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305633 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5634 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005635 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5636 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305637 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005639 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5640 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305641 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005643 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5644 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305645 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005647 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5648 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305649 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005651 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5652 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305653 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005655 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5656 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305657 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005659 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5660 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305661 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005663 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5664 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305665 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5666 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005667 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5668 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305669 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005671 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5672 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305673 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005675 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5676 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305677 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005679 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5680 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305681 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005683 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5684 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305685 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005687 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5688 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305689 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5690 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005691 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5692 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305693 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005695 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5696 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305697 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005699 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5700 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305701 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005703 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5704 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305705 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5706 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305707 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5708 MSM_BACKEND_DAI_HDMI_RX,
5709 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005711 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5712 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305713 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005715 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5716 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305717 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5718 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305719};
5720
5721static const struct snd_kcontrol_new display_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005722 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5723 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305724 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005726 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5727 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305728 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5729 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005730 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5731 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305732 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005734 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5735 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305736 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005738 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5739 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305740 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005742 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5743 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305744 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005746 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5747 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305748 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005750 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5751 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305752 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005754 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5755 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305756 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005758 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5759 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305760 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005762 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5763 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305764 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005766 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5767 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305768 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005770 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5771 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305772 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005774 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5775 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305776 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005778 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5779 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305780 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005782 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5783 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305784 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5785 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305786 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5787 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
5788 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5789 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305790};
5791
Karthikeyan Mani57550082018-05-03 18:43:58 -07005792static const struct snd_kcontrol_new display_port1_mixer_controls[] = {
5793 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5794 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5795 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5796 msm_routing_put_audio_mixer),
5797 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5798 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5799 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5800 msm_routing_put_audio_mixer),
5801 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5802 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5803 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5804 msm_routing_put_audio_mixer),
5805 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5806 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5807 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5808 msm_routing_put_audio_mixer),
5809 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5810 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5811 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5812 msm_routing_put_audio_mixer),
5813 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5814 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5815 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5816 msm_routing_put_audio_mixer),
5817 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5818 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5819 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5820 msm_routing_put_audio_mixer),
5821 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5822 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5823 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5824 msm_routing_put_audio_mixer),
5825 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5826 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5827 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5828 msm_routing_put_audio_mixer),
5829 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5830 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5831 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5832 msm_routing_put_audio_mixer),
5833 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5834 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5835 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5836 msm_routing_put_audio_mixer),
5837 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5838 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5839 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5840 msm_routing_put_audio_mixer),
5841 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5842 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5843 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5844 msm_routing_put_audio_mixer),
5845 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5846 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5847 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5848 msm_routing_put_audio_mixer),
5849 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5850 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5851 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5852 msm_routing_put_audio_mixer),
5853 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5854 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5855 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5856 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305857 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5858 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5859 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5860 msm_routing_put_audio_mixer),
Karthikeyan Mani57550082018-05-03 18:43:58 -07005861};
5862
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305863 /* incall music delivery mixer */
5864static const struct snd_kcontrol_new incall_music_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005865 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5866 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305867 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5868 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005869 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5870 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305871 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005873 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5874 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305875 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005877 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5878 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305879 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5880 msm_routing_put_audio_mixer),
5881};
5882
5883static const struct snd_kcontrol_new incall_music2_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005884 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5885 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305886 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005888 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5889 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305890 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005892 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5893 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305894 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005896 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5897 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305898 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5899 msm_routing_put_audio_mixer),
5900};
5901
5902static const struct snd_kcontrol_new slimbus_4_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005903 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5904 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305905 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5906 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005907 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5908 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305909 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005911 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5912 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305913 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005915 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5916 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305917 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5918 msm_routing_put_audio_mixer),
5919};
5920
5921static const struct snd_kcontrol_new slimbus_6_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005922 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5923 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305924 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5925 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005926 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5927 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305928 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005930 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5931 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305932 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5933 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005934 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5935 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305936 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5937 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005938 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5939 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305940 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5941 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005942 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5943 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305944 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005946 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5947 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305948 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005950 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5951 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305952 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005954 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5955 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305956 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5957 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005958 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5959 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305960 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005962 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5963 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305964 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005966 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5967 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305968 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005970 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5971 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305972 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005974 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5975 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305976 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005978 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5979 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305980 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005982 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5983 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305984 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5985 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305986 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5987 MSM_BACKEND_DAI_SLIMBUS_6_RX,
5988 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5989 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305990};
5991
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305992static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_mixer_controls[] = {
5993 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5994 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5995 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5996 msm_routing_put_audio_mixer),
5997 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5998 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5999 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6000 msm_routing_put_audio_mixer),
6001 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6002 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6003 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6004 msm_routing_put_audio_mixer),
6005 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6006 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6007 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6008 msm_routing_put_audio_mixer),
6009 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6010 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6011 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6012 msm_routing_put_audio_mixer),
6013 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6014 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6015 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6016 msm_routing_put_audio_mixer),
6017 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6018 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6019 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6020 msm_routing_put_audio_mixer),
6021 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6022 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6023 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6024 msm_routing_put_audio_mixer),
6025 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6026 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6027 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6028 msm_routing_put_audio_mixer),
6029 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6030 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6031 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6032 msm_routing_put_audio_mixer),
6033 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6034 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6035 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6036 msm_routing_put_audio_mixer),
6037 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6038 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6039 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6040 msm_routing_put_audio_mixer),
6041 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6042 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6043 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6044 msm_routing_put_audio_mixer),
6045 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6046 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6047 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6048 msm_routing_put_audio_mixer),
6049 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6050 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6051 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6052 msm_routing_put_audio_mixer),
6053 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6054 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6055 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6056 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306057 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6058 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6059 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6060 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05306061};
6062
6063static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_mixer_controls[] = {
6064 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6065 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6066 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6067 msm_routing_put_audio_mixer),
6068 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6069 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6070 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6071 msm_routing_put_audio_mixer),
6072 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6073 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6074 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6075 msm_routing_put_audio_mixer),
6076 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6077 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6078 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6079 msm_routing_put_audio_mixer),
6080 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6081 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6082 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6083 msm_routing_put_audio_mixer),
6084 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6085 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6086 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6087 msm_routing_put_audio_mixer),
6088 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6089 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6090 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6091 msm_routing_put_audio_mixer),
6092 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6093 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6094 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6095 msm_routing_put_audio_mixer),
6096 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6097 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6098 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6099 msm_routing_put_audio_mixer),
6100 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6101 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6102 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6103 msm_routing_put_audio_mixer),
6104 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6105 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6106 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6107 msm_routing_put_audio_mixer),
6108 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6109 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6110 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6111 msm_routing_put_audio_mixer),
6112 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6113 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6114 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6115 msm_routing_put_audio_mixer),
6116 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6117 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6118 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6119 msm_routing_put_audio_mixer),
6120 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6121 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6122 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6123 msm_routing_put_audio_mixer),
6124 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6125 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6126 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6127 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306128 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6129 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6130 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6131 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05306132};
6133
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306134static const struct snd_kcontrol_new rx_cdc_dma_rx_0_mixer_controls[] = {
6135 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6136 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6137 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6138 msm_routing_put_audio_mixer),
6139 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6140 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6141 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6142 msm_routing_put_audio_mixer),
6143 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6144 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6145 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6146 msm_routing_put_audio_mixer),
6147 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6148 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6149 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6150 msm_routing_put_audio_mixer),
6151 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6152 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6153 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6154 msm_routing_put_audio_mixer),
6155 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6156 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6157 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6158 msm_routing_put_audio_mixer),
6159 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6160 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6161 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6162 msm_routing_put_audio_mixer),
6163 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6164 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6165 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6166 msm_routing_put_audio_mixer),
6167 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6168 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6169 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6170 msm_routing_put_audio_mixer),
6171 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6172 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6173 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6174 msm_routing_put_audio_mixer),
6175 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6176 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6177 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6178 msm_routing_put_audio_mixer),
6179 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6180 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6181 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6182 msm_routing_put_audio_mixer),
6183 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6184 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6185 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6186 msm_routing_put_audio_mixer),
6187 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6188 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6189 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6190 msm_routing_put_audio_mixer),
6191 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6192 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6193 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6194 msm_routing_put_audio_mixer),
6195 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6196 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6197 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6198 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306199 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6200 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6201 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6202 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306203};
6204
6205static const struct snd_kcontrol_new rx_cdc_dma_rx_1_mixer_controls[] = {
6206 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6207 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6208 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6209 msm_routing_put_audio_mixer),
6210 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6211 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6212 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6213 msm_routing_put_audio_mixer),
6214 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6215 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6216 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6217 msm_routing_put_audio_mixer),
6218 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6219 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6220 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6221 msm_routing_put_audio_mixer),
6222 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6223 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6224 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6225 msm_routing_put_audio_mixer),
6226 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6227 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6228 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6229 msm_routing_put_audio_mixer),
6230 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6231 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6232 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6233 msm_routing_put_audio_mixer),
6234 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6235 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6236 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6237 msm_routing_put_audio_mixer),
6238 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6239 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6240 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6241 msm_routing_put_audio_mixer),
6242 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6243 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6244 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6245 msm_routing_put_audio_mixer),
6246 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6247 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6248 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6249 msm_routing_put_audio_mixer),
6250 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6251 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6252 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6253 msm_routing_put_audio_mixer),
6254 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6255 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6256 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6257 msm_routing_put_audio_mixer),
6258 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6259 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6260 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6261 msm_routing_put_audio_mixer),
6262 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6263 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6264 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6265 msm_routing_put_audio_mixer),
6266 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6267 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6268 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6269 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306270 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6271 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6272 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6273 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306274};
6275
6276static const struct snd_kcontrol_new rx_cdc_dma_rx_2_mixer_controls[] = {
6277 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6278 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6279 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6280 msm_routing_put_audio_mixer),
6281 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6282 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6283 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6284 msm_routing_put_audio_mixer),
6285 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6286 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6287 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6288 msm_routing_put_audio_mixer),
6289 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6290 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6291 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6292 msm_routing_put_audio_mixer),
6293 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6294 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6295 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6296 msm_routing_put_audio_mixer),
6297 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6298 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6299 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6300 msm_routing_put_audio_mixer),
6301 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6302 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6303 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6304 msm_routing_put_audio_mixer),
6305 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6306 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6307 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6308 msm_routing_put_audio_mixer),
6309 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6310 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6311 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6312 msm_routing_put_audio_mixer),
6313 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6314 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6315 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6316 msm_routing_put_audio_mixer),
6317 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6318 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6319 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6320 msm_routing_put_audio_mixer),
6321 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6322 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6323 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6324 msm_routing_put_audio_mixer),
6325 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6326 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6327 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6328 msm_routing_put_audio_mixer),
6329 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6330 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6331 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6332 msm_routing_put_audio_mixer),
6333 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6334 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6335 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6336 msm_routing_put_audio_mixer),
6337 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6338 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6339 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6340 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306341 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6342 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6343 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6344 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306345};
6346
6347static const struct snd_kcontrol_new rx_cdc_dma_rx_3_mixer_controls[] = {
6348 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6349 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6350 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6351 msm_routing_put_audio_mixer),
6352 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6353 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6354 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6355 msm_routing_put_audio_mixer),
6356 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6357 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6358 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6359 msm_routing_put_audio_mixer),
6360 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6361 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6362 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6363 msm_routing_put_audio_mixer),
6364 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6365 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6366 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6367 msm_routing_put_audio_mixer),
6368 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6369 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6370 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6371 msm_routing_put_audio_mixer),
6372 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6373 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6374 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6375 msm_routing_put_audio_mixer),
6376 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6377 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6378 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6379 msm_routing_put_audio_mixer),
6380 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6381 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6382 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6383 msm_routing_put_audio_mixer),
6384 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6385 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6386 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6387 msm_routing_put_audio_mixer),
6388 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6389 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6390 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6391 msm_routing_put_audio_mixer),
6392 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6393 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6394 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6395 msm_routing_put_audio_mixer),
6396 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6397 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6398 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6399 msm_routing_put_audio_mixer),
6400 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6401 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6402 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6403 msm_routing_put_audio_mixer),
6404 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6405 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6406 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6407 msm_routing_put_audio_mixer),
6408 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6409 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6410 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6411 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306412 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6413 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6414 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6415 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306416};
6417
6418static const struct snd_kcontrol_new rx_cdc_dma_rx_4_mixer_controls[] = {
6419 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6420 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6421 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6422 msm_routing_put_audio_mixer),
6423 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6424 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6425 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6426 msm_routing_put_audio_mixer),
6427 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6428 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6429 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6430 msm_routing_put_audio_mixer),
6431 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6432 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6433 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6434 msm_routing_put_audio_mixer),
6435 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6436 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6437 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6438 msm_routing_put_audio_mixer),
6439 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6440 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6441 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6442 msm_routing_put_audio_mixer),
6443 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6444 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6445 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6446 msm_routing_put_audio_mixer),
6447 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6448 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6449 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6450 msm_routing_put_audio_mixer),
6451 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6452 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6453 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6454 msm_routing_put_audio_mixer),
6455 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6456 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6457 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6458 msm_routing_put_audio_mixer),
6459 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6460 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6461 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6462 msm_routing_put_audio_mixer),
6463 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6464 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6465 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6466 msm_routing_put_audio_mixer),
6467 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6468 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6469 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6470 msm_routing_put_audio_mixer),
6471 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6472 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6473 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6474 msm_routing_put_audio_mixer),
6475 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6476 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6477 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6478 msm_routing_put_audio_mixer),
6479 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6480 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6481 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6482 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306483 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6484 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6485 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6486 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306487};
6488
6489static const struct snd_kcontrol_new rx_cdc_dma_rx_5_mixer_controls[] = {
6490 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6491 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6492 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6493 msm_routing_put_audio_mixer),
6494 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6495 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6496 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6497 msm_routing_put_audio_mixer),
6498 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6499 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6500 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6501 msm_routing_put_audio_mixer),
6502 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6503 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6504 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6505 msm_routing_put_audio_mixer),
6506 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6507 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6508 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6509 msm_routing_put_audio_mixer),
6510 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6511 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6512 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6513 msm_routing_put_audio_mixer),
6514 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6515 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6516 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6517 msm_routing_put_audio_mixer),
6518 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6519 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6520 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6521 msm_routing_put_audio_mixer),
6522 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6523 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6524 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6525 msm_routing_put_audio_mixer),
6526 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6527 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6528 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6529 msm_routing_put_audio_mixer),
6530 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6531 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6532 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6533 msm_routing_put_audio_mixer),
6534 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6535 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6536 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6537 msm_routing_put_audio_mixer),
6538 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6539 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6540 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6541 msm_routing_put_audio_mixer),
6542 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6543 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6544 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6545 msm_routing_put_audio_mixer),
6546 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6547 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6548 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6549 msm_routing_put_audio_mixer),
6550 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6551 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6552 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6553 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306554 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6555 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6556 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6557 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306558};
6559
6560static const struct snd_kcontrol_new rx_cdc_dma_rx_6_mixer_controls[] = {
6561 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6562 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6563 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6564 msm_routing_put_audio_mixer),
6565 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6566 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6567 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6568 msm_routing_put_audio_mixer),
6569 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6570 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6571 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6572 msm_routing_put_audio_mixer),
6573 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6574 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6575 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6576 msm_routing_put_audio_mixer),
6577 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6578 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6579 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6580 msm_routing_put_audio_mixer),
6581 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6582 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6583 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6584 msm_routing_put_audio_mixer),
6585 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6586 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6587 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6588 msm_routing_put_audio_mixer),
6589 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6590 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6591 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6592 msm_routing_put_audio_mixer),
6593 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6594 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6595 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6596 msm_routing_put_audio_mixer),
6597 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6598 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6599 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6600 msm_routing_put_audio_mixer),
6601 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6602 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6603 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6604 msm_routing_put_audio_mixer),
6605 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6606 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6607 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6608 msm_routing_put_audio_mixer),
6609 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6610 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6611 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6612 msm_routing_put_audio_mixer),
6613 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6614 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6615 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6616 msm_routing_put_audio_mixer),
6617 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6618 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6619 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6620 msm_routing_put_audio_mixer),
6621 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6622 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6623 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6624 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306625 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6626 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6627 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6628 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306629};
6630
6631static const struct snd_kcontrol_new rx_cdc_dma_rx_7_mixer_controls[] = {
6632 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6633 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6634 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6635 msm_routing_put_audio_mixer),
6636 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6637 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6638 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6639 msm_routing_put_audio_mixer),
6640 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6641 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6642 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6643 msm_routing_put_audio_mixer),
6644 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6645 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6646 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6647 msm_routing_put_audio_mixer),
6648 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6649 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6650 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6651 msm_routing_put_audio_mixer),
6652 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6653 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6654 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6655 msm_routing_put_audio_mixer),
6656 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6657 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6658 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6659 msm_routing_put_audio_mixer),
6660 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6661 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6662 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6663 msm_routing_put_audio_mixer),
6664 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6665 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6666 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6667 msm_routing_put_audio_mixer),
6668 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6669 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6670 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6671 msm_routing_put_audio_mixer),
6672 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6673 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6674 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6675 msm_routing_put_audio_mixer),
6676 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6677 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6678 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6679 msm_routing_put_audio_mixer),
6680 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6681 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6682 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6683 msm_routing_put_audio_mixer),
6684 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6685 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6686 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6687 msm_routing_put_audio_mixer),
6688 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6689 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6690 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6691 msm_routing_put_audio_mixer),
6692 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6693 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6694 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6695 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306696 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6697 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6698 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6699 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306700};
6701
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306702static const struct snd_kcontrol_new slimbus_7_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006703 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6704 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306705 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006707 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6708 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306709 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006711 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6712 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306713 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006715 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6716 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306717 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006719 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6720 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306721 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6722 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006723 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6724 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306725 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6726 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006727 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6728 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306729 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006731 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6732 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306733 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6734 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006735 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6736 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306737 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6738 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006739 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6740 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306741 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6742 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006743 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6744 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306745 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6746 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006747 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6748 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306749 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6750 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006751 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6752 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306753 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6754 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006755 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6756 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306757 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6758 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006759 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6760 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306761 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6762 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006763 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6764 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306765 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6766 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306767 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6768 MSM_BACKEND_DAI_SLIMBUS_7_RX,
6769 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6770 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306771};
6772
Surendar Karka3ef3d812018-09-28 18:52:35 +05306773static const struct snd_kcontrol_new slimbus_9_rx_mixer_controls[] = {
6774 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6775 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6776 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6777 msm_routing_put_audio_mixer),
6778 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6779 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6780 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6781 msm_routing_put_audio_mixer),
6782 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6783 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6784 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6785 msm_routing_put_audio_mixer),
6786 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6787 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6788 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6789 msm_routing_put_audio_mixer),
6790 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6791 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6792 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6793 msm_routing_put_audio_mixer),
6794 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6795 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6796 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6797 msm_routing_put_audio_mixer),
6798 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6799 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6800 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6801 msm_routing_put_audio_mixer),
6802 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6803 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6804 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6805 msm_routing_put_audio_mixer),
6806 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6807 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6808 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6809 msm_routing_put_audio_mixer),
6810 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6811 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6812 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6813 msm_routing_put_audio_mixer),
6814 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6815 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6816 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6817 msm_routing_put_audio_mixer),
6818 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6819 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6820 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6821 msm_routing_put_audio_mixer),
6822 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6823 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6824 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6825 msm_routing_put_audio_mixer),
6826 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6827 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6828 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6829 msm_routing_put_audio_mixer),
6830 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6831 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6832 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6833 msm_routing_put_audio_mixer),
6834 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6835 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6836 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6837 msm_routing_put_audio_mixer),
6838 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6839 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6840 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6841 msm_routing_put_audio_mixer),
6842};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306843static const struct snd_kcontrol_new usb_audio_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006844 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6845 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306846 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6847 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006848 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6849 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306850 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6851 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006852 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6853 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306854 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006856 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6857 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306858 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006860 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6861 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306862 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006864 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6865 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306866 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006868 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6869 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306870 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006872 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6873 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306874 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006876 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6877 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306878 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006880 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6881 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306882 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006884 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6885 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306886 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006888 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6889 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306890 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006892 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6893 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306894 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006896 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6897 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306898 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006900 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6901 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306902 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006904 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6905 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306906 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6907 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306908 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6909 MSM_BACKEND_DAI_USB_RX,
6910 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6911 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306912};
6913
6914static const struct snd_kcontrol_new int_bt_sco_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006915 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6916 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306917 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6918 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006919 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6920 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306921 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6922 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006923 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6924 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306925 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6926 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006927 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6928 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306929 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6930 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006931 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6932 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306933 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6934 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006935 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6936 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306937 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6938 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006939 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6940 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306941 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6942 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006943 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6944 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306945 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6946 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006947 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6948 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306949 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6950 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006951 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6952 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306953 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6954 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006955 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6956 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306957 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6958 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006959 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6960 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306961 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6962 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006963 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6964 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306965 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6966 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006967 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6968 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306969 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6970 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006971 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6972 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306973 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6974 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006975 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6976 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306977 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6978 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006979 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6980 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306981 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6982 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006983 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6984 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306985 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6986 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006987 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6988 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306989 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6990 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306991 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6992 MSM_BACKEND_DAI_INT_BT_SCO_RX,
6993 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006995 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6996 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306997 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006999 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7000 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307001 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7002 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307003};
7004
7005static const struct snd_kcontrol_new int_bt_a2dp_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007006 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7007 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307008 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7009 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007010 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7011 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307012 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7013 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007014 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7015 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307016 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7017 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007018 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7019 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307020 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7021 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007022 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7023 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307024 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7025 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007026 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7027 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307028 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7029 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007030 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7031 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307032 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7033 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007034 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7035 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307036 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7037 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007038 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7039 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307040 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7041 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007042 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7043 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307044 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7045 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007046 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7047 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307048 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7049 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007050 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7051 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307052 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7053 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007054 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7055 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307056 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7057 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007058 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7059 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307060 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7061 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007062 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7063 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307064 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7065 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007066 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7067 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307068 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7069 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307070 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7071 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
7072 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7073 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307074};
7075
7076static const struct snd_kcontrol_new int_fm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007077 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7078 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307079 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007081 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7082 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307083 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007085 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7086 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307087 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007089 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7090 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307091 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007093 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7094 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307095 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007097 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7098 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307099 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7100 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007101 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7102 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307103 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007105 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7106 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307107 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7108 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007109 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7110 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307111 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7112 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007113 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7114 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307115 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7116 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007117 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7118 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307119 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007121 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7122 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307123 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7124 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007125 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7126 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307127 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007129 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7130 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307131 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007133 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7134 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307135 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007137 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7138 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307139 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007141 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7142 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307143 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007145 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7146 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307147 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007149 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7150 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307151 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7152 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307153 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7154 MSM_BACKEND_DAI_INT_FM_RX,
7155 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007157 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7158 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307159 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007161 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7162 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307163 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7164 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307165};
7166
7167static const struct snd_kcontrol_new afe_pcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007168 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7169 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307170 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7171 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007172 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7173 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307174 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7175 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007176 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7177 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307178 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7179 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007180 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7181 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307182 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007184 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7185 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307186 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007188 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7189 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307190 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007192 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7193 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307194 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007196 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7197 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307198 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007200 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7201 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307202 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007204 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7205 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307206 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7207 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007208 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7209 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307210 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7211 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007212 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7213 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307214 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7215 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007216 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7217 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307218 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7219 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007220 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7221 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307222 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7223 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007224 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7225 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307226 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7227 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007228 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7229 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307230 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7231 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007232 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7233 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307234 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7235 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007236 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7237 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307238 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7239 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007240 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7241 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307242 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7243 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307244 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7245 MSM_BACKEND_DAI_AFE_PCM_RX,
7246 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7247 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007248 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7249 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307250 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7251 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007252 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7253 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307254 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7255 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307256};
7257
7258static const struct snd_kcontrol_new auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007259 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7260 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307261 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007263 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7264 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307265 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007267 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7268 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307269 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7270 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007271 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7272 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307273 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007275 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7276 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307277 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007279 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7280 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307281 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007283 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7284 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307285 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7286 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007287 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7288 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307289 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7290 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007291 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7292 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307293 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7294 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007295 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7296 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307297 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007299 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7300 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307301 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7302 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007303 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7304 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307305 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7306 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007307 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7308 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307309 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7310 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007311 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7312 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307313 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7314 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007315 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7316 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307317 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7318 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007319 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7320 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307321 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7322 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007323 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7324 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307325 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7326 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007327 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7328 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307329 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7330 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007331 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7332 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307333 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7334 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007335 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7336 MSM_BACKEND_DAI_AUXPCM_RX,
7337 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7338 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307339 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7340 MSM_BACKEND_DAI_AUXPCM_RX,
7341 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007343 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7344 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307345 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007347 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7348 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307349 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7350 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307351};
7352
7353static const struct snd_kcontrol_new sec_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007354 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7355 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307356 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007358 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7359 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307360 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007362 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7363 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307364 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007366 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7367 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307368 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007370 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7371 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307372 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007374 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7375 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307376 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7377 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007378 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7379 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307380 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7381 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007382 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7383 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307384 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7385 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007386 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7387 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307388 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7389 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007390 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7391 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307392 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7393 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007394 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7395 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307396 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007398 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7399 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307400 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7401 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007402 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7403 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307404 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7405 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007406 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7407 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307408 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007410 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7411 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307412 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007414 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7415 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307416 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7417 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007418 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7419 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307420 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007422 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7423 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307424 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7425 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007426 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7427 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307428 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7429 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007430 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7431 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
7432 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7433 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307434 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7435 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
7436 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007438 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7439 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307440 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007442 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7443 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307444 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7445 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307446};
7447
7448static const struct snd_kcontrol_new tert_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007449 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7450 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307451 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7452 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007453 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7454 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307455 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7456 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007457 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7458 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307459 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7460 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007461 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7462 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307463 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7464 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007465 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7466 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307467 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7468 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007469 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7470 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307471 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007473 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7474 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307475 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007477 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7478 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307479 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007481 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7482 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307483 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007485 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7486 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307487 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007489 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7490 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307491 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007493 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7494 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307495 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007497 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7498 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307499 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007501 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7502 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307503 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007505 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7506 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307507 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007509 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7510 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307511 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7512 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307513 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7514 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
7515 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7516 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307517};
7518
7519static const struct snd_kcontrol_new quat_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007520 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7521 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307522 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7523 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007524 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7525 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307526 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7527 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007528 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7529 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307530 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7531 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007532 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7533 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307534 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7535 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007536 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7537 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307538 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7539 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007540 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7541 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307542 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007544 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7545 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307546 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007548 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7549 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307550 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007552 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7553 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307554 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007556 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7557 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307558 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007560 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7561 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307562 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007564 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7565 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307566 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007568 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7569 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307570 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007572 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7573 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307574 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007576 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7577 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307578 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007580 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7581 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307582 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7583 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307584 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7585 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
7586 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7587 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307588};
7589
Rohit Kumara5077932017-09-10 22:05:05 +05307590static const struct snd_kcontrol_new quin_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007591 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7592 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307593 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007595 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7596 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307597 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007599 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7600 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307601 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7602 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007603 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7604 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307605 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007607 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7608 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307609 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007611 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7612 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307613 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007615 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7616 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307617 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007619 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7620 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307621 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7622 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007623 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7624 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307625 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007627 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7628 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307629 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7630 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007631 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7632 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307633 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7634 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007635 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7636 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307637 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007639 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7640 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307641 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007643 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7644 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307645 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007647 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7648 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307649 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007651 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7652 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307653 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7654 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307655 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7656 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
7657 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7658 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05307659};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307660static const struct snd_kcontrol_new pri_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007661 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7662 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307663 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7664 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007665 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7666 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307667 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7668 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007669 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7670 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307671 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007673 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7674 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307675 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007677 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7678 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307679 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007681 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7682 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307683 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007685 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7686 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307687 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007689 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7690 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307691 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007693 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7694 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307695 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007697 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7698 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307699 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007701 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7702 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307703 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007705 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7706 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307707 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007709 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7710 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307711 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007713 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7714 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307715 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007717 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7718 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307719 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007721 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7722 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307723 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7724 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007725 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7726 MSM_BACKEND_DAI_PRI_TDM_RX_0,
7727 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7728 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307729};
7730
7731static const struct snd_kcontrol_new pri_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007732 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7733 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307734 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7735 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007736 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7737 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307738 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7739 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007740 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7741 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307742 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7743 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007744 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7745 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307746 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7747 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007748 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7749 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307750 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7751 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007752 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7753 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307754 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7755 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007756 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7757 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307758 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7759 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007760 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7761 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307762 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7763 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007764 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7765 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307766 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7767 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007768 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7769 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307770 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7771 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007772 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7773 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307774 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7775 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007776 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7777 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307778 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007780 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7781 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307782 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007784 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7785 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307786 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007788 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7789 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307790 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007792 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7793 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307794 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7795 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007796 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7797 MSM_BACKEND_DAI_PRI_TDM_RX_1,
7798 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7799 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307800};
7801
7802static const struct snd_kcontrol_new pri_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007803 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7804 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307805 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007807 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7808 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307809 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007811 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7812 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307813 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007815 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7816 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307817 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007819 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7820 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307821 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007823 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7824 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307825 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007827 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7828 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307829 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007831 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7832 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307833 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7834 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007835 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7836 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307837 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007839 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7840 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307841 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007843 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7844 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307845 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007847 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7848 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307849 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007851 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7852 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307853 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007855 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7856 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307857 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007859 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7860 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307861 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007863 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7864 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307865 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7866 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007867 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7868 MSM_BACKEND_DAI_PRI_TDM_RX_2,
7869 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7870 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307871};
7872
7873static const struct snd_kcontrol_new pri_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007874 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7875 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307876 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007878 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7879 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307880 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007882 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7883 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307884 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007886 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7887 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307888 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007890 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7891 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307892 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007894 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7895 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307896 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007898 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7899 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307900 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007902 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7903 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307904 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7905 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007906 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7907 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307908 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7909 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007910 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7911 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307912 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7913 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007914 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7915 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307916 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7917 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007918 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7919 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307920 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7921 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007922 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7923 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307924 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7925 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007926 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7927 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307928 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007930 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7931 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307932 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7933 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007934 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7935 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307936 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7937 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007938 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7939 MSM_BACKEND_DAI_PRI_TDM_RX_3,
7940 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7941 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307942};
7943
7944static const struct snd_kcontrol_new pri_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007945 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7946 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307947 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7948 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007949 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7950 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307951 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7952 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007953 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7954 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307955 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7956 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007957 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7958 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307959 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7960 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007961 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7962 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307963 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7964 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007965 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7966 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307967 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007969 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7970 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307971 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7972 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007973 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7974 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307975 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7976 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007977 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7978 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307979 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7980 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007981 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7982 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307983 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7984 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007985 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7986 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307987 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7988 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007989 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7990 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307991 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007993 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7994 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307995 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007997 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7998 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307999 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008001 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8002 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308003 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8004 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008005 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8006 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308007 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8008 msm_routing_put_audio_mixer),
8009};
8010
8011static const struct snd_kcontrol_new sec_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008012 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8013 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308014 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008016 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8017 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308018 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008020 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8021 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308022 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008024 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8025 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308026 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008028 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8029 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308030 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008032 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8033 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308034 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008036 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8037 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308038 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008040 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8041 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308042 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8043 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008044 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8045 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308046 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8047 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008048 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8049 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308050 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008052 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8053 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308054 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008056 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8057 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308058 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008060 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8061 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308062 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008064 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8065 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308066 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008068 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8069 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308070 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008072 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8073 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308074 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8075 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008076 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8077 MSM_BACKEND_DAI_SEC_TDM_RX_0,
8078 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8079 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308080};
8081
8082static const struct snd_kcontrol_new sec_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008083 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8084 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308085 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008087 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8088 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308089 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008091 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8092 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308093 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008095 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8096 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308097 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008099 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8100 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308101 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008103 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8104 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308105 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008107 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8108 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308109 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8110 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008111 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8112 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308113 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8114 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008115 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8116 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308117 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8118 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008119 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8120 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308121 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8122 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008123 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8124 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308125 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8126 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008127 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8128 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308129 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008131 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8132 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308133 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008135 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8136 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308137 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008139 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8140 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308141 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008143 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8144 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308145 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8146 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008147 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8148 MSM_BACKEND_DAI_SEC_TDM_RX_1,
8149 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8150 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308151};
8152
8153static const struct snd_kcontrol_new sec_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008154 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8155 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308156 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008158 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8159 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308160 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008162 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8163 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308164 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008166 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8167 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308168 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008170 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8171 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308172 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008174 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8175 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308176 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008178 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8179 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308180 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008182 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8183 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308184 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008186 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8187 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308188 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008190 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8191 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308192 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008194 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8195 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308196 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008198 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8199 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308200 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008202 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8203 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308204 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008206 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8207 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308208 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8209 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008210 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8211 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308212 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8213 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008214 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8215 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308216 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8217 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008218 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8219 MSM_BACKEND_DAI_SEC_TDM_RX_2,
8220 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8221 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308222};
8223
8224static const struct snd_kcontrol_new sec_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008225 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8226 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308227 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008229 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8230 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308231 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008233 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8234 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308235 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008237 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8238 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308239 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008241 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8242 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308243 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8244 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008245 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8246 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308247 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8248 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008249 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8250 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308251 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8252 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008253 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8254 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308255 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8256 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008257 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8258 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308259 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008261 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8262 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308263 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008265 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8266 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308267 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008269 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8270 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308271 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8272 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008273 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8274 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308275 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8276 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008277 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8278 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308279 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008281 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8282 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308283 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8284 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008285 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8286 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308287 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8288 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008289 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8290 MSM_BACKEND_DAI_SEC_TDM_RX_3,
8291 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8292 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308293};
8294
8295static const struct snd_kcontrol_new sec_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008296 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8297 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308298 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008300 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8301 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308302 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008304 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8305 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308306 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8307 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008308 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8309 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308310 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8311 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008312 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8313 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308314 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008316 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8317 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308318 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008320 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8321 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308322 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8323 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008324 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8325 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308326 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8327 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008328 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8329 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308330 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8331 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008332 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8333 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308334 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8335 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008336 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8337 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308338 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8339 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008340 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8341 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308342 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8343 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008344 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8345 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308346 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8347 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008348 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8349 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308350 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8351 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008352 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8353 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308354 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8355 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008356 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8357 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308358 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8359 msm_routing_put_audio_mixer),
8360};
8361
8362static const struct snd_kcontrol_new tert_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008363 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8364 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308365 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008367 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8368 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308369 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008371 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8372 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308373 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008375 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8376 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308377 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008379 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8380 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308381 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008383 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8384 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308385 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008387 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8388 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308389 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008391 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8392 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308393 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008395 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8396 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308397 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008399 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8400 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308401 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008403 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8404 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308405 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008407 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8408 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308409 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008411 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8412 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308413 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8414 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008415 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8416 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308417 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8418 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008419 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8420 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308421 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8422 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008423 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8424 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308425 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8426 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008427 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8428 MSM_BACKEND_DAI_TERT_TDM_RX_0,
8429 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8430 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308431};
8432
8433static const struct snd_kcontrol_new tert_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008434 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8435 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308436 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008438 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8439 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308440 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008442 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8443 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308444 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008446 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8447 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308448 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008450 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8451 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308452 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008454 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8455 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308456 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008458 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8459 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308460 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008462 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8463 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308464 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008466 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8467 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308468 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008470 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8471 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308472 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008474 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8475 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308476 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008478 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8479 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308480 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008482 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8483 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308484 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008486 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8487 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308488 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008490 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8491 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308492 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008494 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8495 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308496 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8497 msm_routing_put_audio_mixer),
8498};
8499
8500static const struct snd_kcontrol_new tert_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008501 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8502 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308503 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008505 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8506 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308507 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008509 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8510 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308511 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008513 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8514 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308515 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008517 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8518 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308519 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008521 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8522 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308523 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008525 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8526 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308527 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008529 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8530 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308531 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008533 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8534 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308535 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008537 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8538 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308539 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008541 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8542 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308543 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008545 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8546 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308547 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008549 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8550 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308551 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008553 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8554 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308555 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008557 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8558 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308559 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008561 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8562 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308563 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8564 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008565 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8566 MSM_BACKEND_DAI_TERT_TDM_RX_1,
8567 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8568 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308569};
8570
8571static const struct snd_kcontrol_new tert_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008572 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8573 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308574 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008576 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8577 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308578 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008580 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8581 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308582 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008584 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8585 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308586 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008588 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8589 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308590 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008592 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8593 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308594 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008596 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8597 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308598 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008600 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8601 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308602 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008604 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8605 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308606 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008608 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8609 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308610 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008612 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8613 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308614 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8615 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008616 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8617 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308618 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8619 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008620 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8621 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308622 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8623 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008624 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8625 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308626 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8627 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008628 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8629 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308630 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8631 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008632 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8633 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308634 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8635 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008636 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8637 MSM_BACKEND_DAI_TERT_TDM_RX_2,
8638 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8639 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308640};
8641
8642static const struct snd_kcontrol_new tert_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008643 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8644 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308645 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008647 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8648 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308649 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008651 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8652 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308653 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008655 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8656 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308657 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008659 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8660 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308661 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008663 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8664 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308665 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8666 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008667 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8668 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308669 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008671 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8672 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308673 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008675 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8676 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308677 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008679 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8680 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308681 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008683 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8684 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308685 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008687 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8688 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308689 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8690 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008691 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8692 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308693 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008695 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8696 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308697 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008699 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8700 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308701 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008703 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8704 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308705 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8706 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008707 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8708 MSM_BACKEND_DAI_TERT_TDM_RX_3,
8709 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8710 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308711};
8712
8713static const struct snd_kcontrol_new tert_tdm_rx_4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008714 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8715 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308716 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008718 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8719 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308720 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008722 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8723 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308724 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008726 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8727 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308728 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8729 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008730 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8731 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308732 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008734 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8735 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308736 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008738 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8739 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308740 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008742 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8743 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308744 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008746 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8747 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308748 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008750 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8751 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308752 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008754 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8755 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308756 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008758 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8759 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308760 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008762 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8763 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308764 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008766 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8767 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308768 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008770 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8771 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308772 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008774 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8775 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308776 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8777 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008778 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8779 MSM_BACKEND_DAI_TERT_TDM_RX_4,
8780 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8781 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308782};
8783
8784static const struct snd_kcontrol_new quat_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008785 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8786 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308787 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008789 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8790 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308791 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008793 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8794 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308795 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008797 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8798 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308799 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008801 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8802 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308803 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008805 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8806 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308807 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008809 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8810 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308811 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008813 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8814 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308815 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008817 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8818 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308819 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008821 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8822 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308823 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008825 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8826 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308827 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008829 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8830 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308831 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008833 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8834 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308835 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008837 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8838 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308839 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008841 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8842 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308843 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008845 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8846 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308847 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008849 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8850 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308851 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8852 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008853 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8854 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
8855 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8856 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308857};
8858
8859static const struct snd_kcontrol_new quat_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008860 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8861 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308862 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008864 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8865 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308866 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008868 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8869 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308870 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008872 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8873 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308874 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008876 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8877 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308878 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008880 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8881 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308882 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008884 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8885 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308886 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008888 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8889 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308890 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008892 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8893 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308894 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008896 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8897 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308898 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008900 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8901 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308902 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008904 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8905 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308906 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008908 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8909 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308910 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008912 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8913 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308914 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008916 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8917 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308918 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008920 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8921 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308922 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8923 msm_routing_put_audio_mixer),
8924};
8925
8926static const struct snd_kcontrol_new quat_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008927 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8928 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308929 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8930 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008931 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8932 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308933 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8934 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008935 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8936 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308937 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8938 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008939 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8940 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308941 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8942 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008943 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8944 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308945 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8946 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008947 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8948 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308949 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8950 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008951 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8952 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308953 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8954 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008955 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8956 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308957 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8958 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008959 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8960 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308961 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8962 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008963 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8964 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308965 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8966 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008967 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8968 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308969 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8970 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008971 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8972 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308973 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8974 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008975 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8976 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308977 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8978 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008979 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8980 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308981 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8982 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008983 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8984 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308985 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8986 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008987 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8988 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308989 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8990 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008991 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8992 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308993 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8994 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008995 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8996 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
8997 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8998 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308999};
9000
9001static const struct snd_kcontrol_new quat_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009002 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9003 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309004 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009006 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9007 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309008 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9009 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009010 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9011 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309012 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9013 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009014 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9015 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309016 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9017 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009018 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9019 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309020 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9021 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009022 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9023 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309024 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9025 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009026 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9027 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309028 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9029 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009030 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9031 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309032 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9033 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009034 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9035 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309036 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9037 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009038 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9039 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309040 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9041 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009042 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9043 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309044 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9045 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009046 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9047 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309048 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9049 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009050 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9051 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309052 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9053 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009054 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9055 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309056 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9057 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009058 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9059 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309060 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9061 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009062 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9063 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309064 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9065 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009066 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9067 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309068 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9069 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009070 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9071 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
9072 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9073 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309074};
9075
9076static const struct snd_kcontrol_new quat_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009077 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9078 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309079 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009081 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9082 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309083 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009085 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9086 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309087 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009089 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9090 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309091 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009093 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9094 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309095 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009097 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9098 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309099 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9100 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009101 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9102 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309103 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009105 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9106 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309107 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9108 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009109 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9110 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309111 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9112 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009113 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9114 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309115 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9116 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009117 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9118 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309119 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009121 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9122 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309123 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9124 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009125 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9126 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309127 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009129 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9130 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309131 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009133 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9134 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309135 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009137 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9138 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309139 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009141 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9142 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309143 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9144 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009145 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9146 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
9147 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9148 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309149};
9150
Rohit Kumara5077932017-09-10 22:05:05 +05309151static const struct snd_kcontrol_new quin_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009152 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9153 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309154 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9155 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009156 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9157 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309158 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9159 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009160 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9161 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309162 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009164 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9165 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309166 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9167 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009168 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9169 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309170 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9171 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009172 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9173 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309174 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9175 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009176 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9177 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309178 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9179 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009180 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9181 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309182 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009184 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9185 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309186 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009188 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9189 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309190 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009192 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9193 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309194 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009196 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9197 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309198 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009200 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9201 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309202 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009204 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9205 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309206 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9207 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009208 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9209 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309210 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9211 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009212 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9213 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309214 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9215 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009216 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9217 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309218 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9219 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009220 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9221 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
9222 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9223 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309224};
9225
9226static const struct snd_kcontrol_new quin_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009227 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9228 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309229 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009231 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9232 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309233 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009235 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9236 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309237 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009239 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9240 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309241 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009243 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9244 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309245 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009247 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9248 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309249 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9250 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009251 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9252 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309253 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9254 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009255 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9256 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309257 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9258 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009259 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9260 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309261 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009263 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9264 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309265 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009267 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9268 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309269 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9270 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009271 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9272 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309273 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009275 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9276 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309277 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009279 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9280 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309281 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009283 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9284 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309285 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9286 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009287 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9288 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309289 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9290 msm_routing_put_audio_mixer),
9291};
9292
9293static const struct snd_kcontrol_new quin_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009294 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9295 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309296 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009298 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9299 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309300 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009302 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9303 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309304 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009306 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9307 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309308 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009310 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9311 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309312 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009314 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9315 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309316 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009318 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9319 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309320 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009322 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9323 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309324 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009326 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9327 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309328 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009330 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9331 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309332 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009334 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9335 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309336 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009338 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9339 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309340 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009342 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9343 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309344 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009346 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9347 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309348 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009350 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9351 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309352 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009354 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9355 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309356 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009358 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9359 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309360 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9361 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009362 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9363 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
9364 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9365 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309366};
9367
9368static const struct snd_kcontrol_new quin_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009369 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9370 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309371 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009373 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9374 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309375 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009377 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9378 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309379 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009381 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9382 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309383 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009385 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9386 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309387 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009389 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9390 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309391 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009393 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9394 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309395 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009397 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9398 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309399 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009401 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9402 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309403 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009405 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9406 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309407 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009409 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9410 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309411 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9412 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009413 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9414 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309415 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9416 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009417 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9418 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309419 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9420 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009421 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9422 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309423 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9424 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009425 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9426 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309427 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9428 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009429 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9430 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309431 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9432 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009433 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9434 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309435 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9436 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009437 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9438 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
9439 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9440 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309441};
9442
9443static const struct snd_kcontrol_new quin_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009444 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9445 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309446 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009448 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9449 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309450 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009452 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9453 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309454 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009456 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9457 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309458 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9459 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009460 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9461 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309462 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9463 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009464 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9465 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309466 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009468 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9469 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309470 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009472 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9473 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309474 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9475 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009476 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9477 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309478 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009480 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9481 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309482 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9483 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009484 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9485 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309486 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9487 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009488 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9489 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309490 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9491 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009492 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9493 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309494 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009496 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9497 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309498 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9499 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009500 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9501 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309502 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9503 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009504 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9505 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309506 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9507 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009508 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9509 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309510 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9511 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009512 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9513 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
9514 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9515 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309516};
9517
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309518static const struct snd_kcontrol_new mmul1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009519 SOC_DOUBLE_EXT("PRI_TX", SND_SOC_NOPM,
9520 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309521 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009523 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9524 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309525 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009527 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9528 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309529 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009531 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9532 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309533 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009535 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9536 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309537 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009539 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9540 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309541 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009543 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9544 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309545 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009547 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9548 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309549 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009551 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9552 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309553 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9554 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +05309555 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
9556 MSM_BACKEND_DAI_SLIMBUS_1_TX,
9557 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009559 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
9560 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309561 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009563 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
9564 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309565 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009567 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
9568 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309569 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009571 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
9572 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309573 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009575 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
9576 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309577 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009579 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9580 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309581 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009583 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9584 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309585 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009587 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9588 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309589 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009591 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9592 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309593 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009595 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9596 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309597 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009599 SOC_DOUBLE_EXT("SLIM_4_TX", SND_SOC_NOPM,
9600 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309601 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9602 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009603 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9604 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309605 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009607 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9608 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309609 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009611 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9612 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309613 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009615 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9616 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309617 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009619 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9620 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309621 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9622 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009623 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9624 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309625 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009627 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9628 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309629 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9630 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009631 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9632 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309633 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9634 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009635 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9636 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309637 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009639 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9640 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309641 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009643 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9644 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309645 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009647 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9648 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309649 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009651 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9652 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309653 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009655 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9656 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309657 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009659 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9660 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309661 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009663 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9664 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309665 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9666 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009667 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9668 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309669 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009671 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9672 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309673 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009675 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9676 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309677 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009679 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9680 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309681 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009683 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9684 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309685 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009687 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9688 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309689 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9690 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009691 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
9692 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309693 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009695 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
9696 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309697 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009699 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9700 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309701 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9702 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309703 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9704 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9705 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9706 msm_routing_put_audio_mixer),
9707 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9708 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9709 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9710 msm_routing_put_audio_mixer),
9711 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9712 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9713 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9714 msm_routing_put_audio_mixer),
9715 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9716 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9717 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9718 msm_routing_put_audio_mixer),
9719 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9720 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9721 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9722 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -08009723 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
9724 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
9725 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9726 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309727 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9728 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9729 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9730 msm_routing_put_audio_mixer),
9731 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9732 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9733 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9734 msm_routing_put_audio_mixer),
9735 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9736 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9737 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9738 msm_routing_put_audio_mixer),
9739 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9740 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9741 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9742 msm_routing_put_audio_mixer),
9743 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9744 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9745 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9746 msm_routing_put_audio_mixer),
9747 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9748 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9749 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9750 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009751 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9752 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9753 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9754 msm_routing_put_audio_mixer),
9755 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9756 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9757 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9758 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +05309759 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
9760 MSM_BACKEND_DAI_SLIMBUS_9_TX,
9761 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9762 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +05309763 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
9764 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
9765 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9766 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309767};
9768
9769static const struct snd_kcontrol_new mmul2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009770 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9771 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309772 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009774 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9775 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309776 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009778 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9779 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309780 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009782 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9783 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309784 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9785 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009786 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9787 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309788 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009790 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9791 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309792 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009794 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9795 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309796 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009798 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9799 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309800 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009802 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9803 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309804 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009806 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9807 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309808 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009810 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
9811 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309812 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9813 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009814 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9815 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309816 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9817 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009818 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9819 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309820 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9821 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009822 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9823 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309824 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9825 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009826 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9827 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309828 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9829 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009830 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9831 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309832 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9833 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009834 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9835 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309836 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9837 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009838 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9839 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309840 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9841 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009842 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9843 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309844 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9845 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009846 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9847 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309848 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9849 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009850 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9851 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309852 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9853 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009854 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9855 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309856 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9857 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009858 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9859 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309860 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9861 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009862 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9863 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309864 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9865 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009866 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9867 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309868 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9869 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009870 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9871 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309872 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009874 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9875 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309876 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009878 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9879 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309880 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009882 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9883 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309884 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009886 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9887 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309888 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009890 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9891 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309892 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009894 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9895 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309896 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009898 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
9899 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309900 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009902 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9903 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309904 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9905 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309906 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9907 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9908 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9909 msm_routing_put_audio_mixer),
9910 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9911 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9912 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9913 msm_routing_put_audio_mixer),
9914 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9915 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9916 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9917 msm_routing_put_audio_mixer),
9918 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9919 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9920 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9921 msm_routing_put_audio_mixer),
9922 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9923 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9924 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9925 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -08009926 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
9927 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
9928 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9929 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309930 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9931 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9932 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9933 msm_routing_put_audio_mixer),
9934 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9935 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9936 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9937 msm_routing_put_audio_mixer),
9938 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9939 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9940 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9941 msm_routing_put_audio_mixer),
9942 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9943 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9944 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9945 msm_routing_put_audio_mixer),
9946 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9947 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9948 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9949 msm_routing_put_audio_mixer),
9950 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9951 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9952 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9953 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009954 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9955 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9956 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9957 msm_routing_put_audio_mixer),
9958 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9959 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9960 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9961 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +05309962 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
9963 MSM_BACKEND_DAI_SLIMBUS_9_TX,
9964 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9965 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +05309966 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
9967 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
9968 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9969 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309970};
9971
9972static const struct snd_kcontrol_new mmul3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009973 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9974 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309975 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9976 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +05309977 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
9978 MSM_BACKEND_DAI_SLIMBUS_1_TX,
9979 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9980 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009981 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9982 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309983 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9984 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009985 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9986 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309987 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9988 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009989 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9990 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309991 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009993 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9994 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309995 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009997 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
9998 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309999 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010001 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10002 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010003 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10004 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010005 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
10006 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010007 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010009 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
10010 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010011 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010013 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
10014 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010015 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010017 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10018 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010019 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010021 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10022 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010023 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010025 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10026 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010027 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10028 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010029 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10030 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010031 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10032 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010033 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10034 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010035 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10036 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010037 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10038 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010039 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10040 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010041 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10042 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010043 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10044 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010045 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10046 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010047 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10048 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010049 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10050 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010051 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10052 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010053 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10054 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010055 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10056 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010057 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10058 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010059 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10060 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010061 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10062 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010063 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10064 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010065 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10066 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010067 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10068 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010069 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10070 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010071 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10072 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010073 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10074 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010075 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10076 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010077 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10078 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010079 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010081 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10082 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010083 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010085 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10086 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010087 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010089 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10090 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010091 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010093 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10094 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010095 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010097 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10098 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010099 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10100 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010101 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10102 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010103 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010105 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10106 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010107 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10108 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010109 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10110 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010111 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10112 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010113 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10114 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10115 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10116 msm_routing_put_audio_mixer),
10117 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10118 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10119 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10120 msm_routing_put_audio_mixer),
10121 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10122 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10123 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10124 msm_routing_put_audio_mixer),
10125 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10126 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10127 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10128 msm_routing_put_audio_mixer),
10129 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10130 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10131 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10132 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010133 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10134 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10135 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10136 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010137 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10138 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10139 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10140 msm_routing_put_audio_mixer),
10141 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10142 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10143 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10144 msm_routing_put_audio_mixer),
10145 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10146 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10147 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10148 msm_routing_put_audio_mixer),
10149 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10150 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10151 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10152 msm_routing_put_audio_mixer),
10153 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10154 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10155 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10156 msm_routing_put_audio_mixer),
10157 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10158 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10159 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10160 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010161 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10162 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10163 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10164 msm_routing_put_audio_mixer),
10165 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10166 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10167 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10168 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010169 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10170 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10171 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10172 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010173};
10174
10175static const struct snd_kcontrol_new mmul4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010176 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10177 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010178 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10179 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053010180 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10181 MSM_BACKEND_DAI_SLIMBUS_1_TX,
10182 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010184 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10185 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010186 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010188 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10189 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010190 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010192 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10193 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010194 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010196 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10197 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010198 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010200 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10201 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010202 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010204 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10205 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010206 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10207 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010208 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10209 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010210 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10211 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010212 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10213 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010214 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10215 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010216 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10217 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010218 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10219 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010220 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10221 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010222 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10223 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010224 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10225 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010226 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10227 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010228 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10229 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010230 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10231 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010232 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10233 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010234 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10235 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010236 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10237 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010238 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10239 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010240 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10241 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010242 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10243 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010244 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10245 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010246 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10247 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010248 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10249 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010250 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10251 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010252 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10253 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010254 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10255 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010256 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10257 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010258 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10259 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010260 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10261 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010262 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010264 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10265 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010266 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010268 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10269 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010270 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10271 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010272 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10273 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010274 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10275 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010276 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10277 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010278 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10279 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010280 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10281 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010282 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010284 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10285 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010286 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010288 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10289 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010290 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10291 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010292 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10293 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010294 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10295 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010296 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10297 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010298 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010300 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10301 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010302 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010304 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10305 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010306 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10307 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010308 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10309 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010310 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10311 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010312 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10313 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10314 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10315 msm_routing_put_audio_mixer),
10316 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10317 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10318 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10319 msm_routing_put_audio_mixer),
10320 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10321 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10322 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10323 msm_routing_put_audio_mixer),
10324 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10325 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10326 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10327 msm_routing_put_audio_mixer),
10328 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10329 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10330 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10331 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010332 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10333 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10334 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10335 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010336 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10337 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10338 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10339 msm_routing_put_audio_mixer),
10340 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10341 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10342 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10343 msm_routing_put_audio_mixer),
10344 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10345 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10346 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10347 msm_routing_put_audio_mixer),
10348 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10349 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10350 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10351 msm_routing_put_audio_mixer),
10352 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10353 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10354 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10355 msm_routing_put_audio_mixer),
10356 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10357 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10358 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10359 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010360 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10361 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10362 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10363 msm_routing_put_audio_mixer),
10364 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10365 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10366 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10367 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010368 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10369 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10370 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10371 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010372};
10373
10374static const struct snd_kcontrol_new mmul5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010375 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10376 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010377 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10378 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053010379 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10380 MSM_BACKEND_DAI_SLIMBUS_1_TX,
10381 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010383 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10384 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010385 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010387 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10388 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010389 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010391 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10392 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010393 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010395 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10396 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010397 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010399 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10400 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010401 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010403 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10404 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010405 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010407 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
10408 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010409 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010411 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
10412 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010413 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10414 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010415 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
10416 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010417 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10418 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010419 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10420 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010421 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10422 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010423 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10424 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010425 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10426 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010427 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10428 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010429 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10430 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010431 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10432 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010433 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10434 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010435 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10436 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010437 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10438 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010439 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10440 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010441 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10442 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010443 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10444 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010445 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10446 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010447 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10448 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010449 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10450 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010451 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10452 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010453 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10454 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010455 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10456 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010457 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10458 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010459 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10460 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010461 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10462 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010463 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10464 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010465 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10466 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010467 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10468 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010469 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10470 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010471 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10472 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010473 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10474 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010475 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10476 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010477 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10478 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010479 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10480 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010481 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010483 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10484 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010485 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010487 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10488 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010489 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10490 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010491 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10492 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010493 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010495 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10496 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010497 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010499 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10500 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010501 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010503 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10504 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010505 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010507 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10508 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010509 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010511 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10512 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010513 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010515 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10516 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010517 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010519 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10520 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010521 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010523 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10524 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010525 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010527 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
10528 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010529 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010531 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10532 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010533 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10534 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010535 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10536 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10537 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10538 msm_routing_put_audio_mixer),
10539 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10540 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10541 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10542 msm_routing_put_audio_mixer),
10543 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10544 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10545 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10546 msm_routing_put_audio_mixer),
10547 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10548 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10549 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10550 msm_routing_put_audio_mixer),
10551 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10552 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10553 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10554 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010555 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10556 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10557 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10558 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010559 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10560 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10561 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10562 msm_routing_put_audio_mixer),
10563 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10564 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10565 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10566 msm_routing_put_audio_mixer),
10567 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10568 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10569 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10570 msm_routing_put_audio_mixer),
10571 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10572 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10573 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10574 msm_routing_put_audio_mixer),
10575 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10576 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10577 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10578 msm_routing_put_audio_mixer),
10579 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10580 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10581 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10582 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010583 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10584 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10585 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10586 msm_routing_put_audio_mixer),
10587 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10588 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10589 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10590 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053010591 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
10592 MSM_BACKEND_DAI_SLIMBUS_9_TX,
10593 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10594 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010595 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10596 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10597 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10598 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010599};
10600
10601static const struct snd_kcontrol_new mmul6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010602 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10603 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010604 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10605 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010606 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10607 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010608 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10609 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053010610 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10611 MSM_BACKEND_DAI_SLIMBUS_1_TX,
10612 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10613 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010614 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10615 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010616 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10617 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010618 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10619 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010620 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010622 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10623 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010624 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010626 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10627 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010628 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010630 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10631 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010632 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010634 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10635 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010636 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010638 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
10639 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010640 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010642 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10643 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010644 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010646 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
10647 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010648 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010650 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
10651 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010652 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010654 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
10655 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010656 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010658 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10659 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010660 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010662 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10663 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010664 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10665 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010666 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10667 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010668 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010670 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10671 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010672 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010674 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10675 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010676 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010678 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10679 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010680 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010682 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10683 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010684 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010686 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10687 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010688 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010690 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10691 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010692 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010694 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10695 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010696 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010698 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10699 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010700 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010702 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10703 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010704 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10705 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010706 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10707 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010708 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10709 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010710 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10711 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010712 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010714 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10715 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010716 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010718 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10719 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010720 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010722 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10723 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010724 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010726 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10727 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010728 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10729 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010730 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10731 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010732 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010734 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10735 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010736 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010738 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10739 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010740 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10741 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010742 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10743 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10744 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10745 msm_routing_put_audio_mixer),
10746 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10747 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10748 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10749 msm_routing_put_audio_mixer),
10750 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10751 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10752 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10753 msm_routing_put_audio_mixer),
10754 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10755 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10756 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10757 msm_routing_put_audio_mixer),
10758 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10759 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10760 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10761 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010762 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10763 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10764 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10765 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010766 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10767 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10768 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10769 msm_routing_put_audio_mixer),
10770 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10771 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10772 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10773 msm_routing_put_audio_mixer),
10774 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10775 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10776 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10777 msm_routing_put_audio_mixer),
10778 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10779 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10780 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10781 msm_routing_put_audio_mixer),
10782 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10783 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10784 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10785 msm_routing_put_audio_mixer),
10786 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10787 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10788 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10789 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010790 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10791 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10792 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10793 msm_routing_put_audio_mixer),
10794 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10795 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10796 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10797 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010798 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10799 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10800 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10801 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010802};
10803
10804static const struct snd_kcontrol_new mmul8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010805 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10806 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010807 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10808 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053010809 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10810 MSM_BACKEND_DAI_SLIMBUS_1_TX,
10811 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010813 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10814 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010815 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010817 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10818 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010819 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010821 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10822 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010823 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010825 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10826 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010827 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010829 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10830 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010831 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010833 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10834 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010835 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010837 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10838 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010839 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010841 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10842 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010843 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010845 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10846 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010847 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010849 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10850 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010851 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010853 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10854 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010855 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010857 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10858 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010859 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010861 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10862 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010863 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010865 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10866 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010867 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10868 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010869 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10870 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010871 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010873 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10874 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010875 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010877 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10878 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010879 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010881 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10882 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010883 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10884 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010885 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10886 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010887 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10888 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010889 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10890 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010891 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10892 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010893 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10894 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010895 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10896 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010897 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10898 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010899 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10900 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010901 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10902 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010903 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10904 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010905 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10906 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010907 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10908 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010909 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10910 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010911 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10912 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010913 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10914 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010915 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10916 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010917 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10918 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010919 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010921 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10922 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010923 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10924 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010925 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10926 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010927 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10928 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010929 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10930 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010931 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10932 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010933 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10934 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010935 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10936 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010937 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10938 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010939 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10940 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010941 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10942 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010943 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10944 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010945 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10946 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010947 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10948 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010949 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10950 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10951 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10952 msm_routing_put_audio_mixer),
10953 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10954 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10955 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10956 msm_routing_put_audio_mixer),
10957 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10958 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10959 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10960 msm_routing_put_audio_mixer),
10961 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10962 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10963 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10964 msm_routing_put_audio_mixer),
10965 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10966 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10967 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10968 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010969 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10970 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10971 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10972 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010973 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10974 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10975 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10976 msm_routing_put_audio_mixer),
10977 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10978 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10979 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10980 msm_routing_put_audio_mixer),
10981 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10982 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10983 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10984 msm_routing_put_audio_mixer),
10985 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10986 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10987 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10988 msm_routing_put_audio_mixer),
10989 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10990 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10991 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10992 msm_routing_put_audio_mixer),
10993 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10994 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10995 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10996 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010997 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10998 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10999 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11000 msm_routing_put_audio_mixer),
11001 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11002 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11003 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11004 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011005 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11006 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11007 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11008 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011009 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11010 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11011 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11012 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011013};
11014
Asish Bhattacharya34504582017-08-08 12:55:01 +053011015static const struct snd_kcontrol_new mmul16_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011016 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11017 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011018 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11019 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011020 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11021 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11022 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011024 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11025 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011026 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011028 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11029 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011030 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011032 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11033 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011034 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011036 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
11037 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011038 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011040 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11041 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011042 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11043 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011044 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11045 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011046 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11047 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011048 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11049 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011050 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011052 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11053 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011054 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011056 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11057 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011058 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011060 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11061 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011062 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011064 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11065 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011066 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011068 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11069 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011070 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011072 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11073 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011074 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11075 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011076 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11077 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011078 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011080 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11081 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011082 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011084 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11085 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011086 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011088 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11089 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011090 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011092 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11093 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011094 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011096 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11097 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011098 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011100 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11101 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011102 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011104 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11105 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011106 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011108 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11109 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011110 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011112 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11113 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011114 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011116 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11117 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011118 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11119 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011120 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11121 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011122 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11123 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011124 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11125 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011126 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11127 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011128 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11129 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011130 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11131 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011132 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11133 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011134 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11135 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011136 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11137 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011138 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11139 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011140 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
11141 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011142 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11143 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011144 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11145 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011146 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11147 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011148 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
11149 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011150 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11151 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011152 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
11153 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011154 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11155 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011156 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
11157 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011158 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11159 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011160 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11161 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11162 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11163 msm_routing_put_audio_mixer),
11164 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11165 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11166 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11167 msm_routing_put_audio_mixer),
11168 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11169 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11170 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11171 msm_routing_put_audio_mixer),
11172 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11173 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11174 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11175 msm_routing_put_audio_mixer),
11176 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11177 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11178 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11179 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011180 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11181 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11182 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11183 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011184 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11185 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11186 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11187 msm_routing_get_audio_mixer,
11188 msm_routing_put_audio_mixer),
11189 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11190 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11191 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11192 msm_routing_get_audio_mixer,
11193 msm_routing_put_audio_mixer),
11194 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11195 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11196 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11197 msm_routing_get_audio_mixer,
11198 msm_routing_put_audio_mixer),
11199 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11200 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11201 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11202 msm_routing_get_audio_mixer,
11203 msm_routing_put_audio_mixer),
11204 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11205 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11206 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11207 msm_routing_get_audio_mixer,
11208 msm_routing_put_audio_mixer),
11209 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11210 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11211 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11212 msm_routing_get_audio_mixer,
11213 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011214 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11215 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11216 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11217 msm_routing_put_audio_mixer),
11218 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11219 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11220 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11221 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011222 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11223 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11224 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11225 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011226 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11227 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11228 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11229 msm_routing_put_audio_mixer),
Asish Bhattacharya34504582017-08-08 12:55:01 +053011230};
11231
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011232static const struct snd_kcontrol_new mmul9_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011233 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11234 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011235 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11236 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011237 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11238 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11239 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011241 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11242 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011243 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11244 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011245 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11246 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011247 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11248 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011249 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11250 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011251 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11252 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011253 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11254 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011255 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11256 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011257 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11258 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011259 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011261 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11262 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011263 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011265 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11266 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011267 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011269 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11270 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011271 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11272 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011273 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11274 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011275 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11276 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011277 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11278 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011279 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011281 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11282 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011283 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11284 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011285 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11286 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011287 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11288 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011289 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11290 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011291 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11292 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011293 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11294 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011295 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011297 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11298 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011299 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11300 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011301 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11302 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011303 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11304 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011305 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11306 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011307 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011309 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11310 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011311 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011313 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11314 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011315 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11316 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011317 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11318 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11319 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11320 msm_routing_put_audio_mixer),
11321 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11322 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11323 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11324 msm_routing_put_audio_mixer),
11325 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11326 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11327 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11328 msm_routing_put_audio_mixer),
11329 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11330 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11331 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11332 msm_routing_put_audio_mixer),
11333 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11334 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11335 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11336 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011337 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11338 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11339 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11340 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011341 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11342 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11343 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11344 msm_routing_put_audio_mixer),
11345 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11346 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11347 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11348 msm_routing_put_audio_mixer),
11349 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11350 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11351 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11352 msm_routing_put_audio_mixer),
11353 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11354 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11355 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11356 msm_routing_put_audio_mixer),
11357 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11358 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11359 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11360 msm_routing_put_audio_mixer),
11361 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11362 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11363 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11364 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011365 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11366 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11367 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11368 msm_routing_put_audio_mixer),
11369 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11370 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11371 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11372 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011373 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11374 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11375 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11376 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011377};
11378
Laxminath Kasam38070be2017-08-17 18:21:59 +053011379static const struct snd_kcontrol_new mmul10_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011380 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11381 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011382 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11383 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011384 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11385 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11386 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11387 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011388 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11389 MSM_BACKEND_DAI_PRI_MI2S_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011390 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11391 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011392 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11393 MSM_BACKEND_DAI_INT_FM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011394 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11395 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011396 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11397 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011398 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11399 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011400 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11401 MSM_BACKEND_DAI_AFE_PCM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011402 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11403 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011404 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11405 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011406 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11407 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011408 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11409 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011410 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11411 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011412 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11413 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011414 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11415 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011416 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11417 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Vikram Panduranga72863152017-09-06 15:47:35 -070011418 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11419 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011420 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11421 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011422 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011424 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11425 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011426 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011428 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11429 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011430 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11431 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011432 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11433 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011434 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11435 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011436 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11437 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011438 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11439 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011440 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11441 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011442 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11443 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011444 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11445 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011446 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011448 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11449 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011450 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011452 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
11453 MSM_BACKEND_DAI_USB_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011454 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011456 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11457 MSM_BACKEND_DAI_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011458 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11459 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011460 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
11461 MSM_BACKEND_DAI_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011462 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11463 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011464 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
11465 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011466 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011468 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
11469 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011470 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011472 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
11473 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011474 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11475 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011476 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11477 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011478 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011480 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
11481 MSM_BACKEND_DAI_INT2_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011482 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11483 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011484 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11485 MSM_BACKEND_DAI_INT3_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011486 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11487 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011488 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11489 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11490 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11491 msm_routing_put_audio_mixer),
11492 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11493 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11494 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11495 msm_routing_put_audio_mixer),
11496 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11497 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11498 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11499 msm_routing_put_audio_mixer),
11500 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11501 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11502 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11503 msm_routing_put_audio_mixer),
11504 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11505 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11506 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11507 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011508 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11509 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11510 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11511 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011512 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11513 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11514 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11515 msm_routing_get_audio_mixer,
11516 msm_routing_put_audio_mixer),
11517 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11518 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11519 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11520 msm_routing_get_audio_mixer,
11521 msm_routing_put_audio_mixer),
11522 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11523 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11524 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11525 msm_routing_get_audio_mixer,
11526 msm_routing_put_audio_mixer),
11527 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11528 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11529 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11530 msm_routing_get_audio_mixer,
11531 msm_routing_put_audio_mixer),
11532 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11533 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11534 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11535 msm_routing_get_audio_mixer,
11536 msm_routing_put_audio_mixer),
11537 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11538 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11539 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11540 msm_routing_get_audio_mixer,
11541 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011542 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11543 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11544 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11545 msm_routing_put_audio_mixer),
11546 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11547 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11548 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11549 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011550 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11551 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11552 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11553 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011554 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11555 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11556 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11557 msm_routing_put_audio_mixer),
Laxminath Kasam38070be2017-08-17 18:21:59 +053011558};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011559static const struct snd_kcontrol_new mmul17_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011560 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11561 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011562 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11563 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011564 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11565 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11566 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011568 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11569 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011570 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011572 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11573 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011574 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011576 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11577 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011578 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011580 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11581 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011582 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011584 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11585 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011586 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011588 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11589 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011590 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011592 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11593 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011594 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11595 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011596 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11597 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11598 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11599 msm_routing_put_audio_mixer),
11600 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11601 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11602 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11603 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011604 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11605 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11606 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11607 msm_routing_put_audio_mixer),
11608 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11609 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11610 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11611 msm_routing_put_audio_mixer),
11612 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11613 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11614 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11615 msm_routing_put_audio_mixer),
11616 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11617 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11618 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11619 msm_routing_put_audio_mixer),
11620 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11621 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11622 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11623 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011624 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11625 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11626 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11627 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011628 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11629 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11630 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11631 msm_routing_get_audio_mixer,
11632 msm_routing_put_audio_mixer),
11633 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11634 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11635 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11636 msm_routing_get_audio_mixer,
11637 msm_routing_put_audio_mixer),
11638 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11639 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11640 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11641 msm_routing_get_audio_mixer,
11642 msm_routing_put_audio_mixer),
11643 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11644 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11645 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11646 msm_routing_get_audio_mixer,
11647 msm_routing_put_audio_mixer),
11648 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11649 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11650 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11651 msm_routing_get_audio_mixer,
11652 msm_routing_put_audio_mixer),
11653 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11654 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11655 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11656 msm_routing_get_audio_mixer,
11657 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011658 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11659 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11660 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11661 msm_routing_put_audio_mixer),
11662 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11663 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11664 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11665 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011666 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11667 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11668 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11669 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011670};
11671
11672static const struct snd_kcontrol_new mmul18_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011673 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11674 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011675 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11676 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011677 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11678 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11679 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011681 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11682 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011683 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011685 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11686 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011687 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11688 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011689 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11690 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
11691 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11692 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011693 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11694 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11695 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011697 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11698 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011699 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011701 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11702 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011703 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011705 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11706 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011707 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011709 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11710 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011711 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011713 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11714 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011715 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011717 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11718 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011719 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11720 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011721 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11722 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11723 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11724 msm_routing_put_audio_mixer),
11725 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11726 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11727 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11728 msm_routing_put_audio_mixer),
11729 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11730 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11731 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11732 msm_routing_put_audio_mixer),
11733 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11734 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11735 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11736 msm_routing_put_audio_mixer),
11737 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11738 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11739 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11740 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011741 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11742 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11743 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11744 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011745 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11746 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11747 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11748 msm_routing_get_audio_mixer,
11749 msm_routing_put_audio_mixer),
11750 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11751 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11752 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11753 msm_routing_get_audio_mixer,
11754 msm_routing_put_audio_mixer),
11755 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11756 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11757 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11758 msm_routing_get_audio_mixer,
11759 msm_routing_put_audio_mixer),
11760 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11761 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11762 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11763 msm_routing_get_audio_mixer,
11764 msm_routing_put_audio_mixer),
11765 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11766 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11767 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11768 msm_routing_get_audio_mixer,
11769 msm_routing_put_audio_mixer),
11770 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11771 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11772 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11773 msm_routing_get_audio_mixer,
11774 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011775 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11776 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11777 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11778 msm_routing_put_audio_mixer),
11779 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11780 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11781 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11782 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011783 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11784 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11785 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11786 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011787};
11788
11789static const struct snd_kcontrol_new mmul19_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011790 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11791 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011792 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11793 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011794 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11795 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11796 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011798 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11799 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011800 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011802 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11803 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011804 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011806 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11807 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011808 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011810 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11811 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011812 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11813 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011814 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11815 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011816 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11817 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011818 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11819 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011820 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11821 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011822 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11823 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011824 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11825 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010011826 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11827 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
11828 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11829 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011830 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11831 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11832 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11833 msm_routing_put_audio_mixer),
11834 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11835 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11836 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11837 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011838 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11839 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11840 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11841 msm_routing_put_audio_mixer),
11842 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11843 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11844 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11845 msm_routing_put_audio_mixer),
11846 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11847 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11848 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11849 msm_routing_put_audio_mixer),
11850 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11851 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11852 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11853 msm_routing_put_audio_mixer),
11854 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11855 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11856 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11857 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011858 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11859 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11860 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11861 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011862 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11863 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11864 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11865 msm_routing_get_audio_mixer,
11866 msm_routing_put_audio_mixer),
11867 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11868 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11869 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11870 msm_routing_get_audio_mixer,
11871 msm_routing_put_audio_mixer),
11872 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11873 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11874 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11875 msm_routing_get_audio_mixer,
11876 msm_routing_put_audio_mixer),
11877 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11878 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11879 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11880 msm_routing_get_audio_mixer,
11881 msm_routing_put_audio_mixer),
11882 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11883 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11884 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11885 msm_routing_get_audio_mixer,
11886 msm_routing_put_audio_mixer),
11887 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11888 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11889 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11890 msm_routing_get_audio_mixer,
11891 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011892 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11893 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11894 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11895 msm_routing_put_audio_mixer),
11896 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11897 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11898 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11899 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011900 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11901 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11902 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11903 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011904};
11905
11906static const struct snd_kcontrol_new mmul20_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011907 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11908 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011909 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011911 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11912 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011913 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011915 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11916 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011917 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11918 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011919 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11920 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011921 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11922 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011923 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11924 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053011925 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11926 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011927 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11928 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011929 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11930 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011931 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11932 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011933 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11934 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011935 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11936 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011937 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11938 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011939 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11940 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011941 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11942 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011943 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11944 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011945 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11946 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011947 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11948 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011949 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11950 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011951 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11952 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011953 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11954 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011955 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11956 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011957 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11958 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011959 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11960 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011961 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11962 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011963 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11964 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011965 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11966 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011967 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11968 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011969 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11970 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011971 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11972 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011973 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11974 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011975 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11976 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011977 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11978 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011979 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11980 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011981 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11982 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011983 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11984 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011985 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11986 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011987 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11988 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011989 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11990 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011991 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11992 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011993 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011995 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11996 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011997 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011999 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12000 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012001 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012003 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12004 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012005 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12006 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012007 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12008 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12009 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12010 msm_routing_put_audio_mixer),
12011 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12012 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12013 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12014 msm_routing_put_audio_mixer),
12015 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12016 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12017 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12018 msm_routing_put_audio_mixer),
12019 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12020 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12021 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12022 msm_routing_put_audio_mixer),
12023 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12024 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12025 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12026 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012027 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12028 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12029 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12030 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012031 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12032 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12033 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12034 msm_routing_put_audio_mixer),
12035 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12036 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12037 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12038 msm_routing_put_audio_mixer),
12039 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12040 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12041 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12042 msm_routing_put_audio_mixer),
12043 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12044 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12045 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12046 msm_routing_put_audio_mixer),
12047 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12048 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12049 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12050 msm_routing_put_audio_mixer),
12051 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12052 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12053 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12054 msm_routing_put_audio_mixer),
12055 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12056 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12057 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12058 msm_routing_put_audio_mixer),
12059 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12060 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12061 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12062 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012063 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12064 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12065 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12066 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070012067};
12068
12069static const struct snd_kcontrol_new mmul21_mixer_controls[] = {
12070 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12071 MSM_BACKEND_DAI_AUXPCM_TX,
12072 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12073 msm_routing_put_audio_mixer),
12074 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12075 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
12076 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12077 msm_routing_put_audio_mixer),
12078 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12079 MSM_BACKEND_DAI_PRI_TDM_TX_0,
12080 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12081 msm_routing_put_audio_mixer),
12082 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12083 MSM_BACKEND_DAI_PRI_TDM_TX_1,
12084 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12085 msm_routing_put_audio_mixer),
12086 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12087 MSM_BACKEND_DAI_PRI_TDM_TX_2,
12088 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12089 msm_routing_put_audio_mixer),
12090 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12091 MSM_BACKEND_DAI_PRI_TDM_TX_3,
12092 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12093 msm_routing_put_audio_mixer),
12094 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12095 MSM_BACKEND_DAI_SEC_TDM_TX_0,
12096 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12097 msm_routing_put_audio_mixer),
12098 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12099 MSM_BACKEND_DAI_SEC_TDM_TX_1,
12100 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12101 msm_routing_put_audio_mixer),
12102 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12103 MSM_BACKEND_DAI_SEC_TDM_TX_2,
12104 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12105 msm_routing_put_audio_mixer),
12106 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12107 MSM_BACKEND_DAI_SEC_TDM_TX_3,
12108 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12109 msm_routing_put_audio_mixer),
12110 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12111 MSM_BACKEND_DAI_TERT_TDM_TX_0,
12112 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12113 msm_routing_put_audio_mixer),
12114 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12115 MSM_BACKEND_DAI_TERT_TDM_TX_1,
12116 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12117 msm_routing_put_audio_mixer),
12118 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12119 MSM_BACKEND_DAI_TERT_TDM_TX_2,
12120 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12121 msm_routing_put_audio_mixer),
12122 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12123 MSM_BACKEND_DAI_TERT_TDM_TX_3,
12124 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12125 msm_routing_put_audio_mixer),
12126 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12127 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
12128 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12129 msm_routing_put_audio_mixer),
12130 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12131 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
12132 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12133 msm_routing_put_audio_mixer),
12134 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12135 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
12136 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12137 msm_routing_put_audio_mixer),
12138 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12139 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
12140 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12141 msm_routing_put_audio_mixer),
12142 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12143 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
12144 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12145 msm_routing_put_audio_mixer),
12146 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12147 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
12148 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12149 msm_routing_put_audio_mixer),
12150 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12151 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
12152 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12153 msm_routing_put_audio_mixer),
12154 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12155 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
12156 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12157 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012158 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012159 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12160 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012161 msm_routing_put_audio_mixer),
12162 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012163 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12164 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012165 msm_routing_put_audio_mixer),
12166 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012167 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12168 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012169 msm_routing_put_audio_mixer),
12170 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012171 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12172 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012173 msm_routing_put_audio_mixer),
12174 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012175 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12176 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012177 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012178 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12179 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12180 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12181 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012182 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012183 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12184 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12185 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012186 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012187 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12188 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12189 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012190 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012191 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12192 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12193 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012194 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012195 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12196 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12197 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012198 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012199 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12200 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12201 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012202 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012203 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12204 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12205 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012206 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12207 MSM_BACKEND_DAI_PRI_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012208 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020012209 msm_routing_put_audio_mixer),
12210 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12211 MSM_BACKEND_DAI_SEC_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012212 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020012213 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012214 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12215 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12216 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12217 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012218};
12219
Surendar Karkac1cde372018-08-14 18:56:24 +053012220static const struct snd_kcontrol_new mmul27_mixer_controls[] = {
12221 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12222 MSM_BACKEND_DAI_SLIMBUS_0_TX,
12223 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12224 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012225 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12226 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12227 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12228 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053012229 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
12230 MSM_BACKEND_DAI_SLIMBUS_6_TX,
12231 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12232 msm_routing_put_audio_mixer),
12233 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
12234 MSM_BACKEND_DAI_SLIMBUS_7_TX,
12235 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12236 msm_routing_put_audio_mixer),
12237 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12238 MSM_BACKEND_DAI_PRI_MI2S_TX,
12239 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12240 msm_routing_put_audio_mixer),
12241 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12242 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
12243 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12244 msm_routing_put_audio_mixer),
12245 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12246 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
12247 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12248 msm_routing_put_audio_mixer),
12249 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12250 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
12251 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12252 msm_routing_put_audio_mixer),
12253 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
12254 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
12255 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12256 msm_routing_put_audio_mixer),
12257 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12258 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12259 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12260 msm_routing_put_audio_mixer),
12261 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12262 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12263 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12264 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053012265 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
12266 MSM_BACKEND_DAI_SLIMBUS_9_TX,
12267 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12268 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012269 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12270 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12271 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12272 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053012273};
12274
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012275static const struct snd_kcontrol_new mmul28_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012276 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12277 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012278 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12279 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012280 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12281 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12282 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012284 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12285 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012286 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012288 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12289 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012290 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12291 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012292 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12293 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012294 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12295 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012296 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12297 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012298 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012300 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12301 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012302 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012304 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12305 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012306 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12307 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012308 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12309 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012310 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12311 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010012312 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12313 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
12314 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12315 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080012316 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12317 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
12318 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12319 msm_routing_put_audio_mixer),
12320 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12321 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
12322 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12323 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012324 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12325 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12326 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12327 msm_routing_put_audio_mixer),
12328 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12329 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12330 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12331 msm_routing_put_audio_mixer),
12332 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12333 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12334 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12335 msm_routing_put_audio_mixer),
12336 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12337 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12338 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12339 msm_routing_put_audio_mixer),
12340 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12341 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12342 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12343 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012344 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12345 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12346 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12347 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012348 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12349 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12350 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12351 msm_routing_get_audio_mixer,
12352 msm_routing_put_audio_mixer),
12353 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12354 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12355 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12356 msm_routing_get_audio_mixer,
12357 msm_routing_put_audio_mixer),
12358 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12359 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12360 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12361 msm_routing_get_audio_mixer,
12362 msm_routing_put_audio_mixer),
12363 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12364 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12365 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12366 msm_routing_get_audio_mixer,
12367 msm_routing_put_audio_mixer),
12368 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12369 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12370 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12371 msm_routing_get_audio_mixer,
12372 msm_routing_put_audio_mixer),
12373 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12374 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12375 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12376 msm_routing_get_audio_mixer,
12377 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012378 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12379 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12380 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12381 msm_routing_put_audio_mixer),
12382 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12383 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12384 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12385 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012386 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12387 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12388 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12389 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012390};
12391
12392static const struct snd_kcontrol_new mmul29_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012393 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12394 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012395 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12396 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012397 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12398 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12399 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012401 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12402 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012403 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012405 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12406 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012407 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012409 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12410 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012411 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12412 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012413 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12414 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012415 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12416 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012417 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12418 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012419 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12420 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012421 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12422 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012423 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12424 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012425 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12426 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012427 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12428 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010012429 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12430 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
12431 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12432 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080012433 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12434 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
12435 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12436 msm_routing_put_audio_mixer),
12437 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12438 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
12439 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12440 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012441 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12442 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12443 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12444 msm_routing_put_audio_mixer),
12445 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12446 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12447 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12448 msm_routing_put_audio_mixer),
12449 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12450 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12451 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12452 msm_routing_put_audio_mixer),
12453 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12454 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12455 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12456 msm_routing_put_audio_mixer),
12457 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12458 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12459 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12460 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012461 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12462 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12463 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12464 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012465 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12466 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12467 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12468 msm_routing_get_audio_mixer,
12469 msm_routing_put_audio_mixer),
12470 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12471 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12472 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12473 msm_routing_get_audio_mixer,
12474 msm_routing_put_audio_mixer),
12475 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12476 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12477 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12478 msm_routing_get_audio_mixer,
12479 msm_routing_put_audio_mixer),
12480 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12481 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12482 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12483 msm_routing_get_audio_mixer,
12484 msm_routing_put_audio_mixer),
12485 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12486 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12487 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12488 msm_routing_get_audio_mixer,
12489 msm_routing_put_audio_mixer),
12490 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12491 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12492 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12493 msm_routing_get_audio_mixer,
12494 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012495 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12496 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12497 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12498 msm_routing_put_audio_mixer),
12499 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12500 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12501 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12502 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012503 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12504 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12505 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12506 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012507};
12508
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012509static const struct snd_kcontrol_new pri_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012510 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12511 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012512 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12513 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012514 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12515 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012516 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12517 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012518 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12519 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012520 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12521 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012522 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12523 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012524 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12525 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012526 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12527 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012528 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12529 msm_routing_put_voice_mixer),
12530};
12531
12532static const struct snd_kcontrol_new sec_i2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012533 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12534 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012535 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12536 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012537 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12538 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012539 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12540 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012541 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12542 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012543 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12544 msm_routing_put_voice_mixer),
12545};
12546
12547static const struct snd_kcontrol_new sec_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012548 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12549 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012550 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12551 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012552 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12553 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012554 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12555 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012556 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12557 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012558 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12559 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012560 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12561 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012562 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12563 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012564 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12565 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012566 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12567 msm_routing_put_voice_mixer),
12568};
12569
12570static const struct snd_kcontrol_new slimbus_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012571 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12572 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012573 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12574 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012575 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12576 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012577 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12578 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012579 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12580 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012581 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12582 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012583 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12584 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012585 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12586 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012587 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12588 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012589 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12590 msm_routing_put_voice_mixer),
12591};
12592
12593static const struct snd_kcontrol_new slimbus_6_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012594 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12595MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012596 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12597 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012598 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12599MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012600 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12601 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012602 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12603MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012604 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12605 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012606 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12607MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012608 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12609 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012610 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12611MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012612 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12613 msm_routing_put_voice_mixer),
12614};
12615
12616static const struct snd_kcontrol_new usb_audio_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012617 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12618 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012619 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12620 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012621 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12622 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012623 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12624 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012625 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12626 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012627 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12628 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012629 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12630 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012631 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12632 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012633 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12634 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012635 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12636 msm_routing_put_voice_mixer),
12637};
12638
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012639static const struct snd_kcontrol_new display_port_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012640 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12641MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012642 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12643 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012644 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12645MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012646 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12647 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012648 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12649MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012650 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12651 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012652 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12653MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012654 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12655 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012656 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12657MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012658 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12659 msm_routing_put_voice_mixer),
12660};
12661
Karthikeyan Mani57550082018-05-03 18:43:58 -070012662static const struct snd_kcontrol_new display_port_rx1_voice_mixer_controls[] = {
12663 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12664 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12665 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12666 msm_routing_put_voice_mixer),
12667 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12668 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12669 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12670 msm_routing_put_voice_mixer),
12671 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12672 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12673 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12674 msm_routing_put_voice_mixer),
12675 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12676 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12677 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12678 msm_routing_put_voice_mixer),
12679 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12680 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12681 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12682 msm_routing_put_voice_mixer),
12683};
12684
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012685static const struct snd_kcontrol_new bt_sco_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012686 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12687 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012688 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12689 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012690 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12691 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012692 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12693 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012694 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12695 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012696 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12697 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012698 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12699 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012700 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12701 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012702 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12703 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012704 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12705 msm_routing_put_voice_mixer),
12706};
12707
12708static const struct snd_kcontrol_new mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012709 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12710 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012711 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12712 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012713 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12714 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012715 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12716 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012717 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12718 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012719 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12720 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012721 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12722 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012723 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12724 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012725 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12726 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012727 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12728 msm_routing_put_voice_mixer),
12729};
12730
12731static const struct snd_kcontrol_new pri_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012732 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12733MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012734 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12735 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012736 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12737MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012738 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12739 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012740 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12741MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012742 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12743 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012744 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12745MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012746 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12747 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012748 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12749MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012750 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12751 msm_routing_put_voice_mixer),
12752};
12753
12754static const struct snd_kcontrol_new int0_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012755 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12756MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012757 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12758 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012759 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12760MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012761 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12762 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012763 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12764MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012765 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12766 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012767 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12768MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012769 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12770 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012771 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12772MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012773 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12774 msm_routing_put_voice_mixer),
12775};
12776
12777static const struct snd_kcontrol_new int4_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012778 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12779 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012780 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12781 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012782 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12783 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012784 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12785 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012786 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12787 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012788 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12789 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012790 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12791 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012792 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12793 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012794 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12795 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012796 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12797 msm_routing_put_voice_mixer),
12798};
12799
12800static const struct snd_kcontrol_new tert_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012801 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12802 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012803 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12804 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012805 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12806 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012807 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12808 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012809 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12810 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012811 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12812 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012813 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12814 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012815 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12816 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012817 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12818 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012819 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12820 msm_routing_put_voice_mixer),
12821};
12822
12823static const struct snd_kcontrol_new quat_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012824 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12825 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012826 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12827 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012828 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12829 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012830 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12831 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012832 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12833 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012834 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12835 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012836 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12837 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012838 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12839 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012840 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12841 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012842 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12843 msm_routing_put_voice_mixer),
12844};
12845
12846static const struct snd_kcontrol_new quin_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012847 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12848 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012849 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12850 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012851 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12852 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012853 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12854 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012855 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12856 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012857 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12858 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012859 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12860 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012861 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12862 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012863 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12864 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012865 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12866 msm_routing_put_voice_mixer),
12867};
12868
12869static const struct snd_kcontrol_new afe_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012870 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12871 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012872 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12873 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012874 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12875 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012876 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12877 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012878 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12879 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012880 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12881 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012882 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12883 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012884 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12885 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012886 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12887 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012888 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12889 msm_routing_put_voice_mixer),
12890};
12891
12892static const struct snd_kcontrol_new aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012893 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12894 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012895 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12896 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012897 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12898 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012899 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12900 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012901 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12902 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012903 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12904 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012905 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12906 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012907 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12908 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012909 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12910 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012911 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12912 msm_routing_put_voice_mixer),
12913};
12914
12915static const struct snd_kcontrol_new sec_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012916 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12917MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012918 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12919 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012920 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12921MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012922 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12923 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012924 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12925MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012926 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12927 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012928 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12929MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012930 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12931 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012932 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12933MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012934 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12935 msm_routing_put_voice_mixer),
12936};
12937
12938static const struct snd_kcontrol_new tert_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012939 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12940MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012941 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12942 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012943 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12944MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012945 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12946 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012947 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12948MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012949 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12950 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012951 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12952MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012953 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12954 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012955 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12956MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012957 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12958 msm_routing_put_voice_mixer),
12959};
12960
12961static const struct snd_kcontrol_new quat_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012962 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12963MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012964 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12965 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012966 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12967MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012968 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12969 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012970 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12971MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012972 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12973 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012974 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12975MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012976 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12977 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012978 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12979MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012980 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12981 msm_routing_put_voice_mixer),
12982};
12983
Rohit Kumara5077932017-09-10 22:05:05 +053012984static const struct snd_kcontrol_new quin_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012985 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12986MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012987 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12988 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012989 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12990MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012991 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12992 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012993 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12994MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012995 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12996 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012997 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12998MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012999 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,
13002MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013003 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13004 msm_routing_put_voice_mixer),
13005};
13006
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013007static const struct snd_kcontrol_new hdmi_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013008 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13009 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013010 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13011 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013012 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13013 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013014 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13015 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013016 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13017 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013018 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13019 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013020 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13021 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013022 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13023 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013024 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13025 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013026 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13027 msm_routing_put_voice_mixer),
13028};
13029
13030static const struct snd_kcontrol_new slimbus_7_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013031 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13032MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013033 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13034 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013035 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13036MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013037 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13038 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013039 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13040MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013041 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13042 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013043 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13044MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013045 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13046 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013047 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13048MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013049 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13050 msm_routing_put_voice_mixer),
13051};
13052
13053static const struct snd_kcontrol_new slimbus_8_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013054 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13055 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013056 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13057 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013058 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13059 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013060 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13061 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013062 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13063 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013064 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13065 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013066 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13067 MSM_BACKEND_DAI_SLIMBUS_8_RX,
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("VoiceMMode2", SND_SOC_NOPM,
13071 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013072 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13073 msm_routing_put_voice_mixer),
13074};
13075
13076static const struct snd_kcontrol_new quat_tdm_rx_2_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013077 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13078 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013079 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13080 msm_routing_put_voice_mixer),
13081};
13082
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013083static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_voice_mixer_controls[] = {
13084 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13085 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13086 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13087 msm_routing_put_voice_mixer),
13088 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13089 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13090 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13091 msm_routing_put_voice_mixer),
13092 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13093 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13094 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13095 msm_routing_put_voice_mixer),
13096 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13097 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13098 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13099 msm_routing_put_voice_mixer),
13100 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13101 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13102 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13103 msm_routing_put_voice_mixer),
13104};
13105
13106static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_voice_mixer_controls[] = {
13107 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13108 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
13109 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13110 msm_routing_put_voice_mixer),
13111 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13112 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
13113 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13114 msm_routing_put_voice_mixer),
13115 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13116 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
13117 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13118 msm_routing_put_voice_mixer),
13119 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13120 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
13121 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13122 msm_routing_put_voice_mixer),
13123 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13124 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
13125 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13126 msm_routing_put_voice_mixer),
13127};
13128
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013129static const struct snd_kcontrol_new rx_cdc_dma_rx_0_voice_mixer_controls[] = {
13130 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13131 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13132 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13133 msm_routing_put_voice_mixer),
13134 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13135 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13136 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13137 msm_routing_put_voice_mixer),
13138 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13139 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13140 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13141 msm_routing_put_voice_mixer),
13142 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13143 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13144 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13145 msm_routing_put_voice_mixer),
13146 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13147 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13148 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13149 msm_routing_put_voice_mixer),
13150};
13151
13152static const struct snd_kcontrol_new rx_cdc_dma_rx_1_voice_mixer_controls[] = {
13153 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13154 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
13155 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13156 msm_routing_put_voice_mixer),
13157 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13158 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
13159 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13160 msm_routing_put_voice_mixer),
13161 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13162 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
13163 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13164 msm_routing_put_voice_mixer),
13165 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13166 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
13167 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13168 msm_routing_put_voice_mixer),
13169 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13170 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
13171 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13172 msm_routing_put_voice_mixer),
13173};
13174
13175static const struct snd_kcontrol_new rx_cdc_dma_rx_2_voice_mixer_controls[] = {
13176 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13177 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
13178 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13179 msm_routing_put_voice_mixer),
13180 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13181 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
13182 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13183 msm_routing_put_voice_mixer),
13184 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13185 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
13186 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13187 msm_routing_put_voice_mixer),
13188 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13189 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
13190 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13191 msm_routing_put_voice_mixer),
13192 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13193 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
13194 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13195 msm_routing_put_voice_mixer),
13196};
13197
13198static const struct snd_kcontrol_new rx_cdc_dma_rx_3_voice_mixer_controls[] = {
13199 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13200 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
13201 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13202 msm_routing_put_voice_mixer),
13203 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13204 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
13205 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13206 msm_routing_put_voice_mixer),
13207 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13208 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
13209 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13210 msm_routing_put_voice_mixer),
13211 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13212 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
13213 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13214 msm_routing_put_voice_mixer),
13215 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13216 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
13217 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13218 msm_routing_put_voice_mixer),
13219};
13220
13221static const struct snd_kcontrol_new rx_cdc_dma_rx_4_voice_mixer_controls[] = {
13222 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13223 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
13224 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13225 msm_routing_put_voice_mixer),
13226 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13227 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
13228 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13229 msm_routing_put_voice_mixer),
13230 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13231 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
13232 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13233 msm_routing_put_voice_mixer),
13234 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13235 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
13236 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13237 msm_routing_put_voice_mixer),
13238 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13239 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
13240 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13241 msm_routing_put_voice_mixer),
13242};
13243
13244static const struct snd_kcontrol_new rx_cdc_dma_rx_5_voice_mixer_controls[] = {
13245 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13246 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13247 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13248 msm_routing_put_voice_mixer),
13249 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13250 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13251 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13252 msm_routing_put_voice_mixer),
13253 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13254 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13255 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13256 msm_routing_put_voice_mixer),
13257 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13258 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13259 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13260 msm_routing_put_voice_mixer),
13261 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13262 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13263 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13264 msm_routing_put_voice_mixer),
13265};
13266
13267static const struct snd_kcontrol_new rx_cdc_dma_rx_6_voice_mixer_controls[] = {
13268 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13269 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13270 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13271 msm_routing_put_voice_mixer),
13272 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13273 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13274 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13275 msm_routing_put_voice_mixer),
13276 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13277 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13278 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13279 msm_routing_put_voice_mixer),
13280 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13281 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13282 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13283 msm_routing_put_voice_mixer),
13284 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13285 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13286 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13287 msm_routing_put_voice_mixer),
13288};
13289
13290static const struct snd_kcontrol_new rx_cdc_dma_rx_7_voice_mixer_controls[] = {
13291 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13292 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13293 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13294 msm_routing_put_voice_mixer),
13295 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13296 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13297 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13298 msm_routing_put_voice_mixer),
13299 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13300 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13301 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13302 msm_routing_put_voice_mixer),
13303 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13304 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13305 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13306 msm_routing_put_voice_mixer),
13307 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13308 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13309 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13310 msm_routing_put_voice_mixer),
13311};
13312
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013313static const struct snd_kcontrol_new stub_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013314 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13315 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013316 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13317 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013318 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13319 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013320 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13321 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013322};
13323
13324static const struct snd_kcontrol_new slimbus_1_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013325 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13326 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013327 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13328 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013329 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13330 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013331 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13332 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013333};
13334
13335static const struct snd_kcontrol_new slimbus_3_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013336 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13337 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013338 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13339 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013340 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13341 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013342 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13343 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013344};
13345
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013346static const struct snd_kcontrol_new tx_voicemmode1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013347 SOC_DOUBLE_EXT("PRI_TX_MMode1", SND_SOC_NOPM,
13348 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013349 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13350 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013351 SOC_DOUBLE_EXT("MI2S_TX_MMode1", SND_SOC_NOPM,
13352 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013353 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13354 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013355 SOC_DOUBLE_EXT("SLIM_0_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013356 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13357 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013358 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013359 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13360 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013361 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013362 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
13363 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013364 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013365 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
13366 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013367 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013368 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13369 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013370 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013371 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13372 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013373 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013374 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13375 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013376 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053013377 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13378 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013379 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013380 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
13381 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013382 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013383 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
13384 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013385 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013386 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
13387 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013388 SOC_DOUBLE_EXT("SLIM_7_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013389 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13390 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013391 SOC_DOUBLE_EXT("SLIM_8_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013392 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13393 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013394 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode1", SND_SOC_NOPM,
13395 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013396 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13397 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013398 SOC_DOUBLE_EXT("QUAT_TDM_TX_0_MMode1", SND_SOC_NOPM,
13399MSM_BACKEND_DAI_QUAT_TDM_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013400 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013401 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
13402 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
13403 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13404 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
13405 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
13406 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013407 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
13408 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
13409 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013410 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
13411 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
13412 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13413 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
13414 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
13415 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13416 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
13417 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
13418 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13419 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode1", SND_SOC_NOPM,
13420 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
13421 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13422 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode1", SND_SOC_NOPM,
13423 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE1,
13424 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13425 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode1", SND_SOC_NOPM,
13426 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE1,
13427 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013428};
13429
13430static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013431 SOC_DOUBLE_EXT("PRI_TX_MMode2", SND_SOC_NOPM,
13432 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013433 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13434 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013435 SOC_DOUBLE_EXT("MI2S_TX_MMode2", SND_SOC_NOPM,
13436 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013437 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13438 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013439 SOC_DOUBLE_EXT("SLIM_0_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013440 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13441 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013442 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013443 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13444 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013445 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013446 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13447 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013448 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013449 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13450 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013451 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013452 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13453 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013454 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013455 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13456 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013457 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013458 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13459 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013460 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053013461 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13462 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013463 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013464 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13465 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013466 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013467 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
13468 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013469 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013470 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
13471 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013472 SOC_DOUBLE_EXT("SLIM_7_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013473 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13474 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013475 SOC_DOUBLE_EXT("SLIM_8_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013476 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13477 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013478 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013479 MSM_BACKEND_DAI_USB_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13480 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013481 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
13482 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
13483 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13484 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
13485 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
13486 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013487 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
13488 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
13489 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013490 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
13491 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
13492 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13493 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
13494 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
13495 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13496 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
13497 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
13498 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13499 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode2", SND_SOC_NOPM,
13500 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
13501 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13502 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode2", SND_SOC_NOPM,
13503 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE2,
13504 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13505 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode2", SND_SOC_NOPM,
13506 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE2,
13507 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013508};
13509
13510static const struct snd_kcontrol_new tx_voip_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013511 SOC_DOUBLE_EXT("PRI_TX_Voip", SND_SOC_NOPM,
13512 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013513 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13514 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013515 SOC_DOUBLE_EXT("MI2S_TX_Voip", SND_SOC_NOPM,
13516 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013517 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13518 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013519 SOC_DOUBLE_EXT("SLIM_0_TX_Voip", SND_SOC_NOPM,
13520 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013521 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13522 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013523 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_Voip", SND_SOC_NOPM,
13524 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013525 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13526 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013527 SOC_DOUBLE_EXT("AFE_PCM_TX_Voip", SND_SOC_NOPM,
13528 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013529 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13530 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013531 SOC_DOUBLE_EXT("AUX_PCM_TX_Voip", SND_SOC_NOPM,
13532 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013533 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13534 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013535 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13536 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013537 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13538 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013539 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13540 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013541 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13542 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013543 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13544 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013545 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13546 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013547 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13548 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013549 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13550 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013551 SOC_DOUBLE_EXT("PRI_MI2S_TX_Voip", SND_SOC_NOPM,
13552 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013553 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13554 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013555 SOC_DOUBLE_EXT("TERT_MI2S_TX_Voip", SND_SOC_NOPM,
13556 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013557 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13558 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013559 SOC_DOUBLE_EXT("INT3_MI2S_TX_Voip", SND_SOC_NOPM,
13560 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013561 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13562 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013563 SOC_DOUBLE_EXT("SLIM_7_TX_Voip", SND_SOC_NOPM,
13564 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013565 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13566 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013567 SOC_DOUBLE_EXT("SLIM_8_TX_Voip", SND_SOC_NOPM,
13568 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013569 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13570 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013571 SOC_DOUBLE_EXT("USB_AUDIO_TX_Voip", SND_SOC_NOPM,
13572 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013573 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13574 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013575 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
13576 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
13577 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13578 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
13579 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
13580 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013581 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
13582 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
13583 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013584 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
13585 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
13586 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13587 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
13588 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
13589 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13590 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
13591 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
13592 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13593 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_Voip", SND_SOC_NOPM,
13594 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOIP,
13595 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13596 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_Voip", SND_SOC_NOPM,
13597 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOIP,
13598 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13599 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_Voip", SND_SOC_NOPM,
13600 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOIP,
13601 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013602};
13603
13604static const struct snd_kcontrol_new tx_voice_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013605 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13606 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013607 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13608 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013609 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13610 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013611 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13612 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013613 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13614 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013615 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13616 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013617 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13618 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013619 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13620 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013621 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13622 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013623 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13624 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013625 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13626 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013627 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13628 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013629 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13630 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013631 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13632 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013633 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13634 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013635 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13636 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013637 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13638 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013639 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13640 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013641 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13642 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013643 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13644 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013645 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13646 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013647 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13648 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013649 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13650 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013651 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13652 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013653 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13654 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013655 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13656 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013657 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13658 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013659 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13660 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013661 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13662 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013663 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13664 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013665 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13666 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013667 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13668 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013669 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13670 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013671 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13672 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013673 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13674 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013675 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13676 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013677 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13678 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013679 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13680 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013681 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13682 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
13683 1, 0, msm_routing_get_voice_stub_mixer,
13684 msm_routing_put_voice_stub_mixer),
13685 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13686 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
13687 1, 0, msm_routing_get_voice_stub_mixer,
13688 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013689 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13690 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
13691 1, 0, msm_routing_get_voice_stub_mixer,
13692 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013693 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13694 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
13695 1, 0, msm_routing_get_voice_stub_mixer,
13696 msm_routing_put_voice_stub_mixer),
13697 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13698 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
13699 1, 0, msm_routing_get_voice_stub_mixer,
13700 msm_routing_put_voice_stub_mixer),
13701 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13702 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
13703 1, 0, msm_routing_get_voice_stub_mixer,
13704 msm_routing_put_voice_stub_mixer),
13705 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13706 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE_STUB,
13707 1, 0, msm_routing_get_voice_stub_mixer,
13708 msm_routing_put_voice_stub_mixer),
13709 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13710 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE_STUB,
13711 1, 0, msm_routing_get_voice_stub_mixer,
13712 msm_routing_put_voice_stub_mixer),
13713 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13714 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE_STUB,
13715 1, 0, msm_routing_get_voice_stub_mixer,
13716 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013717};
13718
13719static const struct snd_kcontrol_new tx_voice2_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013720 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13721 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013722 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13723 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013724 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13725 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013726 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13727 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013728 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13729 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013730 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13731 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013732 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13733 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013734 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13735 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013736 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13737 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013738 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13739 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013740 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13741 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013742 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13743 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013744 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13745 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013746 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13747 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013748 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13749 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013750 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13751 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013752 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13753 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013754 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13755 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013756 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13757 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013758 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13759 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013760 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13761 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013762 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13763 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013764 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13765 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013766 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13767 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013768 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13769 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013770 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13771 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013772 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13773 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013774 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13775 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013776 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13777 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013778 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13779 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013780 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13781 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
13782 1, 0, msm_routing_get_voice_stub_mixer,
13783 msm_routing_put_voice_stub_mixer),
13784 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13785 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
13786 1, 0, msm_routing_get_voice_stub_mixer,
13787 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013788 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13789 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
13790 1, 0, msm_routing_get_voice_stub_mixer,
13791 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013792 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13793 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
13794 1, 0, msm_routing_get_voice_stub_mixer,
13795 msm_routing_put_voice_stub_mixer),
13796 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13797 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
13798 1, 0, msm_routing_get_voice_stub_mixer,
13799 msm_routing_put_voice_stub_mixer),
13800 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13801 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
13802 1, 0, msm_routing_get_voice_stub_mixer,
13803 msm_routing_put_voice_stub_mixer),
13804 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13805 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE2_STUB,
13806 1, 0, msm_routing_get_voice_stub_mixer,
13807 msm_routing_put_voice_stub_mixer),
13808 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13809 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE2_STUB,
13810 1, 0, msm_routing_get_voice_stub_mixer,
13811 msm_routing_put_voice_stub_mixer),
13812 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13813 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE2_STUB,
13814 1, 0, msm_routing_get_voice_stub_mixer,
13815 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013816};
13817
13818static const struct snd_kcontrol_new tx_volte_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013819 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13820 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013821 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13822 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013823 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13824 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013825 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13826 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013827 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13828 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013829 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13830 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013831 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13832 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013833 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13834 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013835 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13836 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013837 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13838 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013839 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13840 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013841 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13842 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013843 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13844 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013845 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13846 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013847 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13848 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013849 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13850 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013851 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13852 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013853 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13854 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013855 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13856 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013857 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13858 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013859 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13860 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013861 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13862 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013863 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13864 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013865 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13866 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013867 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13868 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013869 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13870 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013871 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13872 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013873 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13874 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013875 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13876 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013877 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13878 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013879 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13880 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
13881 1, 0, msm_routing_get_voice_stub_mixer,
13882 msm_routing_put_voice_stub_mixer),
13883 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13884 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
13885 1, 0, msm_routing_get_voice_stub_mixer,
13886 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013887 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13888 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
13889 1, 0, msm_routing_get_voice_stub_mixer,
13890 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013891 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13892 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
13893 1, 0, msm_routing_get_voice_stub_mixer,
13894 msm_routing_put_voice_stub_mixer),
13895 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13896 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
13897 1, 0, msm_routing_get_voice_stub_mixer,
13898 msm_routing_put_voice_stub_mixer),
13899 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13900 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
13901 1, 0, msm_routing_get_voice_stub_mixer,
13902 msm_routing_put_voice_stub_mixer),
13903 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13904 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOLTE_STUB,
13905 1, 0, msm_routing_get_voice_stub_mixer,
13906 msm_routing_put_voice_stub_mixer),
13907 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13908 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOLTE_STUB,
13909 1, 0, msm_routing_get_voice_stub_mixer,
13910 msm_routing_put_voice_stub_mixer),
13911 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13912 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOLTE_STUB,
13913 1, 0, msm_routing_get_voice_stub_mixer,
13914 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013915};
13916
13917static const struct snd_kcontrol_new tx_qchat_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013918 SOC_DOUBLE_EXT("PRI_TX_QCHAT", SND_SOC_NOPM,
13919 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013920 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13921 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013922 SOC_DOUBLE_EXT("SLIM_0_TX_QCHAT", SND_SOC_NOPM,
13923 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013924 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13925 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013926 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_QCHAT", SND_SOC_NOPM,
13927 MSM_BACKEND_DAI_INT_BT_SCO_TX,
13928 MSM_FRONTEND_DAI_QCHAT, 1, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013929 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013930 SOC_DOUBLE_EXT("AFE_PCM_TX_QCHAT", SND_SOC_NOPM,
13931 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013932 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13933 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013934 SOC_DOUBLE_EXT("AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13935 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013936 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13937 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013938 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13939 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013940 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13941 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013942 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13943 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013944 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13945 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013946 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13947 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013948 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13949 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013950 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13951 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013952 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13953 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013954 SOC_DOUBLE_EXT("MI2S_TX_QCHAT", SND_SOC_NOPM,
13955 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013956 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13957 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013958 SOC_DOUBLE_EXT("PRI_MI2S_TX_QCHAT", SND_SOC_NOPM,
13959 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013960 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13961 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013962 SOC_DOUBLE_EXT("TERT_MI2S_TX_QCHAT", SND_SOC_NOPM,
13963 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013964 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13965 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013966 SOC_DOUBLE_EXT("INT3_MI2S_TX_QCHAT", SND_SOC_NOPM,
13967 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013968 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13969 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013970 SOC_DOUBLE_EXT("SLIM_7_TX_QCHAT", SND_SOC_NOPM,
13971 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013972 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13973 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013974 SOC_DOUBLE_EXT("SLIM_8_TX_QCHAT", SND_SOC_NOPM,
13975 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013976 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13977 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013978 SOC_DOUBLE_EXT("USB_AUDIO_TX_QCHAT", SND_SOC_NOPM,
13979 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013980 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13981 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013982 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
13983 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
13984 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13985 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
13986 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
13987 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013988 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
13989 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
13990 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013991 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
13992 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
13993 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13994 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
13995 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
13996 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13997 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
13998 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
13999 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14000 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_QCHAT", SND_SOC_NOPM,
14001 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_QCHAT,
14002 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14003 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_QCHAT", SND_SOC_NOPM,
14004 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_QCHAT,
14005 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14006 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_QCHAT", SND_SOC_NOPM,
14007 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_QCHAT,
14008 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014009};
14010
14011static const struct snd_kcontrol_new int0_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014012 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14013 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014014 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14015 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014016 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14017 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014018 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14019 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014020 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14021 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014022 MSM_BACKEND_DAI_TERTIARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
14025 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014026 MSM_BACKEND_DAI_QUATERNARY_MI2S_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("QUIN_MI2S_TX", SND_SOC_NOPM,
14029 MSM_BACKEND_DAI_INT0_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014030 MSM_BACKEND_DAI_QUINARY_MI2S_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("INT3_MI2S_TX", SND_SOC_NOPM,
14033 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014034 MSM_BACKEND_DAI_INT3_MI2S_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("INTERNAL_FM_TX", SND_SOC_NOPM,
14037 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014038 MSM_BACKEND_DAI_INT_FM_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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14041 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014042 MSM_BACKEND_DAI_INT_BT_SCO_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("SLIM_7_TX", SND_SOC_NOPM,
14045 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014046 MSM_BACKEND_DAI_SLIMBUS_7_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("SLIM_8_TX", SND_SOC_NOPM,
14049 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014050 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14051 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053014052 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14053 MSM_BACKEND_DAI_INT0_MI2S_RX,
14054 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
14055 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014056};
14057
14058static const struct snd_kcontrol_new int4_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014059 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14060 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014061 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14062 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014063 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14064 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014065 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14066 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014067 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14068 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014069 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14070 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014071 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14072 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014073 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14074 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014075 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14076 MSM_BACKEND_DAI_INT4_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014077 MSM_BACKEND_DAI_QUINARY_MI2S_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("INT3_MI2S_TX", SND_SOC_NOPM,
14080 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014081 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14082 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014083 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14084 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014085 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14086 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014087 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14088 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014089 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14090 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014091 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14092 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014093 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
14094 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014095 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14096 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014097 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14098 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053014099 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14100 MSM_BACKEND_DAI_INT4_MI2S_RX,
14101 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
14102 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014103};
14104
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053014105static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_port_mixer_controls[] = {
14106 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14107 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
14108 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, 1, 0, msm_routing_get_port_mixer,
14109 msm_routing_put_port_mixer),
14110 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14111 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
14112 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
14113 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080014114 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14115 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
14116 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14117 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080014118 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14119 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
14120 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14121 msm_routing_put_port_mixer),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053014122};
14123
14124static const struct snd_kcontrol_new rx_cdc_dma_rx_0_port_mixer_controls[] = {
14125 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14126 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
14127 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
14128 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080014129 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14130 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
14131 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14132 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053014133 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
Meng Wang3f8ba542018-12-10 14:17:10 +080014134 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
Surendar Karka3ef3d812018-09-28 18:52:35 +053014135 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
14136 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080014137 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14138 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
14139 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14140 msm_routing_put_port_mixer),
14141
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053014142};
14143
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014144static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014145 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14146 MSM_BACKEND_DAI_SLIMBUS_0_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("SLIM_0_TX", SND_SOC_NOPM,
14150 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014151 MSM_BACKEND_DAI_SLIMBUS_0_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("SLIM_1_TX", SND_SOC_NOPM,
14154 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014155 MSM_BACKEND_DAI_SLIMBUS_1_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("SLIM_7_TX", SND_SOC_NOPM,
14158 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014159 MSM_BACKEND_DAI_SLIMBUS_7_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("SLIM_8_TX", SND_SOC_NOPM,
14162 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014163 MSM_BACKEND_DAI_SLIMBUS_8_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
14166 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014167 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14168 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014169 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14170 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014171 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14172 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014173 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
14174 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014175 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14176 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014177 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
14178 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014179 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14180 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014181 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
14182 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014183 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14184 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014185 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14186 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014187 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14188 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014189 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14190 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014191 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14192 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014193 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14194 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014195 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14196 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014197 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14198 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014199 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14200 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014201 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14202 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014203 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14204 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014205 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14206 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014207 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14208 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014209 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14210 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014211 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14212 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014213 SOC_DOUBLE_EXT("PRI_MI2S_RX", SND_SOC_NOPM,
14214 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014215 MSM_BACKEND_DAI_PRI_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
14216 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014217 SOC_DOUBLE_EXT("SEC_MI2S_RX", SND_SOC_NOPM,
14218 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014219 MSM_BACKEND_DAI_SECONDARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
14220 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014221 SOC_DOUBLE_EXT("TERT_MI2S_RX", SND_SOC_NOPM,
14222 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014223 MSM_BACKEND_DAI_TERTIARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
14224 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014225 SOC_DOUBLE_EXT("QUAT_MI2S_RX", SND_SOC_NOPM,
14226 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014227 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
14228 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014229 SOC_DOUBLE_EXT("QUIN_MI2S_RX", SND_SOC_NOPM,
14230 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Surendar Karka3ef3d812018-09-28 18:52:35 +053014231 MSM_BACKEND_DAI_QUINARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
14232 msm_routing_put_port_mixer),
14233 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14234 MSM_BACKEND_DAI_SLIMBUS_0_RX,
14235 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
Rohit Kumara5077932017-09-10 22:05:05 +053014236 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014237};
14238
14239static const struct snd_kcontrol_new aux_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014240 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14241 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014242 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14243 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014244 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14245 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014246 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14247 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014248 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14249 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014250 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14251 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014252 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14253 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014254 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14255 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014256 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14257 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014258 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
14259 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014260 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14261 MSM_BACKEND_DAI_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080014262 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14263 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014264};
14265
14266static const struct snd_kcontrol_new sec_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014267 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14268 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014269 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14270 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014271 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14272 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014273 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14274 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014275 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14276 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014277 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14278 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014279 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14280 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080014281 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14282 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014283};
14284
14285static const struct snd_kcontrol_new tert_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014286 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
14287 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014288 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14289 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014290 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14291 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014292 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14293 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014294 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14295 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014296 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14297 msm_routing_put_port_mixer),
14298};
14299
14300static const struct snd_kcontrol_new quat_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014301 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
14302 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014303 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14304 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014305 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14306 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014307 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14308 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014309 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14310 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014311 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14312 msm_routing_put_port_mixer),
14313};
14314
Rohit Kumara5077932017-09-10 22:05:05 +053014315static const struct snd_kcontrol_new quin_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014316 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
14317 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014318 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14319 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014320 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14321 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014322 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14323 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014324 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14325 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014326 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14327 msm_routing_put_port_mixer),
14328};
14329
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014330static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014331 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14332 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014333 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14334 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014335 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14336 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014337 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0, msm_routing_get_port_mixer,
14338 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014339 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14340 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014341 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14342 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014343 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14344 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014345 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14346 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014347 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
14348 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014349 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14350 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014351 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
14352 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014353 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14354 msm_routing_put_port_mixer),
14355};
14356
14357static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014358 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_RX", SND_SOC_NOPM,
14359 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014360 MSM_BACKEND_DAI_INT_BT_SCO_RX, 1, 0, msm_routing_get_port_mixer,
14361 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014362 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14363 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014364 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14365 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014366 SOC_DOUBLE_EXT("AFE_PCM_RX", SND_SOC_NOPM,
14367 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014368 MSM_BACKEND_DAI_AFE_PCM_RX, 1, 0, msm_routing_get_port_mixer,
14369 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014370 SOC_DOUBLE_EXT("AUX_PCM_RX", SND_SOC_NOPM,
14371 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014372 MSM_BACKEND_DAI_AUXPCM_RX, 1, 0, msm_routing_get_port_mixer,
14373 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014374 SOC_DOUBLE_EXT("SLIM_0_RX", SND_SOC_NOPM,
14375 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014376 MSM_BACKEND_DAI_SLIMBUS_0_RX, 1, 0, msm_routing_get_port_mixer,
14377 msm_routing_put_port_mixer),
14378};
14379
14380static const struct snd_kcontrol_new sbus_6_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014381 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14382 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014383 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14384 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014385 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14386 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014387 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14388 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014389 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14390 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014391 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14392 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014393 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14394 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014395 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
14396 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014397 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14398 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014399 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14400 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014401 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14402 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014403 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14404 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014405 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14406 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014407 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14408 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014409 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14410 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014411 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14412 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014413 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14414 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014415 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14416 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014417 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14418 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014419 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14420 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014421 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14422 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014423 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14424 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014425 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14426 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014427 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14428 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053014429 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14430 MSM_BACKEND_DAI_SLIMBUS_6_RX,
14431 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
14432 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014433};
14434
14435static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014436 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14437 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014438 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14439 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014440 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14441 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014442 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14443 msm_routing_put_port_mixer),
14444};
14445
14446static const struct snd_kcontrol_new afe_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014447 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14448 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014449 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14450 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014451 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14452 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014453 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14454 msm_routing_put_port_mixer),
14455};
14456
14457
14458static const struct snd_kcontrol_new hdmi_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014459 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14460 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014461 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14462 msm_routing_put_port_mixer),
14463};
14464
14465static const struct snd_kcontrol_new display_port_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014466 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14467 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014468 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14469 msm_routing_put_port_mixer),
14470};
14471
Karthikeyan Mani57550082018-05-03 18:43:58 -070014472static const struct snd_kcontrol_new display_port_rx1_port_mixer_controls[] = {
14473 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14474 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
14475 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14476 msm_routing_put_port_mixer),
14477};
14478
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014479static const struct snd_kcontrol_new sec_i2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014480 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14481 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014482 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14483 msm_routing_put_port_mixer),
14484};
14485
14486static const struct snd_kcontrol_new mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014487 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14488 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014489 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14490 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014491 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14492 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014493 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14494 msm_routing_put_port_mixer),
14495};
14496
14497static const struct snd_kcontrol_new primary_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014498 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14499 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014500 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14501 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014502 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14503 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014504 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14505 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014506 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14507 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014508 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14509 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014510 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14511 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014512 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14513 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014514 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14515 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014516 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14517 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014518 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14519 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014520 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14521 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014522 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14523 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014524 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14525 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014526 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14527 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014528 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14529 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014530 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14531 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014532 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14533 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014534 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14535 MSM_BACKEND_DAI_PRI_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080014536 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14537 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014538};
14539
14540static const struct snd_kcontrol_new usb_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014541 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
14542 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014543 MSM_BACKEND_DAI_USB_TX, 1, 0, msm_routing_get_port_mixer,
14544 msm_routing_put_port_mixer),
14545};
14546
14547static const struct snd_kcontrol_new quat_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014548 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14549 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014550 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14551 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014552 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14553 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014554 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14555 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014556 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14557 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014558 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14559 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014560 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14561 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014562 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14563 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014564 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14565 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014566 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14567 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014568 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14569 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014570 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14571 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014572 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14573 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014574 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14575 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014576 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14577 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014578 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14579 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014580 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14581 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014582 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14583 msm_routing_put_port_mixer),
14584};
14585
Rohit Kumara5077932017-09-10 22:05:05 +053014586static const struct snd_kcontrol_new quin_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014587 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14588 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014589 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14590 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014591 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14592 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014593 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14594 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014595 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14596 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014597 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14598 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014599 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14600 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014601 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14602 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014603 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14604 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014605 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14606 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014607 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14608 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014609 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14610 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014611 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14612 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014613 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14614 msm_routing_put_port_mixer),
14615};
14616
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014617static const struct snd_kcontrol_new pri_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014618 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14619 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014620 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14621 msm_routing_get_port_mixer,
14622 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014623 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14624 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014625 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14626 msm_routing_get_port_mixer,
14627 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014628 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14629 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014630 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14631 msm_routing_get_port_mixer,
14632 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014633 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14634 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014635 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14636 msm_routing_get_port_mixer,
14637 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014638 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14639 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014640 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14641 msm_routing_get_port_mixer,
14642 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014643 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14644 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014645 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14646 msm_routing_get_port_mixer,
14647 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014648 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14649 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014650 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14651 msm_routing_get_port_mixer,
14652 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014653 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14654 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014655 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14656 msm_routing_get_port_mixer,
14657 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014658 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14659 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014660 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14661 msm_routing_get_port_mixer,
14662 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014663 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14664 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014665 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14666 msm_routing_get_port_mixer,
14667 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014668 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14669 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014670 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14671 msm_routing_get_port_mixer,
14672 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014673 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14674 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014675 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14676 msm_routing_get_port_mixer,
14677 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014678 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14679 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014680 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14681 msm_routing_get_port_mixer,
14682 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014683 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14684 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014685 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14686 msm_routing_get_port_mixer,
14687 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014688 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14689 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014690 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14691 msm_routing_get_port_mixer,
14692 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014693 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14694 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014695 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14696 msm_routing_get_port_mixer,
14697 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014698 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14699 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014700 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14701 msm_routing_get_port_mixer,
14702 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014703 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14704 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014705 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14706 msm_routing_get_port_mixer,
14707 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014708 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14709 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014710 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14711 msm_routing_get_port_mixer,
14712 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014713 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14714 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014715 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14716 msm_routing_get_port_mixer,
14717 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014718};
14719
14720static const struct snd_kcontrol_new pri_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014721 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14722 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014723 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14724 msm_routing_get_port_mixer,
14725 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014726 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14727 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014728 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14729 msm_routing_get_port_mixer,
14730 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014731 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14732 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014733 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14734 msm_routing_get_port_mixer,
14735 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014736 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14737 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014738 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14739 msm_routing_get_port_mixer,
14740 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014741 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14742 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014743 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14744 msm_routing_get_port_mixer,
14745 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014746 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14747 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014748 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14749 msm_routing_get_port_mixer,
14750 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014751 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14752 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014753 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14754 msm_routing_get_port_mixer,
14755 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014756 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14757 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014758 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14759 msm_routing_get_port_mixer,
14760 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014761 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14762 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014763 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14764 msm_routing_get_port_mixer,
14765 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014766 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14767 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014768 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14769 msm_routing_get_port_mixer,
14770 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014771 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14772 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014773 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14774 msm_routing_get_port_mixer,
14775 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014776 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14777 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014778 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14779 msm_routing_get_port_mixer,
14780 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014781 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14782 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014783 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14784 msm_routing_get_port_mixer,
14785 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014786 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14787 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014788 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14789 msm_routing_get_port_mixer,
14790 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014791 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14792 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014793 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14794 msm_routing_get_port_mixer,
14795 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014796 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14797 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014798 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14799 msm_routing_get_port_mixer,
14800 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014801 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14802 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014803 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14804 msm_routing_get_port_mixer,
14805 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014806 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14807 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014808 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14809 msm_routing_get_port_mixer,
14810 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014811 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14812 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014813 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14814 msm_routing_get_port_mixer,
14815 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014816 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14817 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014818 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14819 msm_routing_get_port_mixer,
14820 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014821};
14822
14823static const struct snd_kcontrol_new pri_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014824 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14825 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014826 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14827 msm_routing_get_port_mixer,
14828 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014829 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14830 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014831 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14832 msm_routing_get_port_mixer,
14833 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014834 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14835 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014836 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14837 msm_routing_get_port_mixer,
14838 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014839 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14840 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014841 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14842 msm_routing_get_port_mixer,
14843 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014844 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14845 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014846 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14847 msm_routing_get_port_mixer,
14848 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014849 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14850 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014851 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14852 msm_routing_get_port_mixer,
14853 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014854 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14855 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014856 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14857 msm_routing_get_port_mixer,
14858 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014859 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14860 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014861 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14862 msm_routing_get_port_mixer,
14863 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014864 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14865 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014866 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14867 msm_routing_get_port_mixer,
14868 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014869 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14870 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014871 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14872 msm_routing_get_port_mixer,
14873 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014874 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14875 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014876 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14877 msm_routing_get_port_mixer,
14878 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014879 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14880 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014881 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14882 msm_routing_get_port_mixer,
14883 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014884 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14885 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014886 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14887 msm_routing_get_port_mixer,
14888 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014889 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14890 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014891 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14892 msm_routing_get_port_mixer,
14893 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014894 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14895 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014896 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14897 msm_routing_get_port_mixer,
14898 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014899 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14900 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014901 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14902 msm_routing_get_port_mixer,
14903 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014904 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14905 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014906 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14907 msm_routing_get_port_mixer,
14908 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014909 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14910 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014911 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14912 msm_routing_get_port_mixer,
14913 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014914 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14915 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014916 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14917 msm_routing_get_port_mixer,
14918 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014919 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14920 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014921 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14922 msm_routing_get_port_mixer,
14923 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014924};
14925
14926static const struct snd_kcontrol_new pri_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014927 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14928 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014929 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14930 msm_routing_get_port_mixer,
14931 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014932 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14933 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014934 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14935 msm_routing_get_port_mixer,
14936 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014937 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14938 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014939 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14940 msm_routing_get_port_mixer,
14941 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014942 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14943 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014944 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14945 msm_routing_get_port_mixer,
14946 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014947 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14948 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014949 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14950 msm_routing_get_port_mixer,
14951 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014952 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14953 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014954 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14955 msm_routing_get_port_mixer,
14956 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014957 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14958 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014959 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14960 msm_routing_get_port_mixer,
14961 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014962 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14963 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014964 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14965 msm_routing_get_port_mixer,
14966 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014967 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14968 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014969 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14970 msm_routing_get_port_mixer,
14971 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014972 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14973 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014974 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14975 msm_routing_get_port_mixer,
14976 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014977 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14978 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014979 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14980 msm_routing_get_port_mixer,
14981 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014982 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14983 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014984 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14985 msm_routing_get_port_mixer,
14986 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014987 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14988 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014989 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14990 msm_routing_get_port_mixer,
14991 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014992 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14993 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014994 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14995 msm_routing_get_port_mixer,
14996 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014997 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14998 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014999 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15000 msm_routing_get_port_mixer,
15001 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015002 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15003 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015004 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15005 msm_routing_get_port_mixer,
15006 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015007 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15008 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015009 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15010 msm_routing_get_port_mixer,
15011 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015012 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15013 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015014 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15015 msm_routing_get_port_mixer,
15016 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015017 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15018 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015019 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15020 msm_routing_get_port_mixer,
15021 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015022 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15023 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015024 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15025 msm_routing_get_port_mixer,
15026 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015027};
15028
15029static const struct snd_kcontrol_new sec_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015030 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15031 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015032 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15033 msm_routing_get_port_mixer,
15034 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015035 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15036 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015037 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15038 msm_routing_get_port_mixer,
15039 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015040 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15041 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015042 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15043 msm_routing_get_port_mixer,
15044 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015045 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15046 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015047 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15048 msm_routing_get_port_mixer,
15049 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015050 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15051 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015052 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15053 msm_routing_get_port_mixer,
15054 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015055 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15056 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015057 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15058 msm_routing_get_port_mixer,
15059 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015060 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15061 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015062 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15063 msm_routing_get_port_mixer,
15064 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015065 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15066 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015067 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15068 msm_routing_get_port_mixer,
15069 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015070 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
15071 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015072 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
15073 msm_routing_get_port_mixer,
15074 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015075 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
15076 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015077 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
15078 msm_routing_get_port_mixer,
15079 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015080 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
15081 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015082 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
15083 msm_routing_get_port_mixer,
15084 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015085 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
15086 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015087 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
15088 msm_routing_get_port_mixer,
15089 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015090 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15091 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015092 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15093 msm_routing_get_port_mixer,
15094 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015095 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15096 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015097 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15098 msm_routing_get_port_mixer,
15099 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015100 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15101 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015102 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15103 msm_routing_get_port_mixer,
15104 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015105 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15106 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015107 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15108 msm_routing_get_port_mixer,
15109 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015110 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15111 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015112 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15113 msm_routing_get_port_mixer,
15114 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015115 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15116 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015117 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15118 msm_routing_get_port_mixer,
15119 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015120 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15121 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015122 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15123 msm_routing_get_port_mixer,
15124 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015125 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15126 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015127 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15128 msm_routing_get_port_mixer,
15129 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015130};
15131
15132static const struct snd_kcontrol_new sec_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015133 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15134 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015135 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15136 msm_routing_get_port_mixer,
15137 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015138 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15139 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015140 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15141 msm_routing_get_port_mixer,
15142 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015143 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15144 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015145 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15146 msm_routing_get_port_mixer,
15147 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015148 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15149 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015150 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15151 msm_routing_get_port_mixer,
15152 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015153 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15154 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015155 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15156 msm_routing_get_port_mixer,
15157 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015158 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15159 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015160 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15161 msm_routing_get_port_mixer,
15162 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015163 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15164 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015165 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15166 msm_routing_get_port_mixer,
15167 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015168 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15169 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015170 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15171 msm_routing_get_port_mixer,
15172 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015173 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
15174 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015175 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
15176 msm_routing_get_port_mixer,
15177 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015178 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
15179 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015180 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
15181 msm_routing_get_port_mixer,
15182 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015183 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
15184 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015185 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
15186 msm_routing_get_port_mixer,
15187 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015188 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
15189 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015190 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
15191 msm_routing_get_port_mixer,
15192 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015193 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15194 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015195 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15196 msm_routing_get_port_mixer,
15197 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015198 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15199 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015200 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15201 msm_routing_get_port_mixer,
15202 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015203 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15204 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015205 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15206 msm_routing_get_port_mixer,
15207 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015208 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15209 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015210 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15211 msm_routing_get_port_mixer,
15212 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015213 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15214 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015215 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15216 msm_routing_get_port_mixer,
15217 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015218 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15219 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015220 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15221 msm_routing_get_port_mixer,
15222 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015223 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15224 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015225 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15226 msm_routing_get_port_mixer,
15227 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015228 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15229 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015230 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15231 msm_routing_get_port_mixer,
15232 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015233};
15234
15235static const struct snd_kcontrol_new sec_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015236 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15237 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015238 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15239 msm_routing_get_port_mixer,
15240 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015241 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15242 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015243 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15244 msm_routing_get_port_mixer,
15245 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015246 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15247 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015248 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15249 msm_routing_get_port_mixer,
15250 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015251 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15252 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015253 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15254 msm_routing_get_port_mixer,
15255 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015256 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15257 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015258 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15259 msm_routing_get_port_mixer,
15260 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015261 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15262 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015263 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15264 msm_routing_get_port_mixer,
15265 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015266 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15267 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015268 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15269 msm_routing_get_port_mixer,
15270 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015271 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15272 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015273 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15274 msm_routing_get_port_mixer,
15275 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015276 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
15277 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015278 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
15279 msm_routing_get_port_mixer,
15280 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015281 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
15282 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015283 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
15284 msm_routing_get_port_mixer,
15285 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015286 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
15287 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015288 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
15289 msm_routing_get_port_mixer,
15290 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015291 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
15292 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015293 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
15294 msm_routing_get_port_mixer,
15295 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015296 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15297 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015298 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15299 msm_routing_get_port_mixer,
15300 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015301 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15302 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015303 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15304 msm_routing_get_port_mixer,
15305 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015306 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15307 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015308 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15309 msm_routing_get_port_mixer,
15310 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015311 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15312 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015313 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15314 msm_routing_get_port_mixer,
15315 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015316 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15317 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015318 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15319 msm_routing_get_port_mixer,
15320 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015321 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15322 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015323 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15324 msm_routing_get_port_mixer,
15325 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015326 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15327 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015328 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15329 msm_routing_get_port_mixer,
15330 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015331 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15332 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015333 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15334 msm_routing_get_port_mixer,
15335 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015336};
15337
15338static const struct snd_kcontrol_new sec_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015339 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15340 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015341 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15342 msm_routing_get_port_mixer,
15343 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015344 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15345 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015346 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15347 msm_routing_get_port_mixer,
15348 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015349 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15350 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015351 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15352 msm_routing_get_port_mixer,
15353 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015354 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15355 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015356 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15357 msm_routing_get_port_mixer,
15358 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015359 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15360 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015361 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15362 msm_routing_get_port_mixer,
15363 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015364 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15365 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015366 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15367 msm_routing_get_port_mixer,
15368 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015369 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15370 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015371 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15372 msm_routing_get_port_mixer,
15373 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015374 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15375 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015376 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15377 msm_routing_get_port_mixer,
15378 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015379 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
15380 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015381 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
15382 msm_routing_get_port_mixer,
15383 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015384 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
15385 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015386 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
15387 msm_routing_get_port_mixer,
15388 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015389 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
15390 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015391 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
15392 msm_routing_get_port_mixer,
15393 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015394 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
15395 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015396 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
15397 msm_routing_get_port_mixer,
15398 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015399 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15400 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015401 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15402 msm_routing_get_port_mixer,
15403 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015404 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15405 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015406 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15407 msm_routing_get_port_mixer,
15408 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015409 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15410 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015411 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15412 msm_routing_get_port_mixer,
15413 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015414 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15415 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015416 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15417 msm_routing_get_port_mixer,
15418 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015419 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15420 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015421 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15422 msm_routing_get_port_mixer,
15423 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015424 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15425 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015426 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15427 msm_routing_get_port_mixer,
15428 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015429 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15430 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015431 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15432 msm_routing_get_port_mixer,
15433 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015434 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15435 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015436 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15437 msm_routing_get_port_mixer,
15438 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015439};
15440
Derek Chenfdcc0982018-10-02 15:14:03 -070015441static const struct snd_kcontrol_new sec_tdm_rx_7_port_mixer_controls[] = {
15442 SOC_DOUBLE_EXT("TERT_TDM_TX_7", SND_SOC_NOPM,
15443 MSM_BACKEND_DAI_SEC_TDM_RX_7,
15444 MSM_BACKEND_DAI_TERT_TDM_TX_7, 1, 0,
15445 msm_routing_get_port_mixer,
15446 msm_routing_put_port_mixer),
15447};
15448
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015449static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015450 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15451 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015452 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15453 msm_routing_get_port_mixer,
15454 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015455 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15456 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015457 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15458 msm_routing_get_port_mixer,
15459 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015460 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15461 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015462 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15463 msm_routing_get_port_mixer,
15464 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015465 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15466 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015467 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15468 msm_routing_get_port_mixer,
15469 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015470 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15471 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015472 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15473 msm_routing_get_port_mixer,
15474 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015475 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15476 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015477 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15478 msm_routing_get_port_mixer,
15479 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015480 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15481 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015482 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15483 msm_routing_get_port_mixer,
15484 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015485 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15486 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015487 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15488 msm_routing_get_port_mixer,
15489 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015490 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15491 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015492 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15493 msm_routing_get_port_mixer,
15494 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015495 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15496 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015497 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15498 msm_routing_get_port_mixer,
15499 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015500 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15501 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015502 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15503 msm_routing_get_port_mixer,
15504 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015505 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15506 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015507 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15508 msm_routing_get_port_mixer,
15509 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015510 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15511 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015512 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15513 msm_routing_get_port_mixer,
15514 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015515 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15516 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015517 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15518 msm_routing_get_port_mixer,
15519 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015520 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15521 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015522 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15523 msm_routing_get_port_mixer,
15524 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015525 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15526 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015527 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15528 msm_routing_get_port_mixer,
15529 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015530 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15531 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015532 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15533 msm_routing_get_port_mixer,
15534 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015535 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15536 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015537 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15538 msm_routing_get_port_mixer,
15539 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015540 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15541 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015542 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15543 msm_routing_get_port_mixer,
15544 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015545 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15546 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015547 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15548 msm_routing_get_port_mixer,
15549 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015550};
15551
15552static const struct snd_kcontrol_new tert_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015553 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15554 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015555 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15556 msm_routing_get_port_mixer,
15557 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015558 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15559 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015560 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15561 msm_routing_get_port_mixer,
15562 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015563 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15564 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015565 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15566 msm_routing_get_port_mixer,
15567 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015568 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15569 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015570 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15571 msm_routing_get_port_mixer,
15572 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015573 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15574 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015575 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15576 msm_routing_get_port_mixer,
15577 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015578 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15579 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015580 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15581 msm_routing_get_port_mixer,
15582 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015583 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15584 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015585 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15586 msm_routing_get_port_mixer,
15587 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015588 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15589 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015590 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15591 msm_routing_get_port_mixer,
15592 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015593 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15594 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015595 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15596 msm_routing_get_port_mixer,
15597 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015598 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15599 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015600 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15601 msm_routing_get_port_mixer,
15602 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015603 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15604 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015605 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15606 msm_routing_get_port_mixer,
15607 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015608 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15609 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015610 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15611 msm_routing_get_port_mixer,
15612 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015613 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15614 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015615 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15616 msm_routing_get_port_mixer,
15617 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015618 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15619 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015620 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15621 msm_routing_get_port_mixer,
15622 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015623 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15624 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015625 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15626 msm_routing_get_port_mixer,
15627 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015628 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15629 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015630 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15631 msm_routing_get_port_mixer,
15632 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015633 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15634 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015635 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15636 msm_routing_get_port_mixer,
15637 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015638 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15639 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015640 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15641 msm_routing_get_port_mixer,
15642 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015643 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15644 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015645 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15646 msm_routing_get_port_mixer,
15647 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015648 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15649 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015650 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15651 msm_routing_get_port_mixer,
15652 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015653};
15654
15655static const struct snd_kcontrol_new tert_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015656 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15657 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015658 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15659 msm_routing_get_port_mixer,
15660 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015661 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15662 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015663 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15664 msm_routing_get_port_mixer,
15665 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015666 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15667 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015668 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15669 msm_routing_get_port_mixer,
15670 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015671 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15672 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015673 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15674 msm_routing_get_port_mixer,
15675 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015676 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15677 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015678 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15679 msm_routing_get_port_mixer,
15680 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015681 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15682 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015683 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15684 msm_routing_get_port_mixer,
15685 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015686 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15687 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015688 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15689 msm_routing_get_port_mixer,
15690 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015691 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15692 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015693 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15694 msm_routing_get_port_mixer,
15695 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015696 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15697 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015698 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15699 msm_routing_get_port_mixer,
15700 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015701 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15702 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015703 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15704 msm_routing_get_port_mixer,
15705 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015706 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15707 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015708 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15709 msm_routing_get_port_mixer,
15710 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015711 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15712 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015713 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15714 msm_routing_get_port_mixer,
15715 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015716 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15717 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015718 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15719 msm_routing_get_port_mixer,
15720 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015721 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15722 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015723 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15724 msm_routing_get_port_mixer,
15725 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015726 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15727 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015728 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15729 msm_routing_get_port_mixer,
15730 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015731 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15732 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015733 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15734 msm_routing_get_port_mixer,
15735 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015736 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15737 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015738 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15739 msm_routing_get_port_mixer,
15740 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015741 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15742 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015743 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15744 msm_routing_get_port_mixer,
15745 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015746 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15747 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015748 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15749 msm_routing_get_port_mixer,
15750 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015751 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15752 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015753 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15754 msm_routing_get_port_mixer,
15755 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015756};
15757
15758static const struct snd_kcontrol_new tert_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015759 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15760 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015761 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15762 msm_routing_get_port_mixer,
15763 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015764 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15765 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015766 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15767 msm_routing_get_port_mixer,
15768 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015769 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15770 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015771 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15772 msm_routing_get_port_mixer,
15773 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015774 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15775 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015776 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15777 msm_routing_get_port_mixer,
15778 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015779 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15780 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015781 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15782 msm_routing_get_port_mixer,
15783 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015784 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15785 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015786 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15787 msm_routing_get_port_mixer,
15788 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015789 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15790 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015791 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15792 msm_routing_get_port_mixer,
15793 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015794 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15795 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015796 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15797 msm_routing_get_port_mixer,
15798 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015799 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15800 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015801 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15802 msm_routing_get_port_mixer,
15803 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015804 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15805 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015806 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15807 msm_routing_get_port_mixer,
15808 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015809 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15810 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015811 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15812 msm_routing_get_port_mixer,
15813 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015814 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15815 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015816 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15817 msm_routing_get_port_mixer,
15818 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015819 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15820 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015821 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15822 msm_routing_get_port_mixer,
15823 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015824 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15825 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015826 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15827 msm_routing_get_port_mixer,
15828 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015829 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15830 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015831 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15832 msm_routing_get_port_mixer,
15833 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015834 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15835 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015836 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15837 msm_routing_get_port_mixer,
15838 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015839 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15840 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015841 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15842 msm_routing_get_port_mixer,
15843 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015844 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15845 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015846 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15847 msm_routing_get_port_mixer,
15848 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015849 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15850 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015851 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15852 msm_routing_get_port_mixer,
15853 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015854 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15855 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015856 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15857 msm_routing_get_port_mixer,
15858 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015859};
15860
15861static const struct snd_kcontrol_new quat_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015862 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15863 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015864 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15865 msm_routing_get_port_mixer,
15866 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015867 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15868 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015869 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15870 msm_routing_get_port_mixer,
15871 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015872 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15873 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015874 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15875 msm_routing_get_port_mixer,
15876 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015877 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15878 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015879 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15880 msm_routing_get_port_mixer,
15881 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015882 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15883 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015884 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15885 msm_routing_get_port_mixer,
15886 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015887 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15888 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015889 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15890 msm_routing_get_port_mixer,
15891 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015892 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15893 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015894 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15895 msm_routing_get_port_mixer,
15896 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015897 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15898 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015899 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15900 msm_routing_get_port_mixer,
15901 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015902 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15903 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015904 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15905 msm_routing_get_port_mixer,
15906 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015907 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15908 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015909 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15910 msm_routing_get_port_mixer,
15911 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015912 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15913 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015914 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15915 msm_routing_get_port_mixer,
15916 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015917 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15918 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015919 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15920 msm_routing_get_port_mixer,
15921 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015922 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15923 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015924 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15925 msm_routing_get_port_mixer,
15926 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015927 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15928 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015929 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15930 msm_routing_get_port_mixer,
15931 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015932 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15933 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015934 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15935 msm_routing_get_port_mixer,
15936 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015937 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15938 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015939 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15940 msm_routing_get_port_mixer,
15941 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015942 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15943 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015944 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15945 msm_routing_get_port_mixer,
15946 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015947 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15948 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015949 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15950 msm_routing_get_port_mixer,
15951 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015952 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15953 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015954 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15955 msm_routing_get_port_mixer,
15956 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015957 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15958 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015959 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15960 msm_routing_get_port_mixer,
15961 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015962};
15963
15964static const struct snd_kcontrol_new quat_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015965 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15966 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015967 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15968 msm_routing_get_port_mixer,
15969 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015970 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15971 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015972 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15973 msm_routing_get_port_mixer,
15974 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015975 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15976 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015977 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15978 msm_routing_get_port_mixer,
15979 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015980 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15981 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015982 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15983 msm_routing_get_port_mixer,
15984 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015985 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15986 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015987 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15988 msm_routing_get_port_mixer,
15989 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015990 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15991 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015992 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15993 msm_routing_get_port_mixer,
15994 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015995 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15996 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015997 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15998 msm_routing_get_port_mixer,
15999 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016000 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16001 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016002 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16003 msm_routing_get_port_mixer,
16004 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016005 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16006 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016007 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16008 msm_routing_get_port_mixer,
16009 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016010 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16011 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016012 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16013 msm_routing_get_port_mixer,
16014 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016015 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16016 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016017 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16018 msm_routing_get_port_mixer,
16019 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016020 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16021 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016022 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16023 msm_routing_get_port_mixer,
16024 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016025 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16026 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016027 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16028 msm_routing_get_port_mixer,
16029 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016030 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16031 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016032 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16033 msm_routing_get_port_mixer,
16034 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016035 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16036 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016037 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16038 msm_routing_get_port_mixer,
16039 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016040 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16041 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016042 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16043 msm_routing_get_port_mixer,
16044 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016045 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16046 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016047 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16048 msm_routing_get_port_mixer,
16049 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016050 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16051 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016052 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16053 msm_routing_get_port_mixer,
16054 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016055 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16056 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016057 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16058 msm_routing_get_port_mixer,
16059 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016060 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16061 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016062 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16063 msm_routing_get_port_mixer,
16064 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016065};
16066
16067static const struct snd_kcontrol_new quat_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016068 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16069 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016070 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16071 msm_routing_get_port_mixer,
16072 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016073 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16074 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016075 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16076 msm_routing_get_port_mixer,
16077 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016078 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16079 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016080 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16081 msm_routing_get_port_mixer,
16082 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016083 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16084 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016085 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16086 msm_routing_get_port_mixer,
16087 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016088 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16089 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016090 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16091 msm_routing_get_port_mixer,
16092 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016093 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16094 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016095 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16096 msm_routing_get_port_mixer,
16097 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016098 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16099 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016100 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16101 msm_routing_get_port_mixer,
16102 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016103 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16104 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016105 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16106 msm_routing_get_port_mixer,
16107 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016108 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16109 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016110 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16111 msm_routing_get_port_mixer,
16112 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016113 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16114 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016115 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16116 msm_routing_get_port_mixer,
16117 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016118 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16119 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016120 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16121 msm_routing_get_port_mixer,
16122 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016123 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16124 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016125 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16126 msm_routing_get_port_mixer,
16127 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016128 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16129 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016130 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16131 msm_routing_get_port_mixer,
16132 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016133 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16134 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016135 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16136 msm_routing_get_port_mixer,
16137 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016138 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16139 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016140 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16141 msm_routing_get_port_mixer,
16142 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016143 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16144 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016145 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16146 msm_routing_get_port_mixer,
16147 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016148 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16149 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016150 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16151 msm_routing_get_port_mixer,
16152 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016153 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16154 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016155 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16156 msm_routing_get_port_mixer,
16157 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016158 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16159 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016160 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16161 msm_routing_get_port_mixer,
16162 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016163 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16164 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016165 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16166 msm_routing_get_port_mixer,
16167 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016168};
16169
16170static const struct snd_kcontrol_new quat_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016171 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16172 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016173 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16174 msm_routing_get_port_mixer,
16175 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016176 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16177 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016178 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16179 msm_routing_get_port_mixer,
16180 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016181 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16182 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016183 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16184 msm_routing_get_port_mixer,
16185 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016186 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16187 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016188 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16189 msm_routing_get_port_mixer,
16190 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016191 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16192 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016193 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16194 msm_routing_get_port_mixer,
16195 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016196 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16197 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016198 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16199 msm_routing_get_port_mixer,
16200 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016201 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16202 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016203 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16204 msm_routing_get_port_mixer,
16205 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016206 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16207 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016208 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16209 msm_routing_get_port_mixer,
16210 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016211 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16212 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016213 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16214 msm_routing_get_port_mixer,
16215 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016216 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16217 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016218 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16219 msm_routing_get_port_mixer,
16220 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016221 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16222 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016223 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16224 msm_routing_get_port_mixer,
16225 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016226 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16227 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016228 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16229 msm_routing_get_port_mixer,
16230 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016231 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16232 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016233 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16234 msm_routing_get_port_mixer,
16235 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016236 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16237 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016238 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16239 msm_routing_get_port_mixer,
16240 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016241 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16242 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016243 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16244 msm_routing_get_port_mixer,
16245 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016246 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16247 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016248 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16249 msm_routing_get_port_mixer,
16250 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016251 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16252 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016253 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16254 msm_routing_get_port_mixer,
16255 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016256 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16257 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016258 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16259 msm_routing_get_port_mixer,
16260 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016261 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16262 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016263 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16264 msm_routing_get_port_mixer,
16265 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016266 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16267 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016268 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16269 msm_routing_get_port_mixer,
16270 msm_routing_put_port_mixer),
16271};
16272
16273static const struct snd_kcontrol_new quin_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016274 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16275 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016276 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16277 msm_routing_get_port_mixer,
16278 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016279 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16280 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016281 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16282 msm_routing_get_port_mixer,
16283 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016284 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16285 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016286 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16287 msm_routing_get_port_mixer,
16288 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016289 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16290 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016291 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16292 msm_routing_get_port_mixer,
16293 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016294 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16295 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016296 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16297 msm_routing_get_port_mixer,
16298 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016299 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16300 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016301 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16302 msm_routing_get_port_mixer,
16303 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016304 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16305 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016306 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16307 msm_routing_get_port_mixer,
16308 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016309 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16310 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016311 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16312 msm_routing_get_port_mixer,
16313 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016314 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16315 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016316 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16317 msm_routing_get_port_mixer,
16318 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016319 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16320 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016321 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16322 msm_routing_get_port_mixer,
16323 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016324 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16325 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016326 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16327 msm_routing_get_port_mixer,
16328 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016329 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16330 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016331 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16332 msm_routing_get_port_mixer,
16333 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016334 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16335 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016336 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16337 msm_routing_get_port_mixer,
16338 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016339 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16340 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016341 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16342 msm_routing_get_port_mixer,
16343 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016344 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16345 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016346 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16347 msm_routing_get_port_mixer,
16348 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016349 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16350 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016351 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16352 msm_routing_get_port_mixer,
16353 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016354 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16355 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016356 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16357 msm_routing_get_port_mixer,
16358 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016359 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16360 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016361 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16362 msm_routing_get_port_mixer,
16363 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016364 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16365 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016366 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16367 msm_routing_get_port_mixer,
16368 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016369 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16370 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016371 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16372 msm_routing_get_port_mixer,
16373 msm_routing_put_port_mixer),
16374};
16375
16376static const struct snd_kcontrol_new quin_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016377 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16378 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016379 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16380 msm_routing_get_port_mixer,
16381 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016382 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16383 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016384 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16385 msm_routing_get_port_mixer,
16386 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016387 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16388 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016389 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16390 msm_routing_get_port_mixer,
16391 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016392 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16393 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016394 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16395 msm_routing_get_port_mixer,
16396 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016397 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16398 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016399 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16400 msm_routing_get_port_mixer,
16401 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016402 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16403 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016404 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16405 msm_routing_get_port_mixer,
16406 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016407 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16408 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016409 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16410 msm_routing_get_port_mixer,
16411 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016412 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16413 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016414 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16415 msm_routing_get_port_mixer,
16416 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016417 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16418 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016419 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16420 msm_routing_get_port_mixer,
16421 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016422 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16423 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016424 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16425 msm_routing_get_port_mixer,
16426 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016427 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16428 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016429 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16430 msm_routing_get_port_mixer,
16431 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016432 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16433 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016434 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16435 msm_routing_get_port_mixer,
16436 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016437 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16438 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016439 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16440 msm_routing_get_port_mixer,
16441 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016442 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16443 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016444 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16445 msm_routing_get_port_mixer,
16446 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016447 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16448 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016449 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16450 msm_routing_get_port_mixer,
16451 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016452 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16453 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016454 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16455 msm_routing_get_port_mixer,
16456 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016457 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16458 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016459 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16460 msm_routing_get_port_mixer,
16461 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016462 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16463 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016464 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16465 msm_routing_get_port_mixer,
16466 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016467 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16468 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016469 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16470 msm_routing_get_port_mixer,
16471 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016472 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16473 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016474 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16475 msm_routing_get_port_mixer,
16476 msm_routing_put_port_mixer),
16477};
16478
16479static const struct snd_kcontrol_new quin_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016480 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16481 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016482 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16483 msm_routing_get_port_mixer,
16484 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016485 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16486 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016487 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16488 msm_routing_get_port_mixer,
16489 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016490 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16491 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016492 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16493 msm_routing_get_port_mixer,
16494 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016495 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16496 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016497 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16498 msm_routing_get_port_mixer,
16499 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016500 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16501 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016502 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16503 msm_routing_get_port_mixer,
16504 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016505 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16506 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016507 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16508 msm_routing_get_port_mixer,
16509 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016510 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16511 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016512 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16513 msm_routing_get_port_mixer,
16514 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016515 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16516 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016517 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16518 msm_routing_get_port_mixer,
16519 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016520 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16521 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016522 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16523 msm_routing_get_port_mixer,
16524 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016525 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16526 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016527 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16528 msm_routing_get_port_mixer,
16529 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016530 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16531 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016532 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16533 msm_routing_get_port_mixer,
16534 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016535 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16536 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016537 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16538 msm_routing_get_port_mixer,
16539 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016540 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16541 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016542 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16543 msm_routing_get_port_mixer,
16544 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016545 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16546 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016547 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16548 msm_routing_get_port_mixer,
16549 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016550 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16551 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016552 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16553 msm_routing_get_port_mixer,
16554 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016555 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16556 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016557 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16558 msm_routing_get_port_mixer,
16559 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016560 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16561 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016562 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16563 msm_routing_get_port_mixer,
16564 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016565 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16566 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016567 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16568 msm_routing_get_port_mixer,
16569 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016570 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16571 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016572 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16573 msm_routing_get_port_mixer,
16574 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016575 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16576 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016577 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16578 msm_routing_get_port_mixer,
16579 msm_routing_put_port_mixer),
16580};
16581
16582static const struct snd_kcontrol_new quin_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016583 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16584 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016585 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16586 msm_routing_get_port_mixer,
16587 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016588 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16589 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016590 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16591 msm_routing_get_port_mixer,
16592 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016593 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16594 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016595 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16596 msm_routing_get_port_mixer,
16597 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016598 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16599 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016600 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16601 msm_routing_get_port_mixer,
16602 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016603 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16604 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016605 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16606 msm_routing_get_port_mixer,
16607 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016608 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16609 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016610 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16611 msm_routing_get_port_mixer,
16612 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016613 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16614 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016615 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16616 msm_routing_get_port_mixer,
16617 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016618 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16619 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016620 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16621 msm_routing_get_port_mixer,
16622 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016623 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16624 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016625 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16626 msm_routing_get_port_mixer,
16627 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016628 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16629 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016630 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16631 msm_routing_get_port_mixer,
16632 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016633 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16634 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016635 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16636 msm_routing_get_port_mixer,
16637 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016638 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16639 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016640 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16641 msm_routing_get_port_mixer,
16642 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016643 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16644 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016645 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16646 msm_routing_get_port_mixer,
16647 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016648 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16649 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016650 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16651 msm_routing_get_port_mixer,
16652 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016653 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16654 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016655 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16656 msm_routing_get_port_mixer,
16657 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016658 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16659 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016660 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16661 msm_routing_get_port_mixer,
16662 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016663 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16664 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016665 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16666 msm_routing_get_port_mixer,
16667 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016668 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16669 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016670 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16671 msm_routing_get_port_mixer,
16672 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016673 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16674 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016675 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16676 msm_routing_get_port_mixer,
16677 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016678 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16679 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016680 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16681 msm_routing_get_port_mixer,
16682 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016683};
16684
16685static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016686 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16687 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016688 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16689 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016690 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16691 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016692 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16693 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016694 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16695 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016696 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16697 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016698 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16699 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016700 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16701 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016702 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16703 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016704 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16705 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016706 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16707 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016708 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16709 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016710 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16711 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016712 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16713 msm_routing_put_port_mixer),
16714};
16715
16716static const struct snd_kcontrol_new sec_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016717 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16718 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016719 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16720 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016721 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16722 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016723 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16724 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016725 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16726 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016727 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16728 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016729 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16730 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016731 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16732 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016733 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16734 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016735 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16736 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016737 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16738 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016739 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16740 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016741 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16742 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016743 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
16744 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016745 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16746 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016747 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16748 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016749 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16750 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080016751 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16752 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016753};
16754
16755static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016756 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16757 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016758 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16759 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016760 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16761 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016762 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16763 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016764 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16765 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016766 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16767 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016768 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16769 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016770 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16771 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016772 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16773 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016774 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16775 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016776 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16777 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016778 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16779 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016780 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16781 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016782 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16783 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016784 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16785 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016786 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16787 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016788 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16789 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16790 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16791 msm_routing_put_listen_mixer),
16792 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16793 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16794 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16795 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016796 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16797 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
16798 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16799 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016800 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16801 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16802 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16803 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016804 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16805 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16806 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16807 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016808};
16809
16810static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016811 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16812 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016813 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16814 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016815 SOC_DOUBLE_EXT("SLIMBUS_1_TX",
16816 SND_SOC_NOPM,
16817 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016818 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16819 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016820 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16821 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016822 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16823 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016824 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16825 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016826 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16827 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016828 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16829 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016830 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16831 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016832 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16833 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016834 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16835 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016836 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16837 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016838 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16839 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016840 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16841 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016842 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16843 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016844 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16845 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16846 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16847 msm_routing_put_listen_mixer),
16848 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16849 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16850 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16851 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016852 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16853 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
16854 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16855 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016856 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16857 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16858 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16859 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016860 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16861 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16862 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16863 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016864};
16865
16866static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016867 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16868 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016869 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16870 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016871 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16872 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016873 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16874 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016875 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16876 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016877 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16878 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016879 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16880 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016881 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16882 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016883 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16884 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016885 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16886 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016887 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16888 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016889 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16890 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016891 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16892 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016893 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16894 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016895 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16896 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016897 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16898 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016899 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16900 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16901 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16902 msm_routing_put_listen_mixer),
16903 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16904 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16905 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16906 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016907 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16908 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
16909 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16910 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016911 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16912 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16913 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16914 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016915 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16916 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16917 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16918 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016919};
16920
16921static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016922 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16923 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016924 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16925 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016926 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16927 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016928 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16929 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016930 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16931 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016932 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16933 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016934 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16935 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016936 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16937 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016938 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16939 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016940 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16941 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016942 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16943 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016944 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16945 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016946 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16947 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016948 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16949 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016950 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16951 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016952 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16953 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016954 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16955 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16956 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16957 msm_routing_put_listen_mixer),
16958 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16959 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16960 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16961 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016962 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16963 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
16964 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16965 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016966 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16967 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16968 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16969 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016970 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16971 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16972 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16973 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016974};
16975
16976static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016977 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16978 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016979 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16980 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016981 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16982 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016983 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16984 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016985 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16986 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016987 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16988 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016989 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16990 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016991 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16992 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016993 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16994 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016995 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16996 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016997 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16998 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016999 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17000 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017001 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17002 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017003 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17004 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017005 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17006 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017007 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17008 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053017009 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17010 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
17011 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17012 msm_routing_put_listen_mixer),
17013 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17014 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
17015 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17016 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017017 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17018 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
17019 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17020 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017021 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17022 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
17023 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17024 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017025 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17026 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
17027 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17028 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017029};
17030
17031static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017032 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
17033 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017034 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17035 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017036 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
17037 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017038 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17039 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017040 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
17041 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017042 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17043 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017044 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
17045 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017046 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17047 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017048 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
17049 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017050 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17051 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017052 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17053 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017054 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17055 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017056 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17057 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017058 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17059 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017060 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17061 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017062 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17063 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053017064 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17065 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
17066 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17067 msm_routing_put_listen_mixer),
17068 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17069 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
17070 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17071 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017072 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17073 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
17074 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17075 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017076 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17077 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
17078 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17079 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017080 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17081 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
17082 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17083 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017084};
17085
17086static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017087 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
17088 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017089 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17090 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017091 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
17092 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017093 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17094 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017095 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
17096 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017097 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17098 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017099 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
17100 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017101 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17102 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017103 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
17104 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017105 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17106 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017107 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17108 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017109 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17110 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017111 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17112 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017113 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17114 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017115 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17116 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017117 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17118 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053017119 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17120 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
17121 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17122 msm_routing_put_listen_mixer),
17123 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17124 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
17125 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17126 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017127 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17128 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
17129 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17130 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017131 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17132 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
17133 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17134 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017135 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17136 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
17137 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17138 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017139};
17140
17141static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017142 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
17143 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017144 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17145 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017146 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
17147 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017148 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17149 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017150 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
17151 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017152 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17153 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017154 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
17155 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017156 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17157 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017158 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
17159 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017160 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17161 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017162 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17163 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017164 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17165 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017166 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17167 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017168 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17169 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017170 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17171 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017172 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17173 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053017174 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17175 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
17176 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17177 msm_routing_put_listen_mixer),
17178 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17179 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
17180 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17181 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017182 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17183 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
17184 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17185 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017186 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17187 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
17188 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17189 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017190 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17191 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
17192 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17193 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017194};
17195
17196static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
17197 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17198 0, 1, 0, msm_routing_get_switch_mixer,
17199 msm_routing_put_switch_mixer);
17200
17201static const struct snd_kcontrol_new slim1_fm_switch_mixer_controls =
17202 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17203 0, 1, 0, msm_routing_get_switch_mixer,
17204 msm_routing_put_switch_mixer);
17205
17206static const struct snd_kcontrol_new slim3_fm_switch_mixer_controls =
17207 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17208 0, 1, 0, msm_routing_get_switch_mixer,
17209 msm_routing_put_switch_mixer);
17210
17211static const struct snd_kcontrol_new slim4_fm_switch_mixer_controls =
17212 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17213 0, 1, 0, msm_routing_get_switch_mixer,
17214 msm_routing_put_switch_mixer);
17215
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053017216static const struct snd_kcontrol_new cdc_dma_wsa_switch_mixer_controls =
17217 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17218 0, 1, 0, msm_routing_get_switch_mixer,
17219 msm_routing_put_switch_mixer);
17220
17221static const struct snd_kcontrol_new cdc_dma_rx_switch_mixer_controls =
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053017222 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17223 0, 1, 0, msm_routing_get_switch_mixer,
17224 msm_routing_put_switch_mixer);
17225
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017226static const struct snd_kcontrol_new slim6_fm_switch_mixer_controls =
17227 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17228 0, 1, 0, msm_routing_get_switch_mixer,
17229 msm_routing_put_switch_mixer);
17230
17231static const struct snd_kcontrol_new pcm_rx_switch_mixer_controls =
17232 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17233 0, 1, 0, msm_routing_get_fm_pcmrx_switch_mixer,
17234 msm_routing_put_fm_pcmrx_switch_mixer);
17235
17236static const struct snd_kcontrol_new int0_mi2s_rx_switch_mixer_controls =
17237 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17238 0, 1, 0, msm_routing_get_int0_mi2s_switch_mixer,
17239 msm_routing_put_int0_mi2s_switch_mixer);
17240
17241static const struct snd_kcontrol_new int4_mi2s_rx_switch_mixer_controls =
17242 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17243 0, 1, 0, msm_routing_get_int4_mi2s_switch_mixer,
17244 msm_routing_put_int4_mi2s_switch_mixer);
17245
17246static const struct snd_kcontrol_new pri_mi2s_rx_switch_mixer_controls =
17247 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17248 0, 1, 0, msm_routing_get_pri_mi2s_switch_mixer,
17249 msm_routing_put_pri_mi2s_switch_mixer);
17250
17251static const struct snd_kcontrol_new sec_mi2s_rx_switch_mixer_controls =
17252 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17253 0, 1, 0, msm_routing_get_sec_mi2s_switch_mixer,
17254 msm_routing_put_sec_mi2s_switch_mixer);
17255
17256static const struct snd_kcontrol_new tert_mi2s_rx_switch_mixer_controls =
17257 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17258 0, 1, 0, msm_routing_get_tert_mi2s_switch_mixer,
17259 msm_routing_put_tert_mi2s_switch_mixer);
17260
17261static const struct snd_kcontrol_new quat_mi2s_rx_switch_mixer_controls =
17262 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17263 0, 1, 0, msm_routing_get_quat_mi2s_switch_mixer,
17264 msm_routing_put_quat_mi2s_switch_mixer);
17265
Rohit Kumara5077932017-09-10 22:05:05 +053017266static const struct snd_kcontrol_new quin_mi2s_rx_switch_mixer_controls =
17267 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17268 0, 1, 0, msm_routing_get_quin_mi2s_switch_mixer,
17269 msm_routing_put_quin_mi2s_switch_mixer);
17270
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017271static const struct snd_kcontrol_new hfp_pri_aux_switch_mixer_controls =
17272 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17273 0, 1, 0, msm_routing_get_hfp_switch_mixer,
17274 msm_routing_put_hfp_switch_mixer);
17275
17276static const struct snd_kcontrol_new hfp_aux_switch_mixer_controls =
17277 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17278 0, 1, 0, msm_routing_get_hfp_switch_mixer,
17279 msm_routing_put_hfp_switch_mixer);
17280
17281static const struct snd_kcontrol_new hfp_int_switch_mixer_controls =
17282 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17283 0, 1, 0, msm_routing_get_hfp_switch_mixer,
17284 msm_routing_put_hfp_switch_mixer);
17285
17286static const struct snd_kcontrol_new hfp_slim7_switch_mixer_controls =
17287 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17288 0, 1, 0, msm_routing_get_hfp_switch_mixer,
17289 msm_routing_put_hfp_switch_mixer);
17290
17291static const struct snd_kcontrol_new usb_switch_mixer_controls =
17292 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17293 0, 1, 0, msm_routing_get_usb_switch_mixer,
17294 msm_routing_put_usb_switch_mixer);
17295
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080017296static const struct snd_kcontrol_new a2dp_slim7_switch_mixer_controls =
17297 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17298 0, 1, 0, msm_routing_a2dp_switch_mixer_get,
17299 msm_routing_a2dp_switch_mixer_put);
17300
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017301static const struct soc_enum lsm_port_enum =
17302 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_port_text), lsm_port_text);
17303
17304static const char * const lsm_func_text[] = {
17305 "None", "AUDIO", "BEACON", "ULTRASOUND", "SWAUDIO",
17306};
17307static const struct soc_enum lsm_func_enum =
17308 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_func_text), lsm_func_text);
17309
17310static const struct snd_kcontrol_new lsm_controls[] = {
17311 /* kcontrol of lsm_function */
17312 SOC_ENUM_EXT(SLIMBUS_0_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17313 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17314 SOC_ENUM_EXT(SLIMBUS_1_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17315 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17316 SOC_ENUM_EXT(SLIMBUS_2_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17317 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17318 SOC_ENUM_EXT(SLIMBUS_3_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17319 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17320 SOC_ENUM_EXT(SLIMBUS_4_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17321 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17322 SOC_ENUM_EXT(SLIMBUS_5_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17323 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17324 SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17325 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17326 SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17327 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17328 SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17329 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017330 SOC_ENUM_EXT(TX_CDC_DMA_TX_3_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17331 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017332 SOC_ENUM_EXT(QUIN_TDM_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17333 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017334 /* kcontrol of lsm_port */
17335 SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
17336 msm_routing_lsm_port_get,
17337 msm_routing_lsm_port_put),
17338 SOC_ENUM_EXT("LSM2 Port", lsm_port_enum,
17339 msm_routing_lsm_port_get,
17340 msm_routing_lsm_port_put),
17341 SOC_ENUM_EXT("LSM3 Port", lsm_port_enum,
17342 msm_routing_lsm_port_get,
17343 msm_routing_lsm_port_put),
17344 SOC_ENUM_EXT("LSM4 Port", lsm_port_enum,
17345 msm_routing_lsm_port_get,
17346 msm_routing_lsm_port_put),
17347 SOC_ENUM_EXT("LSM5 Port", lsm_port_enum,
17348 msm_routing_lsm_port_get,
17349 msm_routing_lsm_port_put),
17350 SOC_ENUM_EXT("LSM6 Port", lsm_port_enum,
17351 msm_routing_lsm_port_get,
17352 msm_routing_lsm_port_put),
17353 SOC_ENUM_EXT("LSM7 Port", lsm_port_enum,
17354 msm_routing_lsm_port_get,
17355 msm_routing_lsm_port_put),
17356 SOC_ENUM_EXT("LSM8 Port", lsm_port_enum,
17357 msm_routing_lsm_port_get,
17358 msm_routing_lsm_port_put),
17359};
17360
17361static const char * const aanc_slim_0_rx_text[] = {
17362 "ZERO", "SLIMBUS_0_TX", "SLIMBUS_1_TX", "SLIMBUS_2_TX", "SLIMBUS_3_TX",
17363 "SLIMBUS_4_TX", "SLIMBUS_5_TX", "SLIMBUS_6_TX"
17364};
17365
17366static const struct soc_enum aanc_slim_0_rx_enum =
17367 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(aanc_slim_0_rx_text),
17368 aanc_slim_0_rx_text);
17369
17370static const struct snd_kcontrol_new aanc_slim_0_rx_mux[] = {
17371 SOC_ENUM_EXT("AANC_SLIM_0_RX MUX", aanc_slim_0_rx_enum,
17372 msm_routing_slim_0_rx_aanc_mux_get,
17373 msm_routing_slim_0_rx_aanc_mux_put)
17374};
17375
Sudheer Papothic07b37a2018-05-04 05:56:47 +053017376static int msm_routing_aanc_noise_level_get(struct snd_kcontrol *kcontrol,
17377 struct snd_ctl_elem_value *ucontrol)
17378{
17379 ucontrol->value.integer.value[0] = aanc_level;
17380
17381 return 0;
17382}
17383
17384static int msm_routing_aanc_noise_level_put(struct snd_kcontrol *kcontrol,
17385 struct snd_ctl_elem_value *ucontrol)
17386{
17387 int ret = 0;
17388
17389 mutex_lock(&routing_lock);
17390 aanc_level = ucontrol->value.integer.value[0];
17391 pr_debug("%s: value: %ld\n",
17392 __func__, ucontrol->value.integer.value[0]);
17393 ret = afe_set_aanc_noise_level(aanc_level);
17394 mutex_unlock(&routing_lock);
17395
17396 return ret;
17397}
17398
17399static const struct snd_kcontrol_new aanc_noise_level[] = {
17400 SOC_SINGLE_EXT("AANC Noise Level", SND_SOC_NOPM, 0, 255,
17401 0, msm_routing_aanc_noise_level_get, msm_routing_aanc_noise_level_put)
17402};
17403
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017404static int msm_routing_get_stereo_to_custom_stereo_control(
17405 struct snd_kcontrol *kcontrol,
17406 struct snd_ctl_elem_value *ucontrol)
17407{
17408 ucontrol->value.integer.value[0] = is_custom_stereo_on;
17409 return 0;
17410}
17411
17412static int msm_routing_put_stereo_to_custom_stereo_control(
17413 struct snd_kcontrol *kcontrol,
17414 struct snd_ctl_elem_value *ucontrol)
17415{
17416 int flag = 0, i = 0, rc = 0, idx = 0;
17417 int be_index = 0, port_id, topo_id;
17418 unsigned int session_id = 0;
17419 uint16_t op_FL_ip_FL_weight = 0;
17420 uint16_t op_FL_ip_FR_weight = 0;
17421 uint16_t op_FR_ip_FL_weight = 0;
17422 uint16_t op_FR_ip_FR_weight = 0;
17423
17424 flag = ucontrol->value.integer.value[0];
17425 pr_debug("%s E flag %d\n", __func__, flag);
17426
17427 if ((is_custom_stereo_on && flag) || (!is_custom_stereo_on && !flag)) {
17428 pr_err("%s: is_custom_stereo_on %d, flag %d\n",
17429 __func__, is_custom_stereo_on, flag);
17430 return 0;
17431 }
17432 is_custom_stereo_on = flag ? true : false;
17433 pr_debug("%s:is_custom_stereo_on %d\n", __func__, is_custom_stereo_on);
17434 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
17435 port_id = msm_bedais[be_index].port_id;
17436 if (!msm_bedais[be_index].active)
17437 continue;
17438 if ((port_id != SLIMBUS_0_RX) &&
17439 (port_id != RT_PROXY_PORT_001_RX) &&
17440 (port_id != AFE_PORT_ID_PRIMARY_MI2S_RX) &&
17441 (port_id != AFE_PORT_ID_INT4_MI2S_RX))
17442 continue;
17443
17444 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
17445 MSM_FRONTEND_DAI_MM_SIZE) {
17446 if (fe_dai_map[i][SESSION_TYPE_RX].perf_mode !=
17447 LEGACY_PCM_MODE)
17448 goto skip_send_custom_stereo;
17449 session_id =
17450 fe_dai_map[i][SESSION_TYPE_RX].strm_id;
17451 if (is_custom_stereo_on) {
17452 op_FL_ip_FL_weight =
17453 Q14_GAIN_ZERO_POINT_FIVE;
17454 op_FL_ip_FR_weight =
17455 Q14_GAIN_ZERO_POINT_FIVE;
17456 op_FR_ip_FL_weight =
17457 Q14_GAIN_ZERO_POINT_FIVE;
17458 op_FR_ip_FR_weight =
17459 Q14_GAIN_ZERO_POINT_FIVE;
17460 } else {
17461 op_FL_ip_FL_weight = Q14_GAIN_UNITY;
17462 op_FL_ip_FR_weight = 0;
17463 op_FR_ip_FL_weight = 0;
17464 op_FR_ip_FR_weight = Q14_GAIN_UNITY;
17465 }
17466 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
17467 unsigned long copp =
17468 session_copp_map[i]
17469 [SESSION_TYPE_RX][be_index];
17470 if (!test_bit(idx, &copp))
17471 goto skip_send_custom_stereo;
17472 topo_id = adm_get_topology_for_port_copp_idx(
17473 msm_bedais[be_index].port_id, idx);
17474 if (topo_id < 0)
17475 pr_debug("%s:Err:custom stereo topo %d",
17476 __func__, topo_id);
17477 pr_debug("idx %d\n", idx);
17478 if (topo_id == DS2_ADM_COPP_TOPOLOGY_ID)
17479 rc = msm_ds2_dap_set_custom_stereo_onoff
17480 (msm_bedais[be_index].port_id,
17481 idx, is_custom_stereo_on);
17482 else if (topo_id == DOLBY_ADM_COPP_TOPOLOGY_ID)
17483 rc = dolby_dap_set_custom_stereo_onoff(
17484 msm_bedais[be_index].port_id,
17485 idx, is_custom_stereo_on);
17486 else
17487 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd
17488 (msm_bedais[be_index].port_id,
17489 idx, session_id,
17490 op_FL_ip_FL_weight,
17491 op_FL_ip_FR_weight,
17492 op_FR_ip_FL_weight,
17493 op_FR_ip_FR_weight);
17494 if (rc < 0)
17495skip_send_custom_stereo:
17496 pr_err("%s: err setting custom stereo\n",
17497 __func__);
17498 }
17499
17500 }
17501 }
17502 return 0;
17503}
17504
17505static const struct snd_kcontrol_new stereo_to_custom_stereo_controls[] = {
17506 SOC_SINGLE_EXT("Set Custom Stereo OnOff", SND_SOC_NOPM, 0,
17507 1, 0, msm_routing_get_stereo_to_custom_stereo_control,
17508 msm_routing_put_stereo_to_custom_stereo_control),
17509};
17510
17511static int msm_routing_get_app_type_cfg_control(struct snd_kcontrol *kcontrol,
17512 struct snd_ctl_elem_value *ucontrol)
17513{
17514 return 0;
17515}
17516
17517static int msm_routing_put_app_type_cfg_control(struct snd_kcontrol *kcontrol,
17518 struct snd_ctl_elem_value *ucontrol)
17519{
17520 int i = 0, j;
17521 int num_app_types = ucontrol->value.integer.value[i++];
17522
17523 pr_debug("%s\n", __func__);
17524
17525 memset(app_type_cfg, 0, MAX_APP_TYPES*
17526 sizeof(struct msm_pcm_routing_app_type_data));
17527 if (num_app_types > MAX_APP_TYPES) {
17528 pr_err("%s: number of app types exceed the max supported\n",
17529 __func__);
17530 return -EINVAL;
17531 }
17532 for (j = 0; j < num_app_types; j++) {
17533 app_type_cfg[j].app_type =
17534 ucontrol->value.integer.value[i++];
17535 app_type_cfg[j].sample_rate =
17536 ucontrol->value.integer.value[i++];
17537 app_type_cfg[j].bit_width =
17538 ucontrol->value.integer.value[i++];
17539 }
17540
17541 return 0;
17542}
17543
17544static int msm_routing_put_app_type_gain_control(struct snd_kcontrol *kcontrol,
17545 struct snd_ctl_elem_value *ucontrol)
17546{
17547 int j, fe_id, be_id, port_type;
17548 int ret = 0;
17549 unsigned long copp;
17550 struct msm_pcm_routing_bdai_data *bedai;
17551 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
17552 SESSION_TYPE_RX;
17553 int app_type = ucontrol->value.integer.value[1];
17554 int gain = (ucontrol->value.integer.value[2] +
17555 ucontrol->value.integer.value[3])/2;
17556
17557 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
17558 MSM_AFE_PORT_TYPE_TX;
17559
17560 mutex_lock(&routing_lock);
17561 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
17562 if (is_be_dai_extproc(be_id))
17563 continue;
17564
17565 bedai = &msm_bedais[be_id];
17566 if (afe_get_port_type(bedai->port_id) != port_type)
17567 continue;
17568
17569 if (!bedai->active)
17570 continue;
17571
17572 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
17573 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
17574 continue;
17575
17576 if (app_type !=
17577 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
17578 continue;
17579
17580 copp = session_copp_map[fe_id][dir][be_id];
17581 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
17582 if (!test_bit(j, &copp))
17583 continue;
17584 ret |= adm_set_volume(bedai->port_id, j, gain);
17585 }
17586 }
17587 }
17588 mutex_unlock(&routing_lock);
17589 return ret ? -EINVAL : 0;
17590}
17591
17592static const struct snd_kcontrol_new app_type_cfg_controls[] = {
17593 SOC_SINGLE_MULTI_EXT("App Type Config", SND_SOC_NOPM, 0,
17594 0xFFFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
17595 msm_routing_put_app_type_cfg_control),
17596 SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
17597 0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
17598};
17599
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017600static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,
17601 struct snd_ctl_elem_value *ucontrol)
17602{
17603 int copp_idx, fe_id, be_id, port_type;
17604 int ret = 0;
17605 unsigned long copp;
17606 struct msm_pcm_routing_bdai_data *bedai;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017607 u8 *packed_params = NULL;
17608 struct param_hdr_v3 param_hdr;
17609 u32 packed_param_size = (sizeof(struct param_hdr_v3) +
17610 sizeof(uint32_t));
17611
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017612 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
17613 SESSION_TYPE_RX;
17614 int app_type = ucontrol->value.integer.value[1];
17615 int module_id = ucontrol->value.integer.value[2];
17616 int instance_id = ucontrol->value.integer.value[3];
17617 int param_id = ucontrol->value.integer.value[4];
17618 int param_value = ucontrol->value.integer.value[5];
17619
17620 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
17621 MSM_AFE_PORT_TYPE_TX;
17622 pr_debug("%s app_type:%d mod_id:%d instance_id:%d param_id:%d value:%d\n",
17623 __func__, app_type, module_id,
17624 instance_id, param_id, param_value);
17625
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017626 packed_params = kzalloc(packed_param_size, GFP_KERNEL);
17627 if (!packed_params)
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017628 return -ENOMEM;
17629
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017630 memset(&param_hdr, 0, sizeof(param_hdr));
17631 param_hdr.module_id = module_id;
17632 param_hdr.instance_id = instance_id;
17633 param_hdr.param_id = param_id;
17634 param_hdr.param_size = sizeof(uint32_t);
17635
17636 packed_param_size = 0;
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017637
17638 mutex_lock(&routing_lock);
17639 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
17640 if (is_be_dai_extproc(be_id))
17641 continue;
17642
17643 bedai = &msm_bedais[be_id];
17644 if (afe_get_port_type(bedai->port_id) != port_type)
17645 continue;
17646
17647 if (!bedai->active)
17648 continue;
17649
17650 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
17651 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
17652 continue;
17653
17654 if (app_type !=
17655 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
17656 continue;
17657
17658 copp = session_copp_map[fe_id][dir][be_id];
17659 for (copp_idx = 0; copp_idx < MAX_COPPS_PER_PORT;
17660 copp_idx++) {
17661 if (!test_bit(copp_idx, &copp))
17662 continue;
17663
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017664 ret = q6common_pack_pp_params(packed_params,
17665 &param_hdr,
17666 (u8 *) &param_value,
17667 &packed_param_size);
17668 if (ret) {
17669 pr_err("%s: Failed to pack params, error %d\n",
17670 __func__, ret);
17671 goto done;
17672 }
17673
17674 ret = adm_set_pp_params(bedai->port_id,
17675 copp_idx, NULL,
17676 packed_params,
17677 packed_param_size);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017678 if (ret) {
17679 pr_err("%s: Setting param failed with err=%d\n",
17680 __func__, ret);
17681 ret = -EINVAL;
17682 goto done;
17683 }
17684 }
17685 }
17686 }
17687done:
17688 mutex_unlock(&routing_lock);
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017689 kfree(packed_params);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017690 return ret;
17691}
17692
17693static const struct snd_kcontrol_new module_cfg_controls[] = {
17694 SOC_SINGLE_MULTI_EXT("Audio Effect", SND_SOC_NOPM, 0,
17695 0x2000, 0, 6, NULL, msm_routing_put_module_cfg_control)
17696};
17697
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017698static int msm_routing_get_lsm_app_type_cfg_control(
17699 struct snd_kcontrol *kcontrol,
17700 struct snd_ctl_elem_value *ucontrol)
17701{
Meng Wangadbca4f2018-10-29 14:30:13 +080017702 int shift = ((struct soc_multi_mixer_control *)
17703 kcontrol->private_value)->shift;
17704 int i = 0, j = 0;
17705
17706 ucontrol->value.integer.value[i] = num_app_cfg_types;
17707
17708 for (j = 0; j < num_app_cfg_types; ++j) {
17709 ucontrol->value.integer.value[++i] =
17710 lsm_app_type_cfg[j].app_type;
17711 ucontrol->value.integer.value[++i] =
17712 lsm_app_type_cfg[j].sample_rate;
17713 ucontrol->value.integer.value[++i] =
17714 lsm_app_type_cfg[j].bit_width;
17715 if (shift == 1)
17716 ucontrol->value.integer.value[++i] =
17717 lsm_app_type_cfg[j].num_out_channels;
17718 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017719 return 0;
17720}
17721
17722static int msm_routing_put_lsm_app_type_cfg_control(
17723 struct snd_kcontrol *kcontrol,
17724 struct snd_ctl_elem_value *ucontrol)
17725{
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017726 int shift = ((struct soc_multi_mixer_control *)
17727 kcontrol->private_value)->shift;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017728 int i = 0, j;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017729
Meng Wangadbca4f2018-10-29 14:30:13 +080017730 num_app_cfg_types = ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017731 memset(lsm_app_type_cfg, 0, MAX_APP_TYPES*
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017732 sizeof(struct msm_pcm_routing_app_type_data));
17733
Meng Wangadbca4f2018-10-29 14:30:13 +080017734 if (num_app_cfg_types > MAX_APP_TYPES) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017735 pr_err("%s: number of app types exceed the max supported\n",
17736 __func__);
17737 return -EINVAL;
17738 }
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017739
Meng Wangadbca4f2018-10-29 14:30:13 +080017740 for (j = 0; j < num_app_cfg_types; j++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017741 lsm_app_type_cfg[j].app_type =
17742 ucontrol->value.integer.value[i++];
17743 lsm_app_type_cfg[j].sample_rate =
17744 ucontrol->value.integer.value[i++];
17745 lsm_app_type_cfg[j].bit_width =
17746 ucontrol->value.integer.value[i++];
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017747 /* Shift of 1 indicates this is V2 mixer control */
17748 if (shift == 1)
17749 lsm_app_type_cfg[j].num_out_channels =
17750 ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017751 }
17752
17753 return 0;
17754}
17755
17756static const struct snd_kcontrol_new lsm_app_type_cfg_controls[] = {
17757 SOC_SINGLE_MULTI_EXT("Listen App Type Config", SND_SOC_NOPM, 0,
17758 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
17759 msm_routing_put_lsm_app_type_cfg_control),
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017760 SOC_SINGLE_MULTI_EXT("Listen App Type Config V2", SND_SOC_NOPM, 1,
17761 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
17762 msm_routing_put_lsm_app_type_cfg_control),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017763};
17764
17765static int msm_routing_get_use_ds1_or_ds2_control(
17766 struct snd_kcontrol *kcontrol,
17767 struct snd_ctl_elem_value *ucontrol)
17768{
17769 ucontrol->value.integer.value[0] = is_ds2_on;
17770 return 0;
17771}
17772
17773static int msm_routing_put_use_ds1_or_ds2_control(
17774 struct snd_kcontrol *kcontrol,
17775 struct snd_ctl_elem_value *ucontrol)
17776{
17777 is_ds2_on = ucontrol->value.integer.value[0];
17778 return 0;
17779}
17780
17781static const struct snd_kcontrol_new use_ds1_or_ds2_controls[] = {
17782 SOC_SINGLE_EXT("DS2 OnOff", SND_SOC_NOPM, 0,
17783 1, 0, msm_routing_get_use_ds1_or_ds2_control,
17784 msm_routing_put_use_ds1_or_ds2_control),
17785};
17786
17787int msm_routing_get_rms_value_control(struct snd_kcontrol *kcontrol,
17788 struct snd_ctl_elem_value *ucontrol) {
17789 int rc = 0;
17790 int be_idx = 0;
17791 char *param_value;
17792 int *update_param_value;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017793 uint32_t param_size = (RMS_PAYLOAD_LEN + 1) * sizeof(uint32_t);
17794 struct param_hdr_v3 param_hdr;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017795
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017796 param_value = kzalloc(param_size, GFP_KERNEL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017797 if (!param_value)
17798 return -ENOMEM;
17799
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017800 memset(&param_hdr, 0, sizeof(param_hdr));
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017801 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++)
17802 if (msm_bedais[be_idx].port_id == SLIMBUS_0_TX)
17803 break;
17804 if ((be_idx < MSM_BACKEND_DAI_MAX) && msm_bedais[be_idx].active) {
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017805 param_hdr.module_id = RMS_MODULEID_APPI_PASSTHRU;
17806 param_hdr.instance_id = INSTANCE_ID_0;
17807 param_hdr.param_id = RMS_PARAM_FIRST_SAMPLE;
17808 param_hdr.param_size = param_size;
17809 rc = adm_get_pp_params(SLIMBUS_0_TX, 0, ADM_CLIENT_ID_DEFAULT,
17810 NULL, &param_hdr, (u8 *) param_value);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017811 if (rc) {
17812 pr_err("%s: get parameters failed:%d\n", __func__, rc);
17813 kfree(param_value);
17814 return -EINVAL;
17815 }
17816 update_param_value = (int *)param_value;
17817 ucontrol->value.integer.value[0] = update_param_value[0];
17818
17819 pr_debug("%s: FROM DSP value[0] 0x%x\n",
17820 __func__, update_param_value[0]);
17821 }
17822 kfree(param_value);
17823 return 0;
17824}
17825
17826static int msm_voc_session_id_put(struct snd_kcontrol *kcontrol,
17827 struct snd_ctl_elem_value *ucontrol)
17828{
17829 voc_session_id = ucontrol->value.integer.value[0];
17830
17831 pr_debug("%s: voc_session_id=%u\n", __func__, voc_session_id);
17832
17833 return 0;
17834}
17835
17836static int msm_voc_session_id_get(struct snd_kcontrol *kcontrol,
17837 struct snd_ctl_elem_value *ucontrol)
17838{
17839 ucontrol->value.integer.value[0] = voc_session_id;
17840
17841 return 0;
17842}
17843
17844static struct snd_kcontrol_new msm_voc_session_controls[] = {
17845 SOC_SINGLE_MULTI_EXT("Voc VSID", SND_SOC_NOPM, 0,
17846 0xFFFFFFFF, 0, 1, msm_voc_session_id_get,
17847 msm_voc_session_id_put),
17848};
17849
17850static int msm_sound_focus_info(struct snd_kcontrol *kcontrol,
17851 struct snd_ctl_elem_info *uinfo)
17852{
17853 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
17854 uinfo->count = sizeof(struct sound_focus_param);
17855
17856 return 0;
17857}
17858
17859static int msm_voice_sound_focus_put(struct snd_kcontrol *kcontrol,
17860 struct snd_ctl_elem_value *ucontrol)
17861{
17862 int ret = 0;
17863 struct sound_focus_param soundFocusData;
17864
17865 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
17866 sizeof(struct sound_focus_param));
17867 ret = voc_set_sound_focus(soundFocusData);
17868 if (ret) {
17869 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
17870 __func__, ret);
17871
17872 ret = -EINVAL;
17873 }
17874
17875 return ret;
17876}
17877
17878static int msm_voice_sound_focus_get(struct snd_kcontrol *kcontrol,
17879 struct snd_ctl_elem_value *ucontrol)
17880{
17881 int ret = 0;
17882 struct sound_focus_param soundFocusData;
17883
17884 memset(&soundFocusData, 0, sizeof(struct sound_focus_param));
17885
17886 ret = voc_get_sound_focus(&soundFocusData);
17887 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017888 pr_debug("%s: Error getting Sound Focus Params, err=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017889 __func__, ret);
17890
17891 ret = -EINVAL;
17892 goto done;
17893 }
17894 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
17895 sizeof(struct sound_focus_param));
17896
17897done:
17898 return ret;
17899}
17900
17901static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
17902 struct snd_ctl_elem_info *uinfo)
17903{
17904 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
17905 uinfo->count = sizeof(struct source_tracking_param);
17906
17907 return 0;
17908}
17909
17910static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
17911 struct snd_ctl_elem_value *ucontrol)
17912{
Meng Wang92edfde2018-04-24 12:18:37 +080017913 int ret = 0;
17914 struct source_tracking_param sourceTrackingData;
17915
17916 memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
17917
17918 ret = voc_get_source_tracking(&sourceTrackingData);
17919 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017920 pr_debug("%s: Error getting Source Tracking Params, err=%d\n",
Meng Wang92edfde2018-04-24 12:18:37 +080017921 __func__, ret);
17922
17923 ret = -EINVAL;
17924 goto done;
17925 }
17926 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
17927 sizeof(struct source_tracking_param));
17928
17929done:
17930 return ret;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017931}
17932
17933static int msm_audio_get_copp_idx_from_port_id(int port_id, int session_type,
17934 int *copp_idx)
17935{
17936 int i, idx, be_idx;
17937 int ret = 0;
17938 unsigned long copp;
17939
17940 pr_debug("%s: Enter, port_id=%d\n", __func__, port_id);
17941
17942 ret = q6audio_validate_port(port_id);
17943 if (ret < 0) {
17944 pr_err("%s: port validation failed id 0x%x ret %d\n",
17945 __func__, port_id, ret);
17946
17947 ret = -EINVAL;
17948 goto done;
17949 }
17950
17951 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
17952 if (msm_bedais[be_idx].port_id == port_id)
17953 break;
17954 }
17955 if (be_idx >= MSM_BACKEND_DAI_MAX) {
17956 pr_err("%s: Invalid be id %d\n", __func__, be_idx);
17957
17958 ret = -EINVAL;
17959 goto done;
17960 }
17961
17962 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053017963 MSM_FRONTEND_DAI_MAX) {
17964 if (!(is_mm_lsm_fe_id(i) &&
17965 route_check_fe_id_adm_support(i)))
17966 continue;
17967
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017968 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
17969 copp = session_copp_map[i]
17970 [session_type][be_idx];
17971 if (test_bit(idx, &copp))
17972 break;
17973 }
17974 if (idx >= MAX_COPPS_PER_PORT)
17975 continue;
17976 else
17977 break;
17978 }
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053017979 if (i >= MSM_FRONTEND_DAI_MAX) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017980 pr_debug("%s: Invalid FE, exiting\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017981
17982 ret = -EINVAL;
17983 goto done;
17984 }
17985 *copp_idx = idx;
17986 pr_debug("%s: copp_idx=%d\n", __func__, *copp_idx);
17987
17988done:
17989 return ret;
17990}
17991
17992static int msm_audio_sound_focus_derive_port_id(struct snd_kcontrol *kcontrol,
17993 const char *prefix, int *port_id)
17994{
17995 int ret = 0;
17996
17997 pr_debug("%s: Enter, prefix:%s\n", __func__, prefix);
17998
17999 /*
18000 * Mixer control name will be like "Sound Focus Audio Tx SLIMBUS_0"
18001 * where the prefix is "Sound Focus Audio Tx ". Skip the prefix
18002 * and compare the string with the backend name to derive the port id.
18003 */
18004 if (!strcmp(kcontrol->id.name + strlen(prefix),
18005 "SLIMBUS_0")) {
18006 *port_id = SLIMBUS_0_TX;
18007 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
18008 "TERT_MI2S")) {
18009 *port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
18010 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
18011 "INT3_MI2S")) {
18012 *port_id = AFE_PORT_ID_INT3_MI2S_TX;
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053018013 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
18014 "VA_CDC_DMA_TX_0")) {
18015 *port_id = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053018016 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
18017 "TX_CDC_DMA_TX_3")) {
18018 *port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053018019 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
18020 "QUIN_TDM_TX_0")) {
18021 *port_id = AFE_PORT_ID_QUINARY_TDM_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018022 } else {
18023 pr_err("%s: mixer ctl name=%s, could not derive valid port id\n",
18024 __func__, kcontrol->id.name);
18025
18026 ret = -EINVAL;
18027 goto done;
18028 }
18029 pr_debug("%s: mixer ctl name=%s, derived port_id=%d\n",
18030 __func__, kcontrol->id.name, *port_id);
18031
18032done:
18033 return ret;
18034}
18035
18036static int msm_audio_sound_focus_put(struct snd_kcontrol *kcontrol,
18037 struct snd_ctl_elem_value *ucontrol)
18038{
18039 int ret = 0;
18040 struct sound_focus_param soundFocusData;
18041 int port_id, copp_idx;
18042
18043 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
18044 "Sound Focus Audio Tx ", &port_id);
18045 if (ret != 0) {
18046 pr_err("%s: Error in deriving port id, err=%d\n",
18047 __func__, ret);
18048
18049 ret = -EINVAL;
18050 goto done;
18051 }
18052
18053 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
18054 &copp_idx);
18055 if (ret) {
18056 pr_err("%s: Could not get copp idx for port_id=%d\n",
18057 __func__, port_id);
18058
18059 ret = -EINVAL;
18060 goto done;
18061 }
18062
18063 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
18064 sizeof(struct sound_focus_param));
18065
18066 ret = adm_set_sound_focus(port_id, copp_idx, soundFocusData);
18067 if (ret) {
18068 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
18069 __func__, ret);
18070
18071 ret = -EINVAL;
18072 goto done;
18073 }
18074
18075done:
18076 return ret;
18077}
18078
18079static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
18080 struct snd_ctl_elem_value *ucontrol)
18081{
18082 int ret = 0;
18083 struct sound_focus_param soundFocusData;
18084 int port_id, copp_idx;
18085
18086 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
18087 "Sound Focus Audio Tx ", &port_id);
18088 if (ret) {
18089 pr_err("%s: Error in deriving port id, err=%d\n",
18090 __func__, ret);
18091
18092 ret = -EINVAL;
18093 goto done;
18094 }
18095
18096 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
18097 &copp_idx);
18098 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070018099 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018100 __func__, port_id);
18101
18102 ret = -EINVAL;
18103 goto done;
18104 }
18105
18106 ret = adm_get_sound_focus(port_id, copp_idx, &soundFocusData);
18107 if (ret) {
18108 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
18109 __func__, ret);
18110
18111 ret = -EINVAL;
18112 goto done;
18113 }
18114
18115 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
18116 sizeof(struct sound_focus_param));
18117
18118done:
18119 return ret;
18120}
18121
18122static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
18123 struct snd_ctl_elem_value *ucontrol)
18124{
18125 int ret = 0;
18126 struct source_tracking_param sourceTrackingData;
18127 int port_id, copp_idx;
18128
18129 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
18130 "Source Tracking Audio Tx ", &port_id);
18131 if (ret) {
18132 pr_err("%s: Error in deriving port id, err=%d\n",
18133 __func__, ret);
18134
18135 ret = -EINVAL;
18136 goto done;
18137 }
18138
18139 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
18140 &copp_idx);
18141 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070018142 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018143 __func__, port_id);
18144
18145 ret = -EINVAL;
18146 goto done;
18147 }
18148
18149 ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
18150 if (ret) {
18151 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
18152 __func__, ret);
18153
18154 ret = -EINVAL;
18155 goto done;
18156 }
18157
18158 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
18159 sizeof(struct source_tracking_param));
18160
18161done:
18162 return ret;
18163}
18164
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053018165static int msm_doa_tracking_mon_info(struct snd_kcontrol *kcontrol,
18166 struct snd_ctl_elem_info *uinfo)
18167{
18168 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
18169 uinfo->count = sizeof(struct doa_tracking_mon_param);
18170
18171 return 0;
18172}
18173
18174static int msm_doa_tracking_mon_get(struct snd_kcontrol *kcontrol,
18175 struct snd_ctl_elem_value *ucontrol)
18176{
18177 int ret = 0;
18178 struct doa_tracking_mon_param doa_tracking_data;
18179 int port_id, copp_idx;
18180
18181 memset(&doa_tracking_data, 0, sizeof(struct doa_tracking_mon_param));
18182 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
18183 "Doa Tracking Monitor Listen ", &port_id);
18184 if (ret) {
18185 pr_err("%s: Error in deriving port id, err=%d\n",
18186 __func__, ret);
18187 ret = -EINVAL;
18188 goto done;
18189 }
18190
18191 /*
18192 * If copp id exists for given port id, query adm to get doa data.
18193 * Else query afe for doa tracking params.
18194 * This is to support in cases where LSM directly connects to
18195 * AFE for FFNS.
18196 */
18197 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
18198 &copp_idx);
18199 if (!ret)
18200 ret = adm_get_doa_tracking_mon(port_id, copp_idx,
18201 &doa_tracking_data);
18202 else
18203 ret = afe_get_doa_tracking_mon(port_id, &doa_tracking_data);
18204
18205 if (ret) {
18206 pr_err("%s: Error getting Doa Tracking Params, err=%d\n",
18207 __func__, ret);
18208 ret = -EINVAL;
18209 goto done;
18210 }
18211
18212 memcpy(ucontrol->value.bytes.data, (void *)&doa_tracking_data,
18213 sizeof(struct doa_tracking_mon_param));
18214done:
18215 return ret;
18216}
18217
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018218static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
18219 {
18220 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18221 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18222 .name = "Sound Focus Voice Tx SLIMBUS_0",
18223 .info = msm_sound_focus_info,
18224 .get = msm_voice_sound_focus_get,
18225 .put = msm_voice_sound_focus_put,
18226 },
18227 {
18228 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18229 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18230 .name = "Source Tracking Voice Tx SLIMBUS_0",
18231 .info = msm_source_tracking_info,
18232 .get = msm_voice_source_tracking_get,
18233 },
18234 {
18235 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18236 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18237 .name = "Sound Focus Audio Tx SLIMBUS_0",
18238 .info = msm_sound_focus_info,
18239 .get = msm_audio_sound_focus_get,
18240 .put = msm_audio_sound_focus_put,
18241 },
18242 {
18243 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18244 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18245 .name = "Source Tracking Audio Tx SLIMBUS_0",
18246 .info = msm_source_tracking_info,
18247 .get = msm_audio_source_tracking_get,
18248 },
18249 {
18250 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18251 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18252 .name = "Sound Focus Voice Tx TERT_MI2S",
18253 .info = msm_sound_focus_info,
18254 .get = msm_voice_sound_focus_get,
18255 .put = msm_voice_sound_focus_put,
18256 },
18257 {
18258 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18259 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18260 .name = "Source Tracking Voice Tx TERT_MI2S",
18261 .info = msm_source_tracking_info,
18262 .get = msm_voice_source_tracking_get,
18263 },
18264 {
18265 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18266 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18267 .name = "Sound Focus Audio Tx TERT_MI2S",
18268 .info = msm_sound_focus_info,
18269 .get = msm_audio_sound_focus_get,
18270 .put = msm_audio_sound_focus_put,
18271 },
18272 {
18273 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18274 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18275 .name = "Source Tracking Audio Tx TERT_MI2S",
18276 .info = msm_source_tracking_info,
18277 .get = msm_audio_source_tracking_get,
18278 },
18279 {
18280 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18281 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18282 .name = "Sound Focus Voice Tx INT3_MI2S",
18283 .info = msm_sound_focus_info,
18284 .get = msm_voice_sound_focus_get,
18285 .put = msm_voice_sound_focus_put,
18286 },
18287 {
18288 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18289 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18290 .name = "Source Tracking Voice Tx INT3_MI2S",
18291 .info = msm_source_tracking_info,
18292 .get = msm_voice_source_tracking_get,
18293 },
18294 {
18295 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18296 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18297 .name = "Sound Focus Audio Tx INT3_MI2S",
18298 .info = msm_sound_focus_info,
18299 .get = msm_audio_sound_focus_get,
18300 .put = msm_audio_sound_focus_put,
18301 },
18302 {
18303 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18304 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18305 .name = "Source Tracking Audio Tx INT3_MI2S",
18306 .info = msm_source_tracking_info,
18307 .get = msm_audio_source_tracking_get,
18308 },
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053018309 {
18310 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18311 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18312 .name = "Sound Focus Voice Tx VA_CDC_DMA_TX_0",
18313 .info = msm_sound_focus_info,
18314 .get = msm_voice_sound_focus_get,
18315 .put = msm_voice_sound_focus_put,
18316 },
18317 {
18318 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18319 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18320 .name = "Source Tracking Voice Tx VA_CDC_DMA_TX_0",
18321 .info = msm_source_tracking_info,
18322 .get = msm_voice_source_tracking_get,
18323 },
18324 {
18325 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18326 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18327 .name = "Sound Focus Audio Tx VA_CDC_DMA_TX_0",
18328 .info = msm_sound_focus_info,
18329 .get = msm_audio_sound_focus_get,
18330 .put = msm_audio_sound_focus_put,
18331 },
18332 {
18333 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18334 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18335 .name = "Source Tracking Audio Tx VA_CDC_DMA_TX_0",
18336 .info = msm_source_tracking_info,
18337 .get = msm_audio_source_tracking_get,
18338 },
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053018339 {
18340 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18341 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18342 .name = "Sound Focus Voice Tx TX_CDC_DMA_TX_3",
18343 .info = msm_sound_focus_info,
18344 .get = msm_voice_sound_focus_get,
18345 .put = msm_voice_sound_focus_put,
18346 },
18347 {
18348 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18349 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18350 .name = "Source Tracking Voice Tx TX_CDC_DMA_TX_3",
18351 .info = msm_source_tracking_info,
18352 .get = msm_voice_source_tracking_get,
18353 },
18354 {
18355 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18356 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18357 .name = "Sound Focus Audio Tx TX_CDC_DMA_TX_3",
18358 .info = msm_sound_focus_info,
18359 .get = msm_audio_sound_focus_get,
18360 .put = msm_audio_sound_focus_put,
18361 },
18362 {
18363 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18364 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18365 .name = "Source Tracking Audio Tx TX_CDC_DMA_TX_3",
18366 .info = msm_source_tracking_info,
18367 .get = msm_audio_source_tracking_get,
18368 },
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053018369 {
18370 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18371 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18372 .name = "Sound Focus Voice Tx QUIN_TDM_TX_0",
18373 .info = msm_sound_focus_info,
18374 .get = msm_voice_sound_focus_get,
18375 .put = msm_voice_sound_focus_put,
18376 },
18377 {
18378 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18379 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18380 .name = "Source Tracking Voice Tx QUIN_TDM_TX_0",
18381 .info = msm_source_tracking_info,
18382 .get = msm_voice_source_tracking_get,
18383 },
18384 {
18385 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18386 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18387 .name = "Sound Focus Audio Tx QUIN_TDM_TX_0",
18388 .info = msm_sound_focus_info,
18389 .get = msm_audio_sound_focus_get,
18390 .put = msm_audio_sound_focus_put,
18391 },
18392 {
18393 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18394 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18395 .name = "Source Tracking Audio Tx QUIN_TDM_TX_0",
18396 .info = msm_source_tracking_info,
18397 .get = msm_audio_source_tracking_get,
18398 },
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053018399 {
18400 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18401 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18402 .name = "Doa Tracking Monitor Listen VA_CDC_DMA_TX_0",
18403 .info = msm_doa_tracking_mon_info,
18404 .get = msm_doa_tracking_mon_get,
18405 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018406};
18407
18408static int spkr_prot_put_vi_lch_port(struct snd_kcontrol *kcontrol,
18409 struct snd_ctl_elem_value *ucontrol)
18410{
18411 int ret = 0;
18412 int item;
18413 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
18414
18415 pr_debug("%s item is %d\n", __func__,
18416 ucontrol->value.enumerated.item[0]);
18417 mutex_lock(&routing_lock);
18418 item = ucontrol->value.enumerated.item[0];
18419 if (item < e->items) {
18420 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
18421 __func__, e->shift_l, e->values[item]);
18422 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
18423 e->values[item] < MSM_BACKEND_DAI_MAX)
18424 /* Enable feedback TX path */
18425 ret = afe_spk_prot_feed_back_cfg(
18426 msm_bedais[e->values[item]].port_id,
18427 msm_bedais[e->shift_l].port_id, 1, 0, 1);
18428 else {
18429 pr_debug("%s values are out of range item %d\n",
18430 __func__, e->values[item]);
18431 /* Disable feedback TX path */
18432 if (e->values[item] == MSM_BACKEND_DAI_MAX)
18433 ret = afe_spk_prot_feed_back_cfg(0, 0, 0, 0, 0);
18434 else
18435 ret = -EINVAL;
18436 }
18437 } else {
18438 pr_err("%s item value is out of range item\n", __func__);
18439 ret = -EINVAL;
18440 }
18441 mutex_unlock(&routing_lock);
18442 return ret;
18443}
18444
18445static int spkr_prot_put_vi_rch_port(struct snd_kcontrol *kcontrol,
18446 struct snd_ctl_elem_value *ucontrol)
18447{
18448 int ret = 0;
18449 int item;
18450 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
18451
18452 pr_debug("%s item is %d\n", __func__,
18453 ucontrol->value.enumerated.item[0]);
18454 mutex_lock(&routing_lock);
18455 item = ucontrol->value.enumerated.item[0];
18456 if (item < e->items) {
18457 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
18458 __func__, e->shift_l, e->values[item]);
18459 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
18460 e->values[item] < MSM_BACKEND_DAI_MAX)
18461 /* Enable feedback TX path */
18462 ret = afe_spk_prot_feed_back_cfg(
18463 msm_bedais[e->values[item]].port_id,
18464 msm_bedais[e->shift_l].port_id,
18465 1, 1, 1);
18466 else {
18467 pr_debug("%s values are out of range item %d\n",
18468 __func__, e->values[item]);
18469 /* Disable feedback TX path */
18470 if (e->values[item] == MSM_BACKEND_DAI_MAX)
18471 ret = afe_spk_prot_feed_back_cfg(0,
18472 0, 0, 0, 0);
18473 else
18474 ret = -EINVAL;
18475 }
18476 } else {
18477 pr_err("%s item value is out of range item\n", __func__);
18478 ret = -EINVAL;
18479 }
18480 mutex_unlock(&routing_lock);
18481 return ret;
18482}
18483
18484static int spkr_prot_get_vi_lch_port(struct snd_kcontrol *kcontrol,
18485 struct snd_ctl_elem_value *ucontrol)
18486{
18487 pr_debug("%s\n", __func__);
18488 return 0;
18489}
18490
18491static int spkr_prot_get_vi_rch_port(struct snd_kcontrol *kcontrol,
18492 struct snd_ctl_elem_value *ucontrol)
18493{
18494 pr_debug("%s\n", __func__);
18495 ucontrol->value.enumerated.item[0] = 0;
18496 return 0;
18497}
18498
18499static const char * const slim0_rx_vi_fb_tx_lch_mux_text[] = {
18500 "ZERO", "SLIM4_TX"
18501};
18502
18503static const char * const slim0_rx_vi_fb_tx_rch_mux_text[] = {
18504 "ZERO", "SLIM4_TX"
18505};
18506
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018507static const char * const wsa_rx_0_vi_fb_tx_lch_mux_text[] = {
18508 "ZERO", "WSA_CDC_DMA_TX_0"
18509};
18510
18511static const char * const wsa_rx_0_vi_fb_tx_rch_mux_text[] = {
18512 "ZERO", "WSA_CDC_DMA_TX_0"
18513};
18514
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018515static const char * const mi2s_rx_vi_fb_tx_mux_text[] = {
18516 "ZERO", "SENARY_TX"
18517};
18518
18519static const char * const int4_mi2s_rx_vi_fb_tx_mono_mux_text[] = {
18520 "ZERO", "INT5_MI2S_TX"
18521};
18522
18523static const char * const int4_mi2s_rx_vi_fb_tx_stereo_mux_text[] = {
18524 "ZERO", "INT5_MI2S_TX"
18525};
18526
Josh Kirschea69fed2018-12-11 16:15:08 -080018527static const int slim0_rx_vi_fb_tx_lch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018528 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
18529};
18530
Josh Kirschea69fed2018-12-11 16:15:08 -080018531static const int slim0_rx_vi_fb_tx_rch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018532 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
18533};
18534
Josh Kirschea69fed2018-12-11 16:15:08 -080018535static const int wsa_rx_0_vi_fb_tx_lch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018536 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
18537};
18538
Josh Kirschea69fed2018-12-11 16:15:08 -080018539static const int wsa_rx_0_vi_fb_tx_rch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018540 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
18541};
18542
18543
Josh Kirschea69fed2018-12-11 16:15:08 -080018544static const int mi2s_rx_vi_fb_tx_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018545 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SENARY_MI2S_TX
18546};
18547
Josh Kirschea69fed2018-12-11 16:15:08 -080018548static const int int4_mi2s_rx_vi_fb_tx_mono_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018549 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
18550};
18551
Josh Kirschea69fed2018-12-11 16:15:08 -080018552static const int int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018553 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
18554};
18555
18556static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
18557 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
18558 ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
18559 slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
18560
18561static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
18562 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
18563 ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
18564 slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
18565
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018566static const struct soc_enum wsa_rx_0_vi_fb_lch_mux_enum =
18567 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
18568 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_lch_mux_text),
18569 wsa_rx_0_vi_fb_tx_lch_mux_text, wsa_rx_0_vi_fb_tx_lch_value);
18570
18571static const struct soc_enum wsa_rx_0_vi_fb_rch_mux_enum =
18572 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
18573 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_rch_mux_text),
18574 wsa_rx_0_vi_fb_tx_rch_mux_text, wsa_rx_0_vi_fb_tx_rch_value);
18575
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018576static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
18577 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
18578 ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
18579 mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
18580
18581static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
18582 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
18583 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
18584 int4_mi2s_rx_vi_fb_tx_mono_mux_text,
18585 int4_mi2s_rx_vi_fb_tx_mono_ch_value);
18586
18587static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
18588 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
18589 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
18590 int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
18591 int4_mi2s_rx_vi_fb_tx_stereo_ch_value);
18592
18593static const struct snd_kcontrol_new slim0_rx_vi_fb_lch_mux =
18594 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_LCH_MUX",
18595 slim0_rx_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
18596 spkr_prot_put_vi_lch_port);
18597
18598static const struct snd_kcontrol_new slim0_rx_vi_fb_rch_mux =
18599 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_RCH_MUX",
18600 slim0_rx_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
18601 spkr_prot_put_vi_rch_port);
18602
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018603static const struct snd_kcontrol_new wsa_rx_0_vi_fb_lch_mux =
18604 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_LCH_MUX",
18605 wsa_rx_0_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
18606 spkr_prot_put_vi_lch_port);
18607
18608static const struct snd_kcontrol_new wsa_rx_0_vi_fb_rch_mux =
18609 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_RCH_MUX",
18610 wsa_rx_0_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
18611 spkr_prot_put_vi_rch_port);
18612
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018613static const struct snd_kcontrol_new mi2s_rx_vi_fb_mux =
18614 SOC_DAPM_ENUM_EXT("PRI_MI2S_RX_VI_FB_MUX",
18615 mi2s_rx_vi_fb_mux_enum, spkr_prot_get_vi_lch_port,
18616 spkr_prot_put_vi_lch_port);
18617
18618static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_mono_ch_mux =
18619 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_MONO_CH_MUX",
18620 int4_mi2s_rx_vi_fb_mono_ch_mux_enum, spkr_prot_get_vi_lch_port,
18621 spkr_prot_put_vi_lch_port);
18622
18623static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_stereo_ch_mux =
18624 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX",
18625 int4_mi2s_rx_vi_fb_stereo_ch_mux_enum, spkr_prot_get_vi_rch_port,
18626 spkr_prot_put_vi_rch_port);
18627
18628static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
18629 /* Frontend AIF */
18630 /* Widget name equals to Front-End DAI name<Need confirmation>,
18631 * Stream name must contains substring of front-end dai name
18632 */
18633 SND_SOC_DAPM_AIF_IN("MM_DL1", "MultiMedia1 Playback", 0, 0, 0, 0),
18634 SND_SOC_DAPM_AIF_IN("MM_DL2", "MultiMedia2 Playback", 0, 0, 0, 0),
18635 SND_SOC_DAPM_AIF_IN("MM_DL3", "MultiMedia3 Playback", 0, 0, 0, 0),
18636 SND_SOC_DAPM_AIF_IN("MM_DL4", "MultiMedia4 Playback", 0, 0, 0, 0),
18637 SND_SOC_DAPM_AIF_IN("MM_DL5", "MultiMedia5 Playback", 0, 0, 0, 0),
18638 SND_SOC_DAPM_AIF_IN("MM_DL6", "MultiMedia6 Playback", 0, 0, 0, 0),
18639 SND_SOC_DAPM_AIF_IN("MM_DL7", "MultiMedia7 Playback", 0, 0, 0, 0),
18640 SND_SOC_DAPM_AIF_IN("MM_DL8", "MultiMedia8 Playback", 0, 0, 0, 0),
18641 SND_SOC_DAPM_AIF_IN("MM_DL9", "MultiMedia9 Playback", 0, 0, 0, 0),
18642 SND_SOC_DAPM_AIF_IN("MM_DL10", "MultiMedia10 Playback", 0, 0, 0, 0),
18643 SND_SOC_DAPM_AIF_IN("MM_DL11", "MultiMedia11 Playback", 0, 0, 0, 0),
18644 SND_SOC_DAPM_AIF_IN("MM_DL12", "MultiMedia12 Playback", 0, 0, 0, 0),
18645 SND_SOC_DAPM_AIF_IN("MM_DL13", "MultiMedia13 Playback", 0, 0, 0, 0),
18646 SND_SOC_DAPM_AIF_IN("MM_DL14", "MultiMedia14 Playback", 0, 0, 0, 0),
18647 SND_SOC_DAPM_AIF_IN("MM_DL15", "MultiMedia15 Playback", 0, 0, 0, 0),
18648 SND_SOC_DAPM_AIF_IN("MM_DL16", "MultiMedia16 Playback", 0, 0, 0, 0),
18649 SND_SOC_DAPM_AIF_IN("MM_DL20", "MultiMedia20 Playback", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070018650 SND_SOC_DAPM_AIF_IN("MM_DL21", "MultiMedia21 Playback", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053018651 SND_SOC_DAPM_AIF_IN("MM_DL26", "MultiMedia26 Playback", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018652 SND_SOC_DAPM_AIF_IN("VOIP_DL", "VoIP Playback", 0, 0, 0, 0),
18653 SND_SOC_DAPM_AIF_OUT("MM_UL1", "MultiMedia1 Capture", 0, 0, 0, 0),
18654 SND_SOC_DAPM_AIF_OUT("MM_UL2", "MultiMedia2 Capture", 0, 0, 0, 0),
18655 SND_SOC_DAPM_AIF_OUT("MM_UL3", "MultiMedia3 Capture", 0, 0, 0, 0),
18656 SND_SOC_DAPM_AIF_OUT("MM_UL4", "MultiMedia4 Capture", 0, 0, 0, 0),
18657 SND_SOC_DAPM_AIF_OUT("MM_UL5", "MultiMedia5 Capture", 0, 0, 0, 0),
18658 SND_SOC_DAPM_AIF_OUT("MM_UL6", "MultiMedia6 Capture", 0, 0, 0, 0),
18659 SND_SOC_DAPM_AIF_OUT("MM_UL8", "MultiMedia8 Capture", 0, 0, 0, 0),
18660 SND_SOC_DAPM_AIF_OUT("MM_UL9", "MultiMedia9 Capture", 0, 0, 0, 0),
Laxminath Kasam38070be2017-08-17 18:21:59 +053018661 SND_SOC_DAPM_AIF_OUT("MM_UL10", "MultiMedia10 Capture", 0, 0, 0, 0),
Asish Bhattacharya34504582017-08-08 12:55:01 +053018662 SND_SOC_DAPM_AIF_OUT("MM_UL16", "MultiMedia16 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018663 SND_SOC_DAPM_AIF_OUT("MM_UL17", "MultiMedia17 Capture", 0, 0, 0, 0),
18664 SND_SOC_DAPM_AIF_OUT("MM_UL18", "MultiMedia18 Capture", 0, 0, 0, 0),
18665 SND_SOC_DAPM_AIF_OUT("MM_UL19", "MultiMedia19 Capture", 0, 0, 0, 0),
18666 SND_SOC_DAPM_AIF_OUT("MM_UL20", "MultiMedia20 Capture", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070018667 SND_SOC_DAPM_AIF_OUT("MM_UL21", "MultiMedia21 Capture", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053018668 SND_SOC_DAPM_AIF_OUT("MM_UL27", "MultiMedia27 Capture", 0, 0, 0, 0),
Meng Wang5c4bab72018-04-25 10:40:01 +080018669 SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
18670 SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018671 SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
18672 SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
18673 "VoiceMMode1 Playback", 0, 0, 0, 0),
18674 SND_SOC_DAPM_AIF_OUT("VOICEMMODE1_UL",
18675 "VoiceMMode1 Capture", 0, 0, 0, 0),
18676 SND_SOC_DAPM_AIF_IN("VOICEMMODE2_DL",
18677 "VoiceMMode2 Playback", 0, 0, 0, 0),
18678 SND_SOC_DAPM_AIF_OUT("VOICEMMODE2_UL",
18679 "VoiceMMode2 Capture", 0, 0, 0, 0),
18680 SND_SOC_DAPM_AIF_IN("SLIM0_DL_HL", "SLIMBUS0_HOSTLESS Playback",
18681 0, 0, 0, 0),
18682 SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
18683 0, 0, 0, 0),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053018684 SND_SOC_DAPM_AIF_IN("CDC_DMA_DL_HL", "CDC_DMA_HOSTLESS Playback",
18685 0, 0, 0, 0),
18686 SND_SOC_DAPM_AIF_OUT("CDC_DMA_UL_HL", "CDC_DMA_HOSTLESS Capture",
18687 0, 0, 0, 0),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053018688 SND_SOC_DAPM_AIF_OUT("TX3_CDC_DMA_UL_HL",
18689 "TX3_CDC_DMA_HOSTLESS Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018690 SND_SOC_DAPM_AIF_OUT("CPE_LSM_UL_HL", "CPE LSM capture",
18691 0, 0, 0, 0),
18692 SND_SOC_DAPM_AIF_IN("SLIM1_DL_HL", "SLIMBUS1_HOSTLESS Playback",
18693 0, 0, 0, 0),
18694 SND_SOC_DAPM_AIF_OUT("SLIM1_UL_HL", "SLIMBUS1_HOSTLESS Capture",
18695 0, 0, 0, 0),
18696 SND_SOC_DAPM_AIF_IN("SLIM3_DL_HL", "SLIMBUS3_HOSTLESS Playback",
18697 0, 0, 0, 0),
18698 SND_SOC_DAPM_AIF_OUT("SLIM3_UL_HL", "SLIMBUS3_HOSTLESS Capture",
18699 0, 0, 0, 0),
18700 SND_SOC_DAPM_AIF_IN("SLIM4_DL_HL", "SLIMBUS4_HOSTLESS Playback",
18701 0, 0, 0, 0),
18702 SND_SOC_DAPM_AIF_OUT("SLIM4_UL_HL", "SLIMBUS4_HOSTLESS Capture",
18703 0, 0, 0, 0),
18704 SND_SOC_DAPM_AIF_IN("SLIM6_DL_HL", "SLIMBUS6_HOSTLESS Playback",
18705 0, 0, 0, 0),
18706 SND_SOC_DAPM_AIF_OUT("SLIM6_UL_HL", "SLIMBUS6_HOSTLESS Capture",
18707 0, 0, 0, 0),
18708 SND_SOC_DAPM_AIF_IN("SLIM7_DL_HL", "SLIMBUS7_HOSTLESS Playback",
18709 0, 0, 0, 0),
18710 SND_SOC_DAPM_AIF_OUT("SLIM7_UL_HL", "SLIMBUS7_HOSTLESS Capture",
18711 0, 0, 0, 0),
18712 SND_SOC_DAPM_AIF_IN("SLIM8_DL_HL", "SLIMBUS8_HOSTLESS Playback",
18713 0, 0, 0, 0),
18714 SND_SOC_DAPM_AIF_OUT("SLIM8_UL_HL", "SLIMBUS8_HOSTLESS Capture",
18715 0, 0, 0, 0),
18716 SND_SOC_DAPM_AIF_IN("INTFM_DL_HL", "INT_FM_HOSTLESS Playback",
18717 0, 0, 0, 0),
18718 SND_SOC_DAPM_AIF_OUT("INTFM_UL_HL", "INT_FM_HOSTLESS Capture",
18719 0, 0, 0, 0),
18720 SND_SOC_DAPM_AIF_IN("INTHFP_DL_HL", "INT_HFP_BT_HOSTLESS Playback",
18721 0, 0, 0, 0),
18722 SND_SOC_DAPM_AIF_OUT("INTHFP_UL_HL", "INT_HFP_BT_HOSTLESS Capture",
18723 0, 0, 0, 0),
18724 SND_SOC_DAPM_AIF_IN("USBAUDIO_DL_HL", "USBAUDIO_HOSTLESS Playback",
18725 0, 0, 0, 0),
18726 SND_SOC_DAPM_AIF_OUT("USBAUDIO_UL_HL", "USBAUDIO_HOSTLESS Capture",
18727 0, 0, 0, 0),
18728 SND_SOC_DAPM_AIF_IN("HDMI_DL_HL", "HDMI_HOSTLESS Playback", 0, 0, 0, 0),
18729 SND_SOC_DAPM_AIF_IN("SEC_I2S_DL_HL", "SEC_I2S_RX_HOSTLESS Playback",
18730 0, 0, 0, 0),
18731 SND_SOC_DAPM_AIF_IN("INT0_MI2S_DL_HL",
18732 "INT0 MI2S_RX Hostless Playback",
18733 0, 0, 0, 0),
18734 SND_SOC_DAPM_AIF_IN("INT4_MI2S_DL_HL",
18735 "INT4 MI2S_RX Hostless Playback",
18736 0, 0, 0, 0),
18737 SND_SOC_DAPM_AIF_IN("PRI_MI2S_DL_HL",
18738 "Primary MI2S_RX Hostless Playback",
18739 0, 0, 0, 0),
18740 SND_SOC_DAPM_AIF_IN("SEC_MI2S_DL_HL",
18741 "Secondary MI2S_RX Hostless Playback",
18742 0, 0, 0, 0),
18743 SND_SOC_DAPM_AIF_IN("TERT_MI2S_DL_HL",
18744 "Tertiary MI2S_RX Hostless Playback",
18745 0, 0, 0, 0),
18746 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_DL_HL",
18747 "Quaternary MI2S_RX Hostless Playback",
18748 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018749 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_DL_HL",
18750 "Quinary MI2S_RX Hostless Playback",
18751 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018752
18753 SND_SOC_DAPM_AIF_IN("AUXPCM_DL_HL", "AUXPCM_HOSTLESS Playback",
18754 0, 0, 0, 0),
18755 SND_SOC_DAPM_AIF_OUT("AUXPCM_UL_HL", "AUXPCM_HOSTLESS Capture",
18756 0, 0, 0, 0),
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080018757 SND_SOC_DAPM_AIF_IN("SEC_AUXPCM_DL_HL", "SEC_AUXPCM_HOSTLESS Playback",
18758 0, 0, 0, 0),
18759 SND_SOC_DAPM_AIF_OUT("SEC_AUXPCM_UL_HL", "SEC_AUXPCM_HOSTLESS Capture",
18760 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018761 SND_SOC_DAPM_AIF_OUT("MI2S_UL_HL", "MI2S_TX_HOSTLESS Capture",
18762 0, 0, 0, 0),
18763 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_UL_HL",
18764 "INT3 MI2S_TX Hostless Capture",
18765 0, 0, 0, 0),
18766 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_UL_HL",
18767 "Tertiary MI2S_TX Hostless Capture",
18768 0, 0, 0, 0),
18769 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_UL_HL",
18770 "Secondary MI2S_TX Hostless Capture",
18771 0, 0, 0, 0),
18772 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_UL_HL",
18773 "Primary MI2S_TX Hostless Capture",
18774 0, 0, 0, 0),
18775 SND_SOC_DAPM_AIF_OUT("MI2S_DL_HL", "MI2S_RX_HOSTLESS Playback",
18776 0, 0, 0, 0),
18777 SND_SOC_DAPM_AIF_IN("DTMF_DL_HL", "DTMF_RX_HOSTLESS Playback",
18778 0, 0, 0, 0),
18779 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_UL_HL",
18780 "Quaternary MI2S_TX Hostless Capture",
18781 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018782 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_UL_HL",
18783 "Quinary MI2S_TX Hostless Capture",
18784 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018785
18786 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_0_DL_HL",
18787 "Primary TDM0 Hostless Playback",
18788 0, 0, 0, 0),
18789 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_0_UL_HL",
18790 "Primary TDM0 Hostless Capture",
18791 0, 0, 0, 0),
18792 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_1_DL_HL",
18793 "Primary TDM1 Hostless Playback",
18794 0, 0, 0, 0),
18795 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_1_UL_HL",
18796 "Primary TDM1 Hostless Capture",
18797 0, 0, 0, 0),
18798 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_2_DL_HL",
18799 "Primary TDM2 Hostless Playback",
18800 0, 0, 0, 0),
18801 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_2_UL_HL",
18802 "Primary TDM2 Hostless Capture",
18803 0, 0, 0, 0),
18804 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_3_DL_HL",
18805 "Primary TDM3 Hostless Playback",
18806 0, 0, 0, 0),
18807 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_3_UL_HL",
18808 "Primary TDM3 Hostless Capture",
18809 0, 0, 0, 0),
18810 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_4_DL_HL",
18811 "Primary TDM4 Hostless Playback",
18812 0, 0, 0, 0),
18813 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_4_UL_HL",
18814 "Primary TDM4 Hostless Capture",
18815 0, 0, 0, 0),
18816 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_5_DL_HL",
18817 "Primary TDM5 Hostless Playback",
18818 0, 0, 0, 0),
18819 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_5_UL_HL",
18820 "Primary TDM5 Hostless Capture",
18821 0, 0, 0, 0),
18822 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_6_DL_HL",
18823 "Primary TDM6 Hostless Playback",
18824 0, 0, 0, 0),
18825 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_6_UL_HL",
18826 "Primary TDM6 Hostless Capture",
18827 0, 0, 0, 0),
18828 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_7_DL_HL",
18829 "Primary TDM7 Hostless Playback",
18830 0, 0, 0, 0),
18831 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_7_UL_HL",
18832 "Primary TDM7 Hostless Capture",
18833 0, 0, 0, 0),
18834 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_0_DL_HL",
18835 "Secondary TDM0 Hostless Playback",
18836 0, 0, 0, 0),
18837 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_0_UL_HL",
18838 "Secondary TDM0 Hostless Capture",
18839 0, 0, 0, 0),
18840 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_1_DL_HL",
18841 "Secondary TDM1 Hostless Playback",
18842 0, 0, 0, 0),
18843 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_1_UL_HL",
18844 "Secondary TDM1 Hostless Capture",
18845 0, 0, 0, 0),
18846 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_2_DL_HL",
18847 "Secondary TDM2 Hostless Playback",
18848 0, 0, 0, 0),
18849 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_2_UL_HL",
18850 "Secondary TDM2 Hostless Capture",
18851 0, 0, 0, 0),
18852 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_3_DL_HL",
18853 "Secondary TDM3 Hostless Playback",
18854 0, 0, 0, 0),
18855 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_3_UL_HL",
18856 "Secondary TDM3 Hostless Capture",
18857 0, 0, 0, 0),
18858 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_4_DL_HL",
18859 "Secondary TDM4 Hostless Playback",
18860 0, 0, 0, 0),
18861 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_4_UL_HL",
18862 "Secondary TDM4 Hostless Capture",
18863 0, 0, 0, 0),
18864 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_5_DL_HL",
18865 "Secondary TDM5 Hostless Playback",
18866 0, 0, 0, 0),
18867 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_5_UL_HL",
18868 "Secondary TDM5 Hostless Capture",
18869 0, 0, 0, 0),
18870 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_6_DL_HL",
18871 "Secondary TDM6 Hostless Playback",
18872 0, 0, 0, 0),
18873 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_6_UL_HL",
18874 "Secondary TDM6 Hostless Capture",
18875 0, 0, 0, 0),
18876 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_7_DL_HL",
18877 "Secondary TDM7 Hostless Playback",
18878 0, 0, 0, 0),
18879 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_7_UL_HL",
18880 "Secondary TDM7 Hostless Capture",
18881 0, 0, 0, 0),
18882 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_0_DL_HL",
18883 "Tertiary TDM0 Hostless Playback",
18884 0, 0, 0, 0),
18885 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_0_UL_HL",
18886 "Tertiary TDM0 Hostless Capture",
18887 0, 0, 0, 0),
18888 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_1_DL_HL",
18889 "Tertiary TDM1 Hostless Playback",
18890 0, 0, 0, 0),
18891 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_1_UL_HL",
18892 "Tertiary TDM1 Hostless Capture",
18893 0, 0, 0, 0),
18894 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_2_DL_HL",
18895 "Tertiary TDM2 Hostless Playback",
18896 0, 0, 0, 0),
18897 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_2_UL_HL",
18898 "Tertiary TDM2 Hostless Capture",
18899 0, 0, 0, 0),
18900 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_3_DL_HL",
18901 "Tertiary TDM3 Hostless Playback",
18902 0, 0, 0, 0),
18903 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_3_UL_HL",
18904 "Tertiary TDM3 Hostless Capture",
18905 0, 0, 0, 0),
18906 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_4_DL_HL",
18907 "Tertiary TDM4 Hostless Playback",
18908 0, 0, 0, 0),
18909 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_4_UL_HL",
18910 "Tertiary TDM4 Hostless Capture",
18911 0, 0, 0, 0),
18912 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_5_DL_HL",
18913 "Tertiary TDM5 Hostless Playback",
18914 0, 0, 0, 0),
18915 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_5_UL_HL",
18916 "Tertiary TDM5 Hostless Capture",
18917 0, 0, 0, 0),
18918 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_6_DL_HL",
18919 "Tertiary TDM6 Hostless Playback",
18920 0, 0, 0, 0),
18921 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_6_UL_HL",
18922 "Tertiary TDM6 Hostless Capture",
18923 0, 0, 0, 0),
18924 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_7_DL_HL",
18925 "Tertiary TDM7 Hostless Playback",
18926 0, 0, 0, 0),
18927 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_7_UL_HL",
18928 "Tertiary TDM7 Hostless Capture",
18929 0, 0, 0, 0),
18930 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_0_DL_HL",
18931 "Quaternary TDM0 Hostless Playback",
18932 0, 0, 0, 0),
18933 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_0_UL_HL",
18934 "Quaternary TDM0 Hostless Capture",
18935 0, 0, 0, 0),
18936 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_1_DL_HL",
18937 "Quaternary TDM1 Hostless Playback",
18938 0, 0, 0, 0),
18939 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_1_UL_HL",
18940 "Quaternary TDM1 Hostless Capture",
18941 0, 0, 0, 0),
18942 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_2_DL_HL",
18943 "Quaternary TDM2 Hostless Playback",
18944 0, 0, 0, 0),
18945 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_2_UL_HL",
18946 "Quaternary TDM2 Hostless Capture",
18947 0, 0, 0, 0),
18948 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_3_DL_HL",
18949 "Quaternary TDM3 Hostless Playback",
18950 0, 0, 0, 0),
18951 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_3_UL_HL",
18952 "Quaternary TDM3 Hostless Capture",
18953 0, 0, 0, 0),
18954 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_4_DL_HL",
18955 "Quaternary TDM4 Hostless Playback",
18956 0, 0, 0, 0),
18957 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_4_UL_HL",
18958 "Quaternary TDM4 Hostless Capture",
18959 0, 0, 0, 0),
18960 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_5_DL_HL",
18961 "Quaternary TDM5 Hostless Playback",
18962 0, 0, 0, 0),
18963 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_5_UL_HL",
18964 "Quaternary TDM5 Hostless Capture",
18965 0, 0, 0, 0),
18966 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_6_DL_HL",
18967 "Quaternary TDM6 Hostless Playback",
18968 0, 0, 0, 0),
18969 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_6_UL_HL",
18970 "Quaternary TDM6 Hostless Capture",
18971 0, 0, 0, 0),
18972 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_7_DL_HL",
18973 "Quaternary TDM7 Hostless Playback",
18974 0, 0, 0, 0),
18975 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_7_UL_HL",
18976 "Quaternary TDM7 Hostless Capture",
18977 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018978 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_0_DL_HL",
18979 "Quinary TDM0 Hostless Playback",
18980 0, 0, 0, 0),
18981 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_0_UL_HL",
18982 "Quinary TDM0 Hostless Capture",
18983 0, 0, 0, 0),
18984 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_1_DL_HL",
18985 "Quinary TDM1 Hostless Playback",
18986 0, 0, 0, 0),
18987 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_1_UL_HL",
18988 "Quinary TDM1 Hostless Capture",
18989 0, 0, 0, 0),
18990 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_2_DL_HL",
18991 "Quinary TDM2 Hostless Playback",
18992 0, 0, 0, 0),
18993 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_2_UL_HL",
18994 "Quinary TDM2 Hostless Capture",
18995 0, 0, 0, 0),
18996 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_3_DL_HL",
18997 "Quinary TDM3 Hostless Playback",
18998 0, 0, 0, 0),
18999 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_3_UL_HL",
19000 "Quinary TDM3 Hostless Capture",
19001 0, 0, 0, 0),
19002 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_4_DL_HL",
19003 "Quinary TDM4 Hostless Playback",
19004 0, 0, 0, 0),
19005 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_4_UL_HL",
19006 "Quinary TDM4 Hostless Capture",
19007 0, 0, 0, 0),
19008 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_5_DL_HL",
19009 "Quinary TDM5 Hostless Playback",
19010 0, 0, 0, 0),
19011 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_5_UL_HL",
19012 "Quinary TDM5 Hostless Capture",
19013 0, 0, 0, 0),
19014 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_6_DL_HL",
19015 "Quinary TDM6 Hostless Playback",
19016 0, 0, 0, 0),
19017 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_6_UL_HL",
19018 "Quinary TDM6 Hostless Capture",
19019 0, 0, 0, 0),
19020 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_7_DL_HL",
19021 "Quinary TDM7 Hostless Playback",
19022 0, 0, 0, 0),
19023 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_7_UL_HL",
19024 "Quinary TDM7 Hostless Capture",
19025 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019026
19027 /* LSM */
19028 SND_SOC_DAPM_AIF_OUT("LSM1_UL_HL", "Listen 1 Audio Service Capture",
19029 0, 0, 0, 0),
19030 SND_SOC_DAPM_AIF_OUT("LSM2_UL_HL", "Listen 2 Audio Service Capture",
19031 0, 0, 0, 0),
19032 SND_SOC_DAPM_AIF_OUT("LSM3_UL_HL", "Listen 3 Audio Service Capture",
19033 0, 0, 0, 0),
19034 SND_SOC_DAPM_AIF_OUT("LSM4_UL_HL", "Listen 4 Audio Service Capture",
19035 0, 0, 0, 0),
19036 SND_SOC_DAPM_AIF_OUT("LSM5_UL_HL", "Listen 5 Audio Service Capture",
19037 0, 0, 0, 0),
19038 SND_SOC_DAPM_AIF_OUT("LSM6_UL_HL", "Listen 6 Audio Service Capture",
19039 0, 0, 0, 0),
19040 SND_SOC_DAPM_AIF_OUT("LSM7_UL_HL", "Listen 7 Audio Service Capture",
19041 0, 0, 0, 0),
19042 SND_SOC_DAPM_AIF_OUT("LSM8_UL_HL", "Listen 8 Audio Service Capture",
19043 0, 0, 0, 0),
19044 SND_SOC_DAPM_AIF_IN("QCHAT_DL", "QCHAT Playback", 0, 0, 0, 0),
19045 SND_SOC_DAPM_AIF_OUT("QCHAT_UL", "QCHAT Capture", 0, 0, 0, 0),
19046 /* Backend AIF */
19047 /* Stream name equals to backend dai link stream name */
19048 SND_SOC_DAPM_AIF_OUT("PRI_I2S_RX", "Primary I2S Playback", 0, 0, 0, 0),
19049 SND_SOC_DAPM_AIF_OUT("SEC_I2S_RX", "Secondary I2S Playback",
19050 0, 0, 0, 0),
Ralf Herzc8701f72018-06-20 11:37:35 +020019051 SND_SOC_DAPM_AIF_OUT("PRI_SPDIF_RX", "Primary SPDIF Playback",
19052 0, 0, 0, 0),
19053 SND_SOC_DAPM_AIF_IN("PRI_SPDIF_TX", "Primary SPDIF Capture",
19054 0, 0, 0, 0),
19055 SND_SOC_DAPM_AIF_OUT("SEC_SPDIF_RX", "Secondary SPDIF Playback",
19056 0, 0, 0, 0),
19057 SND_SOC_DAPM_AIF_IN("SEC_SPDIF_TX", "Secondary SPDIF Capture",
19058 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019059 SND_SOC_DAPM_AIF_OUT("SLIMBUS_0_RX", "Slimbus Playback", 0, 0, 0, 0),
19060 SND_SOC_DAPM_AIF_OUT("SLIMBUS_2_RX", "Slimbus2 Playback", 0, 0, 0, 0),
19061 SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_RX", "Slimbus5 Playback", 0, 0, 0, 0),
19062 SND_SOC_DAPM_AIF_OUT("HDMI", "HDMI Playback", 0, 0, 0, 0),
19063 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT", "Display Port Playback",
19064 0, 0, 0, 0),
Karthikeyan Mani57550082018-05-03 18:43:58 -070019065 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT1", "Display Port1 Playback",
19066 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019067 SND_SOC_DAPM_AIF_OUT("MI2S_RX", "MI2S Playback", 0, 0, 0, 0),
19068 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_RX", "Quaternary MI2S Playback",
19069 0, 0, 0, 0),
19070 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_RX", "Tertiary MI2S Playback",
19071 0, 0, 0, 0),
19072 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX", "Secondary MI2S Playback",
19073 0, 0, 0, 0),
19074 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX_SD1",
19075 "Secondary MI2S Playback SD1",
19076 0, 0, 0, 0),
19077 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_RX", "Primary MI2S Playback",
19078 0, 0, 0, 0),
19079 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_RX", "INT0 MI2S Playback",
19080 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053019081 SND_SOC_DAPM_AIF_OUT("INT2_MI2S_RX", "INT2 MI2S Playback",
19082 0, 0, 0, 0),
19083 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_RX", "INT3 MI2S Playback",
19084 0, 0, 0, 0),
19085 SND_SOC_DAPM_AIF_OUT("INT5_MI2S_RX", "INT5 MI2S Playback",
19086 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019087 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_RX", "INT4 MI2S Playback",
19088 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053019089 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_TX", "INT4 MI2S Capture",
19090 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019091 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_RX", "Quinary MI2S Playback",
19092 0, 0, 0, 0),
19093 SND_SOC_DAPM_AIF_IN("PRI_I2S_TX", "Primary I2S Capture", 0, 0, 0, 0),
19094 SND_SOC_DAPM_AIF_IN("MI2S_TX", "MI2S Capture", 0, 0, 0, 0),
19095 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_TX", "Quaternary MI2S Capture",
19096 0, 0, 0, 0),
19097 SND_SOC_DAPM_AIF_IN("PRI_MI2S_TX", "Primary MI2S Capture",
19098 0, 0, 0, 0),
19099 SND_SOC_DAPM_AIF_IN("TERT_MI2S_TX", "Tertiary MI2S Capture",
19100 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053019101 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_TX", "INT0 MI2S Capture",
19102 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019103 SND_SOC_DAPM_AIF_IN("INT2_MI2S_TX", "INT2 MI2S Capture",
19104 0, 0, 0, 0),
19105 SND_SOC_DAPM_AIF_IN("INT3_MI2S_TX", "INT3 MI2S Capture",
19106 0, 0, 0, 0),
19107 SND_SOC_DAPM_AIF_IN("SEC_MI2S_TX", "Secondary MI2S Capture",
19108 0, 0, 0, 0),
19109 SND_SOC_DAPM_AIF_IN("SLIMBUS_0_TX", "Slimbus Capture", 0, 0, 0, 0),
19110 SND_SOC_DAPM_AIF_IN("SLIMBUS_2_TX", "Slimbus2 Capture", 0, 0, 0, 0),
19111 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_TX", "Quinary MI2S Capture",
19112 0, 0, 0, 0),
19113 SND_SOC_DAPM_AIF_IN("SENARY_MI2S_TX", "Senary MI2S Capture",
19114 0, 0, 0, 0),
19115 SND_SOC_DAPM_AIF_OUT("INT_BT_SCO_RX", "Internal BT-SCO Playback",
19116 0, 0, 0, 0),
19117 SND_SOC_DAPM_AIF_IN("INT_BT_SCO_TX", "Internal BT-SCO Capture",
19118 0, 0, 0, 0),
19119 SND_SOC_DAPM_AIF_OUT("INT_BT_A2DP_RX", "Internal BT-A2DP Playback",
19120 0, 0, 0, 0),
19121 SND_SOC_DAPM_AIF_OUT("INT_FM_RX", "Internal FM Playback",
19122 0, 0, 0, 0),
19123 SND_SOC_DAPM_AIF_IN("INT_FM_TX", "Internal FM Capture",
19124 0, 0, 0, 0),
19125 SND_SOC_DAPM_AIF_OUT("PCM_RX", "AFE Playback",
19126 0, 0, 0, 0),
19127 SND_SOC_DAPM_AIF_IN("PCM_TX", "AFE Capture",
19128 0, 0, 0, 0),
19129 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_0", "Primary TDM0 Playback",
19130 0, 0, 0, 0),
19131 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_0", "Primary TDM0 Capture",
19132 0, 0, 0, 0),
19133 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_1", "Primary TDM1 Playback",
19134 0, 0, 0, 0),
19135 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_1", "Primary TDM1 Capture",
19136 0, 0, 0, 0),
19137 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_2", "Primary TDM2 Playback",
19138 0, 0, 0, 0),
19139 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_2", "Primary TDM2 Capture",
19140 0, 0, 0, 0),
19141 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_3", "Primary TDM3 Playback",
19142 0, 0, 0, 0),
19143 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_3", "Primary TDM3 Capture",
19144 0, 0, 0, 0),
19145 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_4", "Primary TDM4 Playback",
19146 0, 0, 0, 0),
19147 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_4", "Primary TDM4 Capture",
19148 0, 0, 0, 0),
19149 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_5", "Primary TDM5 Playback",
19150 0, 0, 0, 0),
19151 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_5", "Primary TDM5 Capture",
19152 0, 0, 0, 0),
19153 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_6", "Primary TDM6 Playback",
19154 0, 0, 0, 0),
19155 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_6", "Primary TDM6 Capture",
19156 0, 0, 0, 0),
19157 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_7", "Primary TDM7 Playback",
19158 0, 0, 0, 0),
19159 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_7", "Primary TDM7 Capture",
19160 0, 0, 0, 0),
19161 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_0", "Secondary TDM0 Playback",
19162 0, 0, 0, 0),
19163 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_0", "Secondary TDM0 Capture",
19164 0, 0, 0, 0),
19165 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_1", "Secondary TDM1 Playback",
19166 0, 0, 0, 0),
19167 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_1", "Secondary TDM1 Capture",
19168 0, 0, 0, 0),
19169 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_2", "Secondary TDM2 Playback",
19170 0, 0, 0, 0),
19171 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_2", "Secondary TDM2 Capture",
19172 0, 0, 0, 0),
19173 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_3", "Secondary TDM3 Playback",
19174 0, 0, 0, 0),
19175 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_3", "Secondary TDM3 Capture",
19176 0, 0, 0, 0),
19177 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_4", "Secondary TDM4 Playback",
19178 0, 0, 0, 0),
19179 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_4", "Secondary TDM4 Capture",
19180 0, 0, 0, 0),
19181 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_5", "Secondary TDM5 Playback",
19182 0, 0, 0, 0),
19183 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_5", "Secondary TDM5 Capture",
19184 0, 0, 0, 0),
19185 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_6", "Secondary TDM6 Playback",
19186 0, 0, 0, 0),
19187 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_6", "Secondary TDM6 Capture",
19188 0, 0, 0, 0),
19189 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_7", "Secondary TDM7 Playback",
19190 0, 0, 0, 0),
19191 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_7", "Secondary TDM7 Capture",
19192 0, 0, 0, 0),
19193 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_0", "Tertiary TDM0 Playback",
19194 0, 0, 0, 0),
19195 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_0", "Tertiary TDM0 Capture",
19196 0, 0, 0, 0),
19197 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_1", "Tertiary TDM1 Playback",
19198 0, 0, 0, 0),
19199 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_1", "Tertiary TDM1 Capture",
19200 0, 0, 0, 0),
19201 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_2", "Tertiary TDM2 Playback",
19202 0, 0, 0, 0),
19203 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_2", "Tertiary TDM2 Capture",
19204 0, 0, 0, 0),
19205 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_3", "Tertiary TDM3 Playback",
19206 0, 0, 0, 0),
19207 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_3", "Tertiary TDM3 Capture",
19208 0, 0, 0, 0),
19209 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_4", "Tertiary TDM4 Playback",
19210 0, 0, 0, 0),
19211 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_4", "Tertiary TDM4 Capture",
19212 0, 0, 0, 0),
19213 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_5", "Tertiary TDM5 Playback",
19214 0, 0, 0, 0),
19215 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_5", "Tertiary TDM5 Capture",
19216 0, 0, 0, 0),
19217 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_6", "Tertiary TDM6 Playback",
19218 0, 0, 0, 0),
19219 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_6", "Tertiary TDM6 Capture",
19220 0, 0, 0, 0),
19221 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_7", "Tertiary TDM7 Playback",
19222 0, 0, 0, 0),
19223 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_7", "Tertiary TDM7 Capture",
19224 0, 0, 0, 0),
19225 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_0", "Quaternary TDM0 Playback",
19226 0, 0, 0, 0),
19227 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_0", "Quaternary TDM0 Capture",
19228 0, 0, 0, 0),
19229 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_1", "Quaternary TDM1 Playback",
19230 0, 0, 0, 0),
19231 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_1", "Quaternary TDM1 Capture",
19232 0, 0, 0, 0),
19233 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_2", "Quaternary TDM2 Playback",
19234 0, 0, 0, 0),
19235 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_2", "Quaternary TDM2 Capture",
19236 0, 0, 0, 0),
19237 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_3", "Quaternary TDM3 Playback",
19238 0, 0, 0, 0),
19239 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_3", "Quaternary TDM3 Capture",
19240 0, 0, 0, 0),
19241 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_4", "Quaternary TDM4 Playback",
19242 0, 0, 0, 0),
19243 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_4", "Quaternary TDM4 Capture",
19244 0, 0, 0, 0),
19245 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_5", "Quaternary TDM5 Playback",
19246 0, 0, 0, 0),
19247 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_5", "Quaternary TDM5 Capture",
19248 0, 0, 0, 0),
19249 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_6", "Quaternary TDM6 Playback",
19250 0, 0, 0, 0),
19251 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_6", "Quaternary TDM6 Capture",
19252 0, 0, 0, 0),
19253 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_7", "Quaternary TDM7 Playback",
19254 0, 0, 0, 0),
19255 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_7", "Quaternary TDM7 Capture",
19256 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053019257 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_0", "Quinary TDM0 Playback",
19258 0, 0, 0, 0),
19259 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_0", "Quinary TDM0 Capture",
19260 0, 0, 0, 0),
19261 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_1", "Quinary TDM1 Playback",
19262 0, 0, 0, 0),
19263 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_1", "Quinary TDM1 Capture",
19264 0, 0, 0, 0),
19265 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_2", "Quinary TDM2 Playback",
19266 0, 0, 0, 0),
19267 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_2", "Quinary TDM2 Capture",
19268 0, 0, 0, 0),
19269 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_3", "Quinary TDM3 Playback",
19270 0, 0, 0, 0),
19271 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_3", "Quinary TDM3 Capture",
19272 0, 0, 0, 0),
19273 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_4", "Quinary TDM4 Playback",
19274 0, 0, 0, 0),
19275 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_4", "Quinary TDM4 Capture",
19276 0, 0, 0, 0),
19277 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_5", "Quinary TDM5 Playback",
19278 0, 0, 0, 0),
19279 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_5", "Quinary TDM5 Capture",
19280 0, 0, 0, 0),
19281 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_6", "Quinary TDM6 Playback",
19282 0, 0, 0, 0),
19283 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_6", "Quinary TDM6 Capture",
19284 0, 0, 0, 0),
19285 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_7", "Quinary TDM7 Playback",
19286 0, 0, 0, 0),
19287 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_7", "Quinary TDM7 Capture",
19288 0, 0, 0, 0),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019289 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_0", "WSA CDC DMA0 Playback",
19290 0, 0, 0, 0),
19291 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_0", "WSA CDC DMA0 Capture",
19292 0, 0, 0, 0),
19293 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_1", "WSA CDC DMA1 Playback",
19294 0, 0, 0, 0),
19295 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_1", "WSA CDC DMA1 Capture",
19296 0, 0, 0, 0),
19297 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_2", "WSA CDC DMA2 Capture",
19298 0, 0, 0, 0),
19299 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_0", "VA CDC DMA0 Capture",
19300 0, 0, 0, 0),
19301 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_1", "VA CDC DMA1 Capture",
19302 0, 0, 0, 0),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080019303 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_2", "VA CDC DMA2 Capture",
19304 0, 0, 0, 0),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019305 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_0", "RX CDC DMA0 Playback",
19306 0, 0, 0, 0),
19307 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_0", "TX CDC DMA0 Capture",
19308 0, 0, 0, 0),
19309 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_1", "RX CDC DMA1 Playback",
19310 0, 0, 0, 0),
19311 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_1", "TX CDC DMA1 Capture",
19312 0, 0, 0, 0),
19313 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_2", "RX CDC DMA2 Playback",
19314 0, 0, 0, 0),
19315 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_2", "TX CDC DMA2 Capture",
19316 0, 0, 0, 0),
19317 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_3", "RX CDC DMA3 Playback",
19318 0, 0, 0, 0),
19319 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_3", "TX CDC DMA3 Capture",
19320 0, 0, 0, 0),
19321 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_4", "RX CDC DMA4 Playback",
19322 0, 0, 0, 0),
19323 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_4", "TX CDC DMA4 Capture",
19324 0, 0, 0, 0),
19325 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_5", "RX CDC DMA5 Playback",
19326 0, 0, 0, 0),
19327 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_5", "TX CDC DMA5 Capture",
19328 0, 0, 0, 0),
19329 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_6", "RX CDC DMA6 Playback",
19330 0, 0, 0, 0),
19331 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_7", "RX CDC DMA7 Playback",
19332 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019333 /* incall */
19334 SND_SOC_DAPM_AIF_OUT("VOICE_PLAYBACK_TX", "Voice Farend Playback",
19335 0, 0, 0, 0),
19336 SND_SOC_DAPM_AIF_OUT("VOICE2_PLAYBACK_TX", "Voice2 Farend Playback",
19337 0, 0, 0, 0),
19338 SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_RX", "Slimbus4 Playback",
19339 0, 0, 0, 0),
19340 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_TX", "Voice Uplink Capture",
19341 0, 0, 0, 0),
19342 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_RX", "Voice Downlink Capture",
19343 0, 0, 0, 0),
19344 SND_SOC_DAPM_AIF_IN("SLIMBUS_4_TX", "Slimbus4 Capture",
19345 0, 0, 0, 0),
19346 SND_SOC_DAPM_AIF_IN("SENARY_TX", "Senary_mi2s Capture",
19347 0, 0, 0, 0),
19348 SND_SOC_DAPM_AIF_IN("INT5_MI2S_TX", "INT5 MI2S Capture",
19349 0, 0, 0, 0),
19350 SND_SOC_DAPM_AIF_IN("SLIMBUS_5_TX", "Slimbus5 Capture", 0, 0, 0, 0),
19351
19352 SND_SOC_DAPM_AIF_OUT("AUX_PCM_RX", "AUX PCM Playback", 0, 0, 0, 0),
19353 SND_SOC_DAPM_AIF_IN("AUX_PCM_TX", "AUX PCM Capture", 0, 0, 0, 0),
19354 SND_SOC_DAPM_AIF_OUT("SEC_AUX_PCM_RX", "Sec AUX PCM Playback",
19355 0, 0, 0, 0),
19356 SND_SOC_DAPM_AIF_IN("SEC_AUX_PCM_TX", "Sec AUX PCM Capture",
19357 0, 0, 0, 0),
19358 SND_SOC_DAPM_AIF_OUT("TERT_AUX_PCM_RX", "Tert AUX PCM Playback",
19359 0, 0, 0, 0),
19360 SND_SOC_DAPM_AIF_IN("TERT_AUX_PCM_TX", "Tert AUX PCM Capture",
19361 0, 0, 0, 0),
19362 SND_SOC_DAPM_AIF_OUT("QUAT_AUX_PCM_RX", "Quat AUX PCM Playback",
19363 0, 0, 0, 0),
19364 SND_SOC_DAPM_AIF_IN("QUAT_AUX_PCM_TX", "Quat AUX PCM Capture",
19365 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053019366 SND_SOC_DAPM_AIF_OUT("QUIN_AUX_PCM_RX", "Quin AUX PCM Playback",
19367 0, 0, 0, 0),
19368 SND_SOC_DAPM_AIF_IN("QUIN_AUX_PCM_TX", "Quin AUX PCM Capture",
19369 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019370 SND_SOC_DAPM_AIF_IN("VOICE_STUB_DL", "VOICE_STUB Playback", 0, 0, 0, 0),
19371 SND_SOC_DAPM_AIF_OUT("VOICE_STUB_UL", "VOICE_STUB Capture", 0, 0, 0, 0),
19372 SND_SOC_DAPM_AIF_IN("VOICE2_STUB_DL", "VOICE2_STUB Playback",
19373 0, 0, 0, 0),
19374 SND_SOC_DAPM_AIF_OUT("VOICE2_STUB_UL", "VOICE2_STUB Capture",
19375 0, 0, 0, 0),
19376 SND_SOC_DAPM_AIF_IN("VOLTE_STUB_DL", "VOLTE_STUB Playback", 0, 0, 0, 0),
19377 SND_SOC_DAPM_AIF_OUT("VOLTE_STUB_UL", "VOLTE_STUB Capture", 0, 0, 0, 0),
19378 SND_SOC_DAPM_AIF_OUT("STUB_RX", "Stub Playback", 0, 0, 0, 0),
19379 SND_SOC_DAPM_AIF_IN("STUB_TX", "Stub Capture", 0, 0, 0, 0),
19380 SND_SOC_DAPM_AIF_OUT("SLIMBUS_1_RX", "Slimbus1 Playback", 0, 0, 0, 0),
19381 SND_SOC_DAPM_AIF_IN("SLIMBUS_1_TX", "Slimbus1 Capture", 0, 0, 0, 0),
19382 SND_SOC_DAPM_AIF_IN("STUB_1_TX", "Stub1 Capture", 0, 0, 0, 0),
19383 SND_SOC_DAPM_AIF_OUT("SLIMBUS_3_RX", "Slimbus3 Playback", 0, 0, 0, 0),
19384 SND_SOC_DAPM_AIF_IN("SLIMBUS_3_TX", "Slimbus3 Capture", 0, 0, 0, 0),
19385 /* In- call recording */
19386 SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_RX", "Slimbus6 Playback", 0, 0, 0, 0),
19387 SND_SOC_DAPM_AIF_IN("SLIMBUS_6_TX", "Slimbus6 Capture", 0, 0, 0, 0),
Surendar Karkad47fda42018-05-20 19:21:10 +053019388 SND_SOC_DAPM_AIF_IN("AFE_LOOPBACK_TX", "AFE Loopback Capture",
19389 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019390 SND_SOC_DAPM_AIF_OUT("SLIMBUS_7_RX", "Slimbus7 Playback", 0, 0, 0, 0),
19391 SND_SOC_DAPM_AIF_IN("SLIMBUS_7_TX", "Slimbus7 Capture", 0, 0, 0, 0),
19392
19393 SND_SOC_DAPM_AIF_OUT("SLIMBUS_8_RX", "Slimbus8 Playback", 0, 0, 0, 0),
19394 SND_SOC_DAPM_AIF_IN("SLIMBUS_8_TX", "Slimbus8 Capture", 0, 0, 0, 0),
Surendar Karka3ef3d812018-09-28 18:52:35 +053019395 SND_SOC_DAPM_AIF_OUT("SLIMBUS_9_RX", "Slimbus9 Playback", 0, 0, 0, 0),
19396 SND_SOC_DAPM_AIF_IN("SLIMBUS_9_TX", "Slimbus9 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019397 SND_SOC_DAPM_AIF_OUT("USB_AUDIO_RX", "USB Audio Playback", 0, 0, 0, 0),
19398 SND_SOC_DAPM_AIF_IN("USB_AUDIO_TX", "USB Audio Capture", 0, 0, 0, 0),
19399
19400 /* Switch Definitions */
19401 SND_SOC_DAPM_SWITCH("SLIMBUS_DL_HL", SND_SOC_NOPM, 0, 0,
19402 &slim_fm_switch_mixer_controls),
19403 SND_SOC_DAPM_SWITCH("SLIMBUS1_DL_HL", SND_SOC_NOPM, 0, 0,
19404 &slim1_fm_switch_mixer_controls),
19405 SND_SOC_DAPM_SWITCH("SLIMBUS3_DL_HL", SND_SOC_NOPM, 0, 0,
19406 &slim3_fm_switch_mixer_controls),
19407 SND_SOC_DAPM_SWITCH("SLIMBUS4_DL_HL", SND_SOC_NOPM, 0, 0,
19408 &slim4_fm_switch_mixer_controls),
19409 SND_SOC_DAPM_SWITCH("SLIMBUS6_DL_HL", SND_SOC_NOPM, 0, 0,
19410 &slim6_fm_switch_mixer_controls),
19411 SND_SOC_DAPM_SWITCH("PCM_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19412 &pcm_rx_switch_mixer_controls),
19413 SND_SOC_DAPM_SWITCH("INT0_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19414 &int0_mi2s_rx_switch_mixer_controls),
19415 SND_SOC_DAPM_SWITCH("INT4_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19416 &int4_mi2s_rx_switch_mixer_controls),
19417 SND_SOC_DAPM_SWITCH("PRI_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19418 &pri_mi2s_rx_switch_mixer_controls),
19419 SND_SOC_DAPM_SWITCH("SEC_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19420 &sec_mi2s_rx_switch_mixer_controls),
19421 SND_SOC_DAPM_SWITCH("TERT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19422 &tert_mi2s_rx_switch_mixer_controls),
19423 SND_SOC_DAPM_SWITCH("QUAT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19424 &quat_mi2s_rx_switch_mixer_controls),
Rohit Kumara5077932017-09-10 22:05:05 +053019425 SND_SOC_DAPM_SWITCH("QUIN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19426 &quin_mi2s_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019427 SND_SOC_DAPM_SWITCH("HFP_PRI_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
19428 &hfp_pri_aux_switch_mixer_controls),
19429 SND_SOC_DAPM_SWITCH("HFP_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
19430 &hfp_aux_switch_mixer_controls),
19431 SND_SOC_DAPM_SWITCH("HFP_INT_UL_HL", SND_SOC_NOPM, 0, 0,
19432 &hfp_int_switch_mixer_controls),
19433 SND_SOC_DAPM_SWITCH("HFP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
19434 &hfp_slim7_switch_mixer_controls),
19435 SND_SOC_DAPM_SWITCH("USB_DL_HL", SND_SOC_NOPM, 0, 0,
19436 &usb_switch_mixer_controls),
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080019437 SND_SOC_DAPM_SWITCH("A2DP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
19438 &a2dp_slim7_switch_mixer_controls),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053019439 SND_SOC_DAPM_SWITCH("WSA_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053019440 &cdc_dma_wsa_switch_mixer_controls),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053019441 SND_SOC_DAPM_SWITCH("RX_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053019442 &cdc_dma_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019443
19444 /* Mixer definitions */
19445 SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19446 pri_i2s_rx_mixer_controls, ARRAY_SIZE(pri_i2s_rx_mixer_controls)),
19447 SND_SOC_DAPM_MIXER("SEC_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19448 sec_i2s_rx_mixer_controls, ARRAY_SIZE(sec_i2s_rx_mixer_controls)),
19449 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19450 slimbus_rx_mixer_controls, ARRAY_SIZE(slimbus_rx_mixer_controls)),
19451 SND_SOC_DAPM_MIXER("SLIMBUS_2_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19452 slimbus_2_rx_mixer_controls, ARRAY_SIZE(slimbus_2_rx_mixer_controls)),
19453 SND_SOC_DAPM_MIXER("SLIMBUS_5_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19454 slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
19455 SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19456 slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
Surendar Karka3ef3d812018-09-28 18:52:35 +053019457 SND_SOC_DAPM_MIXER("SLIMBUS_9_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19458 slimbus_9_rx_mixer_controls, ARRAY_SIZE(slimbus_9_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019459 SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
19460 hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
19461 SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
19462 display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070019463 SND_SOC_DAPM_MIXER("DISPLAY_PORT1 Mixer", SND_SOC_NOPM, 0, 0,
19464 display_port1_mixer_controls, ARRAY_SIZE(display_port1_mixer_controls)),
Ralf Herzc8701f72018-06-20 11:37:35 +020019465 SND_SOC_DAPM_MIXER("PRI_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19466 pri_spdif_rx_mixer_controls, ARRAY_SIZE(pri_spdif_rx_mixer_controls)),
19467 SND_SOC_DAPM_MIXER("SEC_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19468 sec_spdif_rx_mixer_controls, ARRAY_SIZE(sec_spdif_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019469 SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19470 mi2s_rx_mixer_controls, ARRAY_SIZE(mi2s_rx_mixer_controls)),
19471 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19472 quaternary_mi2s_rx_mixer_controls,
19473 ARRAY_SIZE(quaternary_mi2s_rx_mixer_controls)),
19474 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19475 tertiary_mi2s_rx_mixer_controls,
19476 ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
19477 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19478 secondary_mi2s_rx_mixer_controls,
19479 ARRAY_SIZE(secondary_mi2s_rx_mixer_controls)),
19480 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_SD1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19481 secondary_mi2s_rx2_mixer_controls,
19482 ARRAY_SIZE(secondary_mi2s_rx2_mixer_controls)),
19483 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19484 primary_mi2s_rx_mixer_controls,
19485 ARRAY_SIZE(primary_mi2s_rx_mixer_controls)),
19486 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19487 int0_mi2s_rx_mixer_controls,
19488 ARRAY_SIZE(int0_mi2s_rx_mixer_controls)),
19489 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19490 int4_mi2s_rx_mixer_controls,
19491 ARRAY_SIZE(int4_mi2s_rx_mixer_controls)),
19492 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19493 quinary_mi2s_rx_mixer_controls,
19494 ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
19495 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19496 pri_tdm_rx_0_mixer_controls,
19497 ARRAY_SIZE(pri_tdm_rx_0_mixer_controls)),
19498 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19499 pri_tdm_rx_1_mixer_controls,
19500 ARRAY_SIZE(pri_tdm_rx_1_mixer_controls)),
19501 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19502 pri_tdm_rx_2_mixer_controls,
19503 ARRAY_SIZE(pri_tdm_rx_2_mixer_controls)),
19504 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19505 pri_tdm_rx_3_mixer_controls,
19506 ARRAY_SIZE(pri_tdm_rx_3_mixer_controls)),
19507 SND_SOC_DAPM_MIXER("PRI_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19508 pri_tdm_tx_0_mixer_controls,
19509 ARRAY_SIZE(pri_tdm_tx_0_mixer_controls)),
19510 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19511 sec_tdm_rx_0_mixer_controls,
19512 ARRAY_SIZE(sec_tdm_rx_0_mixer_controls)),
19513 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19514 sec_tdm_rx_1_mixer_controls,
19515 ARRAY_SIZE(sec_tdm_rx_1_mixer_controls)),
19516 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19517 sec_tdm_rx_2_mixer_controls,
19518 ARRAY_SIZE(sec_tdm_rx_2_mixer_controls)),
19519 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19520 sec_tdm_rx_3_mixer_controls,
19521 ARRAY_SIZE(sec_tdm_rx_3_mixer_controls)),
19522 SND_SOC_DAPM_MIXER("SEC_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19523 sec_tdm_tx_0_mixer_controls,
19524 ARRAY_SIZE(sec_tdm_tx_0_mixer_controls)),
19525 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19526 tert_tdm_rx_0_mixer_controls,
19527 ARRAY_SIZE(tert_tdm_rx_0_mixer_controls)),
19528 SND_SOC_DAPM_MIXER("TERT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19529 tert_tdm_tx_0_mixer_controls,
19530 ARRAY_SIZE(tert_tdm_tx_0_mixer_controls)),
19531 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19532 tert_tdm_rx_1_mixer_controls,
19533 ARRAY_SIZE(tert_tdm_rx_1_mixer_controls)),
19534 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19535 tert_tdm_rx_2_mixer_controls,
19536 ARRAY_SIZE(tert_tdm_rx_2_mixer_controls)),
19537 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19538 tert_tdm_rx_3_mixer_controls,
19539 ARRAY_SIZE(tert_tdm_rx_3_mixer_controls)),
19540 SND_SOC_DAPM_MIXER("TERT_TDM_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
19541 tert_tdm_rx_4_mixer_controls,
19542 ARRAY_SIZE(tert_tdm_rx_4_mixer_controls)),
19543 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19544 quat_tdm_rx_0_mixer_controls,
19545 ARRAY_SIZE(quat_tdm_rx_0_mixer_controls)),
19546 SND_SOC_DAPM_MIXER("QUAT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19547 quat_tdm_tx_0_mixer_controls,
19548 ARRAY_SIZE(quat_tdm_tx_0_mixer_controls)),
19549 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19550 quat_tdm_rx_1_mixer_controls,
19551 ARRAY_SIZE(quat_tdm_rx_1_mixer_controls)),
19552 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19553 quat_tdm_rx_2_mixer_controls,
19554 ARRAY_SIZE(quat_tdm_rx_2_mixer_controls)),
19555 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19556 quat_tdm_rx_3_mixer_controls,
19557 ARRAY_SIZE(quat_tdm_rx_3_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019558 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19559 quin_tdm_rx_0_mixer_controls,
19560 ARRAY_SIZE(quin_tdm_rx_0_mixer_controls)),
19561 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19562 quin_tdm_tx_0_mixer_controls,
19563 ARRAY_SIZE(quin_tdm_tx_0_mixer_controls)),
19564 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19565 quin_tdm_rx_1_mixer_controls,
19566 ARRAY_SIZE(quin_tdm_rx_1_mixer_controls)),
19567 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19568 quin_tdm_rx_2_mixer_controls,
19569 ARRAY_SIZE(quin_tdm_rx_2_mixer_controls)),
19570 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19571 quin_tdm_rx_3_mixer_controls,
19572 ARRAY_SIZE(quin_tdm_rx_3_mixer_controls)),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019573 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19574 wsa_cdc_dma_rx_0_mixer_controls,
19575 ARRAY_SIZE(wsa_cdc_dma_rx_0_mixer_controls)),
19576 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19577 wsa_cdc_dma_rx_1_mixer_controls,
19578 ARRAY_SIZE(wsa_cdc_dma_rx_1_mixer_controls)),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019579 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19580 rx_cdc_dma_rx_0_mixer_controls,
19581 ARRAY_SIZE(rx_cdc_dma_rx_0_mixer_controls)),
19582 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19583 rx_cdc_dma_rx_1_mixer_controls,
19584 ARRAY_SIZE(rx_cdc_dma_rx_1_mixer_controls)),
19585 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19586 rx_cdc_dma_rx_2_mixer_controls,
19587 ARRAY_SIZE(rx_cdc_dma_rx_2_mixer_controls)),
19588 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19589 rx_cdc_dma_rx_3_mixer_controls,
19590 ARRAY_SIZE(rx_cdc_dma_rx_3_mixer_controls)),
19591 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
19592 rx_cdc_dma_rx_4_mixer_controls,
19593 ARRAY_SIZE(rx_cdc_dma_rx_4_mixer_controls)),
19594 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_5 Audio Mixer", SND_SOC_NOPM, 0, 0,
19595 rx_cdc_dma_rx_5_mixer_controls,
19596 ARRAY_SIZE(rx_cdc_dma_rx_5_mixer_controls)),
19597 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_6 Audio Mixer", SND_SOC_NOPM, 0, 0,
19598 rx_cdc_dma_rx_6_mixer_controls,
19599 ARRAY_SIZE(rx_cdc_dma_rx_6_mixer_controls)),
19600 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_7 Audio Mixer", SND_SOC_NOPM, 0, 0,
19601 rx_cdc_dma_rx_7_mixer_controls,
19602 ARRAY_SIZE(rx_cdc_dma_rx_7_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019603 SND_SOC_DAPM_MIXER("MultiMedia1 Mixer", SND_SOC_NOPM, 0, 0,
19604 mmul1_mixer_controls, ARRAY_SIZE(mmul1_mixer_controls)),
19605 SND_SOC_DAPM_MIXER("MultiMedia2 Mixer", SND_SOC_NOPM, 0, 0,
19606 mmul2_mixer_controls, ARRAY_SIZE(mmul2_mixer_controls)),
19607 SND_SOC_DAPM_MIXER("MultiMedia3 Mixer", SND_SOC_NOPM, 0, 0,
19608 mmul3_mixer_controls, ARRAY_SIZE(mmul3_mixer_controls)),
19609 SND_SOC_DAPM_MIXER("MultiMedia4 Mixer", SND_SOC_NOPM, 0, 0,
19610 mmul4_mixer_controls, ARRAY_SIZE(mmul4_mixer_controls)),
19611 SND_SOC_DAPM_MIXER("MultiMedia5 Mixer", SND_SOC_NOPM, 0, 0,
19612 mmul5_mixer_controls, ARRAY_SIZE(mmul5_mixer_controls)),
19613 SND_SOC_DAPM_MIXER("MultiMedia6 Mixer", SND_SOC_NOPM, 0, 0,
19614 mmul6_mixer_controls, ARRAY_SIZE(mmul6_mixer_controls)),
19615 SND_SOC_DAPM_MIXER("MultiMedia8 Mixer", SND_SOC_NOPM, 0, 0,
19616 mmul8_mixer_controls, ARRAY_SIZE(mmul8_mixer_controls)),
19617 SND_SOC_DAPM_MIXER("MultiMedia9 Mixer", SND_SOC_NOPM, 0, 0,
19618 mmul9_mixer_controls, ARRAY_SIZE(mmul9_mixer_controls)),
Laxminath Kasam38070be2017-08-17 18:21:59 +053019619 SND_SOC_DAPM_MIXER("MultiMedia10 Mixer", SND_SOC_NOPM, 0, 0,
19620 mmul10_mixer_controls, ARRAY_SIZE(mmul10_mixer_controls)),
Asish Bhattacharya34504582017-08-08 12:55:01 +053019621 SND_SOC_DAPM_MIXER("MultiMedia16 Mixer", SND_SOC_NOPM, 0, 0,
19622 mmul16_mixer_controls, ARRAY_SIZE(mmul16_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019623 SND_SOC_DAPM_MIXER("MultiMedia17 Mixer", SND_SOC_NOPM, 0, 0,
19624 mmul17_mixer_controls, ARRAY_SIZE(mmul17_mixer_controls)),
19625 SND_SOC_DAPM_MIXER("MultiMedia18 Mixer", SND_SOC_NOPM, 0, 0,
19626 mmul18_mixer_controls, ARRAY_SIZE(mmul18_mixer_controls)),
19627 SND_SOC_DAPM_MIXER("MultiMedia19 Mixer", SND_SOC_NOPM, 0, 0,
19628 mmul19_mixer_controls, ARRAY_SIZE(mmul19_mixer_controls)),
19629 SND_SOC_DAPM_MIXER("MultiMedia20 Mixer", SND_SOC_NOPM, 0, 0,
19630 mmul20_mixer_controls, ARRAY_SIZE(mmul20_mixer_controls)),
Derek Chen07c6d1c2018-07-05 10:39:25 -070019631 SND_SOC_DAPM_MIXER("MultiMedia21 Mixer", SND_SOC_NOPM, 0, 0,
19632 mmul21_mixer_controls, ARRAY_SIZE(mmul21_mixer_controls)),
Surendar Karkac1cde372018-08-14 18:56:24 +053019633 SND_SOC_DAPM_MIXER("MultiMedia27 Mixer", SND_SOC_NOPM, 0, 0,
19634 mmul27_mixer_controls, ARRAY_SIZE(mmul27_mixer_controls)),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019635 SND_SOC_DAPM_MIXER("MultiMedia28 Mixer", SND_SOC_NOPM, 0, 0,
19636 mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
19637 SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
19638 mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019639 SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19640 auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
19641 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19642 sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
19643 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19644 tert_auxpcm_rx_mixer_controls,
19645 ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
19646 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19647 quat_auxpcm_rx_mixer_controls,
19648 ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019649 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19650 quin_auxpcm_rx_mixer_controls,
19651 ARRAY_SIZE(quin_auxpcm_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019652 /* incall */
19653 SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
19654 incall_music_delivery_mixer_controls,
19655 ARRAY_SIZE(incall_music_delivery_mixer_controls)),
19656 SND_SOC_DAPM_MIXER("Incall_Music_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19657 incall_music2_delivery_mixer_controls,
19658 ARRAY_SIZE(incall_music2_delivery_mixer_controls)),
19659 SND_SOC_DAPM_MIXER("SLIMBUS_4_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19660 slimbus_4_rx_mixer_controls,
19661 ARRAY_SIZE(slimbus_4_rx_mixer_controls)),
19662 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19663 slimbus_6_rx_mixer_controls,
19664 ARRAY_SIZE(slimbus_6_rx_mixer_controls)),
19665 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19666 usb_audio_rx_mixer_controls,
19667 ARRAY_SIZE(usb_audio_rx_mixer_controls)),
19668 /* Voice Mixer */
19669 SND_SOC_DAPM_MIXER("PRI_RX_Voice Mixer",
19670 SND_SOC_NOPM, 0, 0, pri_rx_voice_mixer_controls,
19671 ARRAY_SIZE(pri_rx_voice_mixer_controls)),
19672 SND_SOC_DAPM_MIXER("SEC_RX_Voice Mixer",
19673 SND_SOC_NOPM, 0, 0,
19674 sec_i2s_rx_voice_mixer_controls,
19675 ARRAY_SIZE(sec_i2s_rx_voice_mixer_controls)),
19676 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_Voice Mixer",
19677 SND_SOC_NOPM, 0, 0,
19678 sec_mi2s_rx_voice_mixer_controls,
19679 ARRAY_SIZE(sec_mi2s_rx_voice_mixer_controls)),
19680 SND_SOC_DAPM_MIXER("SLIM_0_RX_Voice Mixer",
19681 SND_SOC_NOPM, 0, 0,
19682 slimbus_rx_voice_mixer_controls,
19683 ARRAY_SIZE(slimbus_rx_voice_mixer_controls)),
19684 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX_Voice Mixer",
19685 SND_SOC_NOPM, 0, 0,
19686 bt_sco_rx_voice_mixer_controls,
19687 ARRAY_SIZE(bt_sco_rx_voice_mixer_controls)),
19688 SND_SOC_DAPM_MIXER("AFE_PCM_RX_Voice Mixer",
19689 SND_SOC_NOPM, 0, 0,
19690 afe_pcm_rx_voice_mixer_controls,
19691 ARRAY_SIZE(afe_pcm_rx_voice_mixer_controls)),
19692 SND_SOC_DAPM_MIXER("AUX_PCM_RX_Voice Mixer",
19693 SND_SOC_NOPM, 0, 0,
19694 aux_pcm_rx_voice_mixer_controls,
19695 ARRAY_SIZE(aux_pcm_rx_voice_mixer_controls)),
19696 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX_Voice Mixer",
19697 SND_SOC_NOPM, 0, 0,
19698 sec_aux_pcm_rx_voice_mixer_controls,
19699 ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
19700 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
19701 SND_SOC_NOPM, 0, 0,
19702 tert_aux_pcm_rx_voice_mixer_controls,
19703 ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
19704 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
19705 SND_SOC_NOPM, 0, 0,
19706 quat_aux_pcm_rx_voice_mixer_controls,
19707 ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019708 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX_Voice Mixer",
19709 SND_SOC_NOPM, 0, 0,
19710 quin_aux_pcm_rx_voice_mixer_controls,
19711 ARRAY_SIZE(quin_aux_pcm_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019712 SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
19713 SND_SOC_NOPM, 0, 0,
19714 hdmi_rx_voice_mixer_controls,
19715 ARRAY_SIZE(hdmi_rx_voice_mixer_controls)),
19716 SND_SOC_DAPM_MIXER("MI2S_RX_Voice Mixer",
19717 SND_SOC_NOPM, 0, 0,
19718 mi2s_rx_voice_mixer_controls,
19719 ARRAY_SIZE(mi2s_rx_voice_mixer_controls)),
19720 SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer",
19721 SND_SOC_NOPM, 0, 0,
19722 pri_mi2s_rx_voice_mixer_controls,
19723 ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)),
19724 SND_SOC_DAPM_MIXER("INT0_MI2S_RX_Voice Mixer",
19725 SND_SOC_NOPM, 0, 0,
19726 int0_mi2s_rx_voice_mixer_controls,
19727 ARRAY_SIZE(int0_mi2s_rx_voice_mixer_controls)),
19728 SND_SOC_DAPM_MIXER("INT4_MI2S_RX_Voice Mixer",
19729 SND_SOC_NOPM, 0, 0,
19730 int4_mi2s_rx_voice_mixer_controls,
19731 ARRAY_SIZE(int4_mi2s_rx_voice_mixer_controls)),
19732 SND_SOC_DAPM_MIXER("TERT_MI2S_RX_Voice Mixer",
19733 SND_SOC_NOPM, 0, 0,
19734 tert_mi2s_rx_voice_mixer_controls,
19735 ARRAY_SIZE(tert_mi2s_rx_voice_mixer_controls)),
19736 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX_Voice Mixer",
19737 SND_SOC_NOPM, 0, 0,
19738 quat_mi2s_rx_voice_mixer_controls,
19739 ARRAY_SIZE(quat_mi2s_rx_voice_mixer_controls)),
19740 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX_Voice Mixer",
19741 SND_SOC_NOPM, 0, 0,
19742 quin_mi2s_rx_voice_mixer_controls,
19743 ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)),
19744 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer",
19745 SND_SOC_NOPM, 0, 0,
19746 quat_tdm_rx_2_voice_mixer_controls,
19747 ARRAY_SIZE(quat_tdm_rx_2_voice_mixer_controls)),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053019748 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0_Voice Mixer",
19749 SND_SOC_NOPM, 0, 0,
19750 wsa_cdc_dma_rx_0_voice_mixer_controls,
19751 ARRAY_SIZE(wsa_cdc_dma_rx_0_voice_mixer_controls)),
19752 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0_Voice Mixer",
19753 SND_SOC_NOPM, 0, 0,
19754 rx_cdc_dma_rx_0_voice_mixer_controls,
19755 ARRAY_SIZE(rx_cdc_dma_rx_0_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019756 SND_SOC_DAPM_MIXER("Voip_Tx Mixer",
19757 SND_SOC_NOPM, 0, 0, tx_voip_mixer_controls,
19758 ARRAY_SIZE(tx_voip_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019759 SND_SOC_DAPM_MIXER("VoiceMMode1_Tx Mixer",
19760 SND_SOC_NOPM, 0, 0, tx_voicemmode1_mixer_controls,
19761 ARRAY_SIZE(tx_voicemmode1_mixer_controls)),
19762 SND_SOC_DAPM_MIXER("VoiceMMode2_Tx Mixer",
19763 SND_SOC_NOPM, 0, 0, tx_voicemmode2_mixer_controls,
19764 ARRAY_SIZE(tx_voicemmode2_mixer_controls)),
19765 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19766 int_bt_sco_rx_mixer_controls, ARRAY_SIZE(int_bt_sco_rx_mixer_controls)),
19767 SND_SOC_DAPM_MIXER("INTERNAL_A2DP_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19768 int_bt_a2dp_rx_mixer_controls,
19769 ARRAY_SIZE(int_bt_a2dp_rx_mixer_controls)),
19770 SND_SOC_DAPM_MIXER("INTERNAL_FM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19771 int_fm_rx_mixer_controls, ARRAY_SIZE(int_fm_rx_mixer_controls)),
19772 SND_SOC_DAPM_MIXER("AFE_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19773 afe_pcm_rx_mixer_controls, ARRAY_SIZE(afe_pcm_rx_mixer_controls)),
19774 SND_SOC_DAPM_MIXER("Voice Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19775 tx_voice_stub_mixer_controls, ARRAY_SIZE(tx_voice_stub_mixer_controls)),
19776 SND_SOC_DAPM_MIXER("Voice2 Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19777 tx_voice2_stub_mixer_controls,
19778 ARRAY_SIZE(tx_voice2_stub_mixer_controls)),
19779 SND_SOC_DAPM_MIXER("VoLTE Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19780 tx_volte_stub_mixer_controls, ARRAY_SIZE(tx_volte_stub_mixer_controls)),
19781 SND_SOC_DAPM_MIXER("STUB_RX Mixer", SND_SOC_NOPM, 0, 0,
19782 stub_rx_mixer_controls, ARRAY_SIZE(stub_rx_mixer_controls)),
19783 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Mixer", SND_SOC_NOPM, 0, 0,
19784 slimbus_1_rx_mixer_controls, ARRAY_SIZE(slimbus_1_rx_mixer_controls)),
19785 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19786 slimbus_3_rx_mixer_controls, ARRAY_SIZE(slimbus_3_rx_mixer_controls)),
19787 SND_SOC_DAPM_MIXER("SLIM_6_RX_Voice Mixer",
19788 SND_SOC_NOPM, 0, 0,
19789 slimbus_6_rx_voice_mixer_controls,
19790 ARRAY_SIZE(slimbus_6_rx_voice_mixer_controls)),
19791 SND_SOC_DAPM_MIXER("SLIM_7_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19792 slimbus_7_rx_voice_mixer_controls,
19793 ARRAY_SIZE(slimbus_7_rx_voice_mixer_controls)),
19794 SND_SOC_DAPM_MIXER("SLIM_8_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19795 slimbus_8_rx_voice_mixer_controls,
19796 ARRAY_SIZE(slimbus_8_rx_voice_mixer_controls)),
19797 /* port mixer */
19798 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Port Mixer",
19799 SND_SOC_NOPM, 0, 0, sbus_0_rx_port_mixer_controls,
19800 ARRAY_SIZE(sbus_0_rx_port_mixer_controls)),
19801 SND_SOC_DAPM_MIXER("AUX_PCM_RX Port Mixer",
19802 SND_SOC_NOPM, 0, 0, aux_pcm_rx_port_mixer_controls,
19803 ARRAY_SIZE(aux_pcm_rx_port_mixer_controls)),
19804 SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
19805 SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
19806 ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
19807 SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
19808 SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
19809 ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
19810 SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
19811 SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
19812 ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019813 SND_SOC_DAPM_MIXER("QUIN_AUXPCM_RX Port Mixer",
19814 SND_SOC_NOPM, 0, 0, quin_auxpcm_rx_port_mixer_controls,
19815 ARRAY_SIZE(quin_auxpcm_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019816 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19817 sbus_1_rx_port_mixer_controls,
19818 ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
19819 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19820 bt_sco_rx_port_mixer_controls,
19821 ARRAY_SIZE(bt_sco_rx_port_mixer_controls)),
19822 SND_SOC_DAPM_MIXER("AFE_PCM_RX Port Mixer",
19823 SND_SOC_NOPM, 0, 0, afe_pcm_rx_port_mixer_controls,
19824 ARRAY_SIZE(afe_pcm_rx_port_mixer_controls)),
19825 SND_SOC_DAPM_MIXER("HDMI_RX Port Mixer",
19826 SND_SOC_NOPM, 0, 0, hdmi_rx_port_mixer_controls,
19827 ARRAY_SIZE(hdmi_rx_port_mixer_controls)),
19828 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
19829 SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
19830 ARRAY_SIZE(display_port_rx_port_mixer_controls)),
Karthikeyan Manifbea92f2018-06-14 16:38:15 -070019831 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1 Port Mixer",
Karthikeyan Mani57550082018-05-03 18:43:58 -070019832 SND_SOC_NOPM, 0, 0, display_port_rx1_port_mixer_controls,
19833 ARRAY_SIZE(display_port_rx1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019834 SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
19835 SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
19836 ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
19837 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX Port Mixer",
19838 SND_SOC_NOPM, 0, 0, sbus_3_rx_port_mixer_controls,
19839 ARRAY_SIZE(sbus_3_rx_port_mixer_controls)),
19840 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Port Mixer",
19841 SND_SOC_NOPM, 0, 0, sbus_6_rx_port_mixer_controls,
19842 ARRAY_SIZE(sbus_6_rx_port_mixer_controls)),
19843 SND_SOC_DAPM_MIXER("MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19844 mi2s_rx_port_mixer_controls, ARRAY_SIZE(mi2s_rx_port_mixer_controls)),
19845 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19846 primary_mi2s_rx_port_mixer_controls,
19847 ARRAY_SIZE(primary_mi2s_rx_port_mixer_controls)),
19848 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19849 sec_mi2s_rx_port_mixer_controls,
19850 ARRAY_SIZE(sec_mi2s_rx_port_mixer_controls)),
19851 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19852 tert_mi2s_rx_port_mixer_controls,
19853 ARRAY_SIZE(tert_mi2s_rx_port_mixer_controls)),
19854 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19855 quat_mi2s_rx_port_mixer_controls,
19856 ARRAY_SIZE(quat_mi2s_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019857 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19858 quin_mi2s_rx_port_mixer_controls,
19859 ARRAY_SIZE(quin_mi2s_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019860 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19861 pri_tdm_rx_0_port_mixer_controls,
19862 ARRAY_SIZE(pri_tdm_rx_0_port_mixer_controls)),
19863 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19864 pri_tdm_rx_1_port_mixer_controls,
19865 ARRAY_SIZE(pri_tdm_rx_1_port_mixer_controls)),
19866 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19867 pri_tdm_rx_2_port_mixer_controls,
19868 ARRAY_SIZE(pri_tdm_rx_2_port_mixer_controls)),
19869 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19870 pri_tdm_rx_3_port_mixer_controls,
19871 ARRAY_SIZE(pri_tdm_rx_3_port_mixer_controls)),
19872 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19873 sec_tdm_rx_0_port_mixer_controls,
19874 ARRAY_SIZE(sec_tdm_rx_0_port_mixer_controls)),
19875 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19876 sec_tdm_rx_1_port_mixer_controls,
19877 ARRAY_SIZE(sec_tdm_rx_1_port_mixer_controls)),
19878 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19879 sec_tdm_rx_2_port_mixer_controls,
19880 ARRAY_SIZE(sec_tdm_rx_2_port_mixer_controls)),
19881 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19882 sec_tdm_rx_3_port_mixer_controls,
19883 ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
Derek Chenfdcc0982018-10-02 15:14:03 -070019884 SND_SOC_DAPM_MIXER("SEC_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
19885 sec_tdm_rx_7_port_mixer_controls,
19886 ARRAY_SIZE(sec_tdm_rx_7_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019887 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19888 tert_tdm_rx_0_port_mixer_controls,
19889 ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
19890 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19891 tert_tdm_rx_1_port_mixer_controls,
19892 ARRAY_SIZE(tert_tdm_rx_1_port_mixer_controls)),
19893 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19894 tert_tdm_rx_2_port_mixer_controls,
19895 ARRAY_SIZE(tert_tdm_rx_2_port_mixer_controls)),
19896 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19897 tert_tdm_rx_3_port_mixer_controls,
19898 ARRAY_SIZE(tert_tdm_rx_3_port_mixer_controls)),
19899 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19900 quat_tdm_rx_0_port_mixer_controls,
19901 ARRAY_SIZE(quat_tdm_rx_0_port_mixer_controls)),
19902 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19903 quat_tdm_rx_1_port_mixer_controls,
19904 ARRAY_SIZE(quat_tdm_rx_1_port_mixer_controls)),
19905 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19906 quat_tdm_rx_2_port_mixer_controls,
19907 ARRAY_SIZE(quat_tdm_rx_2_port_mixer_controls)),
19908 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19909 quat_tdm_rx_3_port_mixer_controls,
19910 ARRAY_SIZE(quat_tdm_rx_3_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019911 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19912 quin_tdm_rx_0_port_mixer_controls,
19913 ARRAY_SIZE(quin_tdm_rx_0_port_mixer_controls)),
19914 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19915 quin_tdm_rx_1_port_mixer_controls,
19916 ARRAY_SIZE(quin_tdm_rx_1_port_mixer_controls)),
19917 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19918 quin_tdm_rx_2_port_mixer_controls,
19919 ARRAY_SIZE(quin_tdm_rx_2_port_mixer_controls)),
19920 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19921 quin_tdm_rx_3_port_mixer_controls,
19922 ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019923 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19924 int0_mi2s_rx_port_mixer_controls,
19925 ARRAY_SIZE(int0_mi2s_rx_port_mixer_controls)),
19926 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19927 int4_mi2s_rx_port_mixer_controls,
19928 ARRAY_SIZE(int4_mi2s_rx_port_mixer_controls)),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053019929 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19930 wsa_cdc_dma_rx_0_port_mixer_controls,
19931 ARRAY_SIZE(wsa_cdc_dma_rx_0_port_mixer_controls)),
19932 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19933 rx_cdc_dma_rx_0_port_mixer_controls,
19934 ARRAY_SIZE(rx_cdc_dma_rx_0_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019935 SND_SOC_DAPM_MIXER("QCHAT_Tx Mixer",
19936 SND_SOC_NOPM, 0, 0, tx_qchat_mixer_controls,
19937 ARRAY_SIZE(tx_qchat_mixer_controls)),
19938 SND_SOC_DAPM_MIXER("USB_AUDIO_RX_Voice Mixer",
19939 SND_SOC_NOPM, 0, 0, usb_audio_rx_voice_mixer_controls,
19940 ARRAY_SIZE(usb_audio_rx_voice_mixer_controls)),
19941 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
19942 SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
19943 ARRAY_SIZE(usb_rx_port_mixer_controls)),
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080019944 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
19945 SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
19946 ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070019947 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1_Voice Mixer",
19948 SND_SOC_NOPM, 0, 0, display_port_rx1_voice_mixer_controls,
19949 ARRAY_SIZE(display_port_rx1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019950 /* lsm mixer definitions */
19951 SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
19952 lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
19953 SND_SOC_DAPM_MIXER("LSM2 Mixer", SND_SOC_NOPM, 0, 0,
19954 lsm2_mixer_controls, ARRAY_SIZE(lsm2_mixer_controls)),
19955 SND_SOC_DAPM_MIXER("LSM3 Mixer", SND_SOC_NOPM, 0, 0,
19956 lsm3_mixer_controls, ARRAY_SIZE(lsm3_mixer_controls)),
19957 SND_SOC_DAPM_MIXER("LSM4 Mixer", SND_SOC_NOPM, 0, 0,
19958 lsm4_mixer_controls, ARRAY_SIZE(lsm4_mixer_controls)),
19959 SND_SOC_DAPM_MIXER("LSM5 Mixer", SND_SOC_NOPM, 0, 0,
19960 lsm5_mixer_controls, ARRAY_SIZE(lsm5_mixer_controls)),
19961 SND_SOC_DAPM_MIXER("LSM6 Mixer", SND_SOC_NOPM, 0, 0,
19962 lsm6_mixer_controls, ARRAY_SIZE(lsm6_mixer_controls)),
19963 SND_SOC_DAPM_MIXER("LSM7 Mixer", SND_SOC_NOPM, 0, 0,
19964 lsm7_mixer_controls, ARRAY_SIZE(lsm7_mixer_controls)),
19965 SND_SOC_DAPM_MIXER("LSM8 Mixer", SND_SOC_NOPM, 0, 0,
19966 lsm8_mixer_controls, ARRAY_SIZE(lsm8_mixer_controls)),
19967 /* Virtual Pins to force backends ON atm */
19968 SND_SOC_DAPM_OUTPUT("BE_OUT"),
19969 SND_SOC_DAPM_INPUT("BE_IN"),
19970
19971 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
19972 &slim0_rx_vi_fb_lch_mux),
19973 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
19974 &slim0_rx_vi_fb_rch_mux),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019975 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
19976 &wsa_rx_0_vi_fb_lch_mux),
19977 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
19978 &wsa_rx_0_vi_fb_rch_mux),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019979 SND_SOC_DAPM_MUX("PRI_MI2S_RX_VI_FB_MUX", SND_SOC_NOPM, 0, 0,
19980 &mi2s_rx_vi_fb_mux),
19981 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_MONO_CH_MUX", SND_SOC_NOPM, 0, 0,
19982 &int4_mi2s_rx_vi_fb_mono_ch_mux),
19983 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", SND_SOC_NOPM, 0, 0,
19984 &int4_mi2s_rx_vi_fb_stereo_ch_mux),
19985
19986 SND_SOC_DAPM_MUX("VOC_EXT_EC MUX", SND_SOC_NOPM, 0, 0,
19987 &voc_ext_ec_mux),
19988 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL1 MUX", SND_SOC_NOPM, 0, 0,
19989 &ext_ec_ref_mux_ul1),
19990 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL2 MUX", SND_SOC_NOPM, 0, 0,
19991 &ext_ec_ref_mux_ul2),
19992 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL3 MUX", SND_SOC_NOPM, 0, 0,
19993 &ext_ec_ref_mux_ul3),
19994 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL4 MUX", SND_SOC_NOPM, 0, 0,
19995 &ext_ec_ref_mux_ul4),
19996 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL5 MUX", SND_SOC_NOPM, 0, 0,
19997 &ext_ec_ref_mux_ul5),
19998 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL6 MUX", SND_SOC_NOPM, 0, 0,
19999 &ext_ec_ref_mux_ul6),
20000 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL8 MUX", SND_SOC_NOPM, 0, 0,
20001 &ext_ec_ref_mux_ul8),
20002 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL9 MUX", SND_SOC_NOPM, 0, 0,
20003 &ext_ec_ref_mux_ul9),
Laxminath Kasam38070be2017-08-17 18:21:59 +053020004 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL10 MUX", SND_SOC_NOPM, 0, 0,
20005 &ext_ec_ref_mux_ul10),
Asish Bhattacharya34504582017-08-08 12:55:01 +053020006 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL16 MUX", SND_SOC_NOPM, 0, 0,
20007 &ext_ec_ref_mux_ul16),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020008 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL17 MUX", SND_SOC_NOPM, 0, 0,
20009 &ext_ec_ref_mux_ul17),
20010 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL18 MUX", SND_SOC_NOPM, 0, 0,
20011 &ext_ec_ref_mux_ul18),
20012 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL19 MUX", SND_SOC_NOPM, 0, 0,
20013 &ext_ec_ref_mux_ul19),
Meng Wang5c4bab72018-04-25 10:40:01 +080020014 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL28 MUX", SND_SOC_NOPM, 0, 0,
20015 &ext_ec_ref_mux_ul28),
20016 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL29 MUX", SND_SOC_NOPM, 0, 0,
20017 &ext_ec_ref_mux_ul29),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020018};
20019
20020static const struct snd_soc_dapm_route intercon[] = {
20021 {"PRI_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20022 {"PRI_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20023 {"PRI_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20024 {"PRI_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20025 {"PRI_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20026 {"PRI_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20027 {"PRI_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20028 {"PRI_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20029 {"PRI_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20030 {"PRI_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20031 {"PRI_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20032 {"PRI_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20033 {"PRI_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20034 {"PRI_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20035 {"PRI_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20036 {"PRI_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020037 {"PRI_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020038 {"PRI_I2S_RX", NULL, "PRI_RX Audio Mixer"},
20039
20040 {"SEC_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20041 {"SEC_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20042 {"SEC_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20043 {"SEC_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20044 {"SEC_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20045 {"SEC_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20046 {"SEC_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20047 {"SEC_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20048 {"SEC_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20049 {"SEC_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20050 {"SEC_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20051 {"SEC_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20052 {"SEC_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20053 {"SEC_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20054 {"SEC_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20055 {"SEC_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020056 {"SEC_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020057 {"SEC_I2S_RX", NULL, "SEC_RX Audio Mixer"},
20058
20059 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20060 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20061 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20062 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20063 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20064 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20065 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20066 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20067 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20068 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20069 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20070 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20071 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20072 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20073 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20074 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020075 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020076 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Audio Mixer"},
20077
20078 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20079 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20080 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20081 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20082 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20083 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20084 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20085 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20086 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20087 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20088 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20089 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20090 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20091 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20092 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20093 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020094 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020095 {"SLIMBUS_2_RX", NULL, "SLIMBUS_2_RX Audio Mixer"},
20096
20097 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20098 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20099 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20100 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20101 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20102 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20103 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20104 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20105 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20106 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20107 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20108 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20109 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20110 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20111 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20112 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020113 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020114 {"SLIMBUS_5_RX", NULL, "SLIMBUS_5_RX Audio Mixer"},
20115
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020116 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20117 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20118 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20119 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20120 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20121 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20122 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20123 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20124 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20125 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20126 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20127 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20128 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20129 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20130 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20131 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020132 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020133 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Audio Mixer"},
20134
20135 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20136 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20137 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20138 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20139 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20140 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20141 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20142 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20143 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20144 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20145 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20146 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20147 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20148 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20149 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20150 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020151 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020152 {"WSA_CDC_DMA_RX_1", NULL, "WSA_CDC_DMA_RX_1 Audio Mixer"},
20153
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020154 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20155 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20156 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20157 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20158 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20159 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20160 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20161 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20162 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20163 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20164 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20165 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20166 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20167 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20168 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20169 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020170 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020171 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Audio Mixer"},
20172
20173 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20174 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20175 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20176 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20177 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20178 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20179 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20180 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20181 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20182 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20183 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20184 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20185 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20186 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20187 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20188 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020189 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020190 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Audio Mixer"},
20191
20192 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20193 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20194 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20195 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20196 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20197 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20198 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20199 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20200 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20201 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20202 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20203 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20204 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20205 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20206 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20207 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020208 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020209 {"RX_CDC_DMA_RX_2", NULL, "RX_CDC_DMA_RX_2 Audio Mixer"},
20210
20211 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20212 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20213 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20214 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20215 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20216 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20217 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20218 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20219 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20220 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20221 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20222 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20223 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20224 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20225 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20226 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020227 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020228 {"RX_CDC_DMA_RX_3", NULL, "RX_CDC_DMA_RX_3 Audio Mixer"},
20229
20230 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
20231 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
20232 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
20233 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
20234 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
20235 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
20236 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
20237 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
20238 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
20239 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
20240 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
20241 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
20242 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
20243 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
20244 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
20245 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020246 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020247 {"RX_CDC_DMA_RX_4", NULL, "RX_CDC_DMA_RX_4 Audio Mixer"},
20248
20249 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia1", "MM_DL1"},
20250 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia2", "MM_DL2"},
20251 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia3", "MM_DL3"},
20252 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia4", "MM_DL4"},
20253 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia5", "MM_DL5"},
20254 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia6", "MM_DL6"},
20255 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia7", "MM_DL7"},
20256 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia8", "MM_DL8"},
20257 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia9", "MM_DL9"},
20258 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia10", "MM_DL10"},
20259 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia11", "MM_DL11"},
20260 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia12", "MM_DL12"},
20261 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia13", "MM_DL13"},
20262 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia14", "MM_DL14"},
20263 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia15", "MM_DL15"},
20264 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020265 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020266 {"RX_CDC_DMA_RX_5", NULL, "RX_CDC_DMA_RX_5 Audio Mixer"},
20267
20268 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia1", "MM_DL1"},
20269 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia2", "MM_DL2"},
20270 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia3", "MM_DL3"},
20271 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia4", "MM_DL4"},
20272 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia5", "MM_DL5"},
20273 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia6", "MM_DL6"},
20274 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia7", "MM_DL7"},
20275 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia8", "MM_DL8"},
20276 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia9", "MM_DL9"},
20277 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia10", "MM_DL10"},
20278 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia11", "MM_DL11"},
20279 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia12", "MM_DL12"},
20280 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia13", "MM_DL13"},
20281 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia14", "MM_DL14"},
20282 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia15", "MM_DL15"},
20283 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020284 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020285 {"RX_CDC_DMA_RX_6", NULL, "RX_CDC_DMA_RX_6 Audio Mixer"},
20286
20287 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia1", "MM_DL1"},
20288 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia2", "MM_DL2"},
20289 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia3", "MM_DL3"},
20290 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia4", "MM_DL4"},
20291 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia5", "MM_DL5"},
20292 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia6", "MM_DL6"},
20293 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia7", "MM_DL7"},
20294 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia8", "MM_DL8"},
20295 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia9", "MM_DL9"},
20296 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia10", "MM_DL10"},
20297 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia11", "MM_DL11"},
20298 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia12", "MM_DL12"},
20299 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia13", "MM_DL13"},
20300 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia14", "MM_DL14"},
20301 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia15", "MM_DL15"},
20302 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020303 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020304 {"RX_CDC_DMA_RX_7", NULL, "RX_CDC_DMA_RX_7 Audio Mixer"},
20305
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020306 {"HDMI Mixer", "MultiMedia1", "MM_DL1"},
20307 {"HDMI Mixer", "MultiMedia2", "MM_DL2"},
20308 {"HDMI Mixer", "MultiMedia3", "MM_DL3"},
20309 {"HDMI Mixer", "MultiMedia4", "MM_DL4"},
20310 {"HDMI Mixer", "MultiMedia5", "MM_DL5"},
20311 {"HDMI Mixer", "MultiMedia6", "MM_DL6"},
20312 {"HDMI Mixer", "MultiMedia7", "MM_DL7"},
20313 {"HDMI Mixer", "MultiMedia8", "MM_DL8"},
20314 {"HDMI Mixer", "MultiMedia9", "MM_DL9"},
20315 {"HDMI Mixer", "MultiMedia10", "MM_DL10"},
20316 {"HDMI Mixer", "MultiMedia11", "MM_DL11"},
20317 {"HDMI Mixer", "MultiMedia12", "MM_DL12"},
20318 {"HDMI Mixer", "MultiMedia13", "MM_DL13"},
20319 {"HDMI Mixer", "MultiMedia14", "MM_DL14"},
20320 {"HDMI Mixer", "MultiMedia15", "MM_DL15"},
20321 {"HDMI Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020322 {"HDMI Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020323 {"HDMI", NULL, "HDMI Mixer"},
20324
20325 {"DISPLAY_PORT Mixer", "MultiMedia1", "MM_DL1"},
20326 {"DISPLAY_PORT Mixer", "MultiMedia2", "MM_DL2"},
20327 {"DISPLAY_PORT Mixer", "MultiMedia3", "MM_DL3"},
20328 {"DISPLAY_PORT Mixer", "MultiMedia4", "MM_DL4"},
20329 {"DISPLAY_PORT Mixer", "MultiMedia5", "MM_DL5"},
20330 {"DISPLAY_PORT Mixer", "MultiMedia6", "MM_DL6"},
20331 {"DISPLAY_PORT Mixer", "MultiMedia7", "MM_DL7"},
20332 {"DISPLAY_PORT Mixer", "MultiMedia8", "MM_DL8"},
20333 {"DISPLAY_PORT Mixer", "MultiMedia9", "MM_DL9"},
20334 {"DISPLAY_PORT Mixer", "MultiMedia10", "MM_DL10"},
20335 {"DISPLAY_PORT Mixer", "MultiMedia11", "MM_DL11"},
20336 {"DISPLAY_PORT Mixer", "MultiMedia12", "MM_DL12"},
20337 {"DISPLAY_PORT Mixer", "MultiMedia13", "MM_DL13"},
20338 {"DISPLAY_PORT Mixer", "MultiMedia14", "MM_DL14"},
20339 {"DISPLAY_PORT Mixer", "MultiMedia15", "MM_DL15"},
20340 {"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020341 {"DISPLAY_PORT Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020342 {"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
20343
Karthikeyan Mani57550082018-05-03 18:43:58 -070020344 {"DISPLAY_PORT1 Mixer", "MultiMedia1", "MM_DL1"},
20345 {"DISPLAY_PORT1 Mixer", "MultiMedia2", "MM_DL2"},
20346 {"DISPLAY_PORT1 Mixer", "MultiMedia3", "MM_DL3"},
20347 {"DISPLAY_PORT1 Mixer", "MultiMedia4", "MM_DL4"},
20348 {"DISPLAY_PORT1 Mixer", "MultiMedia5", "MM_DL5"},
20349 {"DISPLAY_PORT1 Mixer", "MultiMedia6", "MM_DL6"},
20350 {"DISPLAY_PORT1 Mixer", "MultiMedia7", "MM_DL7"},
20351 {"DISPLAY_PORT1 Mixer", "MultiMedia8", "MM_DL8"},
20352 {"DISPLAY_PORT1 Mixer", "MultiMedia9", "MM_DL9"},
20353 {"DISPLAY_PORT1 Mixer", "MultiMedia10", "MM_DL10"},
20354 {"DISPLAY_PORT1 Mixer", "MultiMedia11", "MM_DL11"},
20355 {"DISPLAY_PORT1 Mixer", "MultiMedia12", "MM_DL12"},
20356 {"DISPLAY_PORT1 Mixer", "MultiMedia13", "MM_DL13"},
20357 {"DISPLAY_PORT1 Mixer", "MultiMedia14", "MM_DL14"},
20358 {"DISPLAY_PORT1 Mixer", "MultiMedia15", "MM_DL15"},
20359 {"DISPLAY_PORT1 Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020360 {"DISPLAY_PORT1 Mixer", "MultiMedia26", "MM_DL26"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070020361 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT1 Mixer"},
20362
Ralf Herzc8701f72018-06-20 11:37:35 +020020363 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20364 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20365 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20366 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20367 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20368 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20369 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20370 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20371 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20372 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20373 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20374 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20375 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20376 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20377 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20378 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020379 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020380 {"PRI_SPDIF_RX", NULL, "PRI_SPDIF_RX Audio Mixer"},
20381
20382 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20383 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20384 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20385 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20386 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20387 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20388 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20389 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20390 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20391 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20392 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20393 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20394 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20395 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20396 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20397 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020398 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020399 {"SEC_SPDIF_RX", NULL, "SEC_SPDIF_RX Audio Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020400
20401 /* incall */
20402 {"Incall_Music Audio Mixer", "MultiMedia1", "MM_DL1"},
20403 {"Incall_Music Audio Mixer", "MultiMedia2", "MM_DL2"},
20404 {"Incall_Music Audio Mixer", "MultiMedia5", "MM_DL5"},
20405 {"Incall_Music Audio Mixer", "MultiMedia9", "MM_DL9"},
20406 {"VOICE_PLAYBACK_TX", NULL, "Incall_Music Audio Mixer"},
20407 {"Incall_Music_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20408 {"Incall_Music_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20409 {"Incall_Music_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20410 {"Incall_Music_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20411 {"VOICE2_PLAYBACK_TX", NULL, "Incall_Music_2 Audio Mixer"},
20412 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20413 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20414 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20415 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20416 {"SLIMBUS_4_RX", NULL, "SLIMBUS_4_RX Audio Mixer"},
20417
20418 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20419 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20420 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20421 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20422 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20423 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20424 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20425 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20426 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20427 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20428 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20429 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20430 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20431 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20432 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20433 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020434 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020435 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Audio Mixer"},
20436
20437 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20438 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20439 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20440 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20441 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20442 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20443 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20444 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20445 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20446 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20447 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20448 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20449 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20450 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20451 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20452 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020453 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020454 {"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
20455
Surendar Karka3ef3d812018-09-28 18:52:35 +053020456 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20457 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20458 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20459 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20460 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20461 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20462 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20463 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20464 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20465 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20466 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20467 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20468 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20469 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20470 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20471 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20472 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
20473 {"SLIMBUS_9_RX", NULL, "SLIMBUS_9_RX Audio Mixer"},
20474
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020475 {"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20476 {"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20477 {"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20478 {"USB_AUDIO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20479 {"USB_AUDIO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20480 {"USB_AUDIO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20481 {"USB_AUDIO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20482 {"USB_AUDIO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20483 {"USB_AUDIO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20484 {"USB_AUDIO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20485 {"USB_AUDIO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20486 {"USB_AUDIO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20487 {"USB_AUDIO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20488 {"USB_AUDIO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20489 {"USB_AUDIO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20490 {"USB_AUDIO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020491 {"USB_AUDIO_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020492 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Audio Mixer"},
20493
20494 {"MultiMedia1 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
20495 {"MultiMedia4 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
20496 {"MultiMedia8 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
20497 {"MultiMedia1 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
20498 {"MultiMedia4 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
20499 {"MultiMedia8 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
20500 {"MultiMedia1 Mixer", "SLIM_4_TX", "SLIMBUS_4_TX"},
20501 {"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20502 {"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
20503 {"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020504 {"MultiMedia1 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020505 {"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20506 {"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020507 {"MultiMedia8 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020508 {"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020509 {"MultiMedia4 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020510 {"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020511 {"MultiMedia17 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020512 {"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020513 {"MultiMedia18 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020514 {"MultiMedia19 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020515 {"MultiMedia19 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020516 {"MultiMedia28 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020517 {"MultiMedia28 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020518 {"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020519 {"MultiMedia29 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020520 {"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020521 {"MultiMedia8 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020522 {"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20523 {"MultiMedia4 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20524 {"MultiMedia17 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20525 {"MultiMedia18 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20526 {"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020527 {"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20528 {"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020529 {"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020530 {"MultiMedia18 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010020531 {"MultiMedia19 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20532 {"MultiMedia28 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20533 {"MultiMedia29 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020534 {"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20535 {"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20536 {"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20537 {"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20538 {"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20539 {"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020540 {"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020541 {"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20542 {"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20543 {"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020544 {"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20545 {"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020546 {"MultiMedia3 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020547 {"MultiMedia5 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020548 {"MultiMedia5 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020549 {"MultiMedia10 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020550 {"MultiMedia10 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020551 {"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020552 {"MultiMedia16 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020553 {"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
20554 {"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020555 {"MultiMedia5 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020556 {"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020557 {"MultiMedia10 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020558 {"MultiMedia18 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010020559 {"MultiMedia19 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20560 {"MultiMedia28 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20561 {"MultiMedia29 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020562 {"MultiMedia18 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010020563 {"MultiMedia19 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
20564 {"MultiMedia28 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
20565 {"MultiMedia29 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020566
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020567 {"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20568 {"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20569 {"MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20570 {"MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20571 {"MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20572 {"MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20573 {"MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20574 {"MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20575 {"MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20576 {"MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20577 {"MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20578 {"MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20579 {"MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20580 {"MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20581 {"MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20582 {"MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020583 {"MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020584 {"MI2S_RX", NULL, "MI2S_RX Audio Mixer"},
20585
20586 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20587 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20588 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20589 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20590 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20591 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20592 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20593 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20594 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20595 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20596 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20597 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20598 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20599 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20600 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020601 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020602 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Audio Mixer"},
20603
20604 {"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20605 {"TERT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20606 {"TERT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20607 {"TERT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20608 {"TERT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20609 {"TERT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20610 {"TERT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20611 {"TERT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20612 {"TERT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20613 {"TERT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20614 {"TERT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20615 {"TERT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20616 {"TERT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20617 {"TERT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020618 {"TERT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020619 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Audio Mixer"},
20620
20621 {"SEC_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20622 {"SEC_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20623 {"SEC_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20624 {"SEC_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20625 {"SEC_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20626 {"SEC_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20627 {"SEC_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20628 {"SEC_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20629 {"SEC_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20630 {"SEC_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20631 {"SEC_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20632 {"SEC_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20633 {"SEC_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20634 {"SEC_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020635 {"SEC_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020636 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Audio Mixer"},
20637
20638 {"SEC_MI2S_RX_SD1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20639 {"SEC_MI2S_RX_SD1", NULL, "SEC_MI2S_RX_SD1 Audio Mixer"},
20640
20641 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20642 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20643
20644 {"PRI_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20645 {"PRI_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20646 {"PRI_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20647 {"PRI_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20648 {"PRI_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20649 {"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20650 {"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20651 {"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20652 {"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20653 {"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20654 {"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20655 {"PRI_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20656 {"PRI_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20657 {"PRI_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20658 {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020659 {"PRI_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020660 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
20661
20662 {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20663 {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20664 {"INT0_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20665 {"INT0_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20666 {"INT0_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20667 {"INT0_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20668 {"INT0_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20669 {"INT0_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20670 {"INT0_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20671 {"INT0_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20672 {"INT0_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20673 {"INT0_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20674 {"INT0_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20675 {"INT0_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20676 {"INT0_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20677 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Audio Mixer"},
20678
20679 {"INT4_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20680 {"INT4_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20681 {"INT4_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20682 {"INT4_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20683 {"INT4_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20684 {"INT4_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20685 {"INT4_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20686 {"INT4_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20687 {"INT4_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20688 {"INT4_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20689 {"INT4_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20690 {"INT4_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20691 {"INT4_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20692 {"INT4_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20693 {"INT4_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20694 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Audio Mixer"},
20695
20696 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20697 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20698 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20699 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20700 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20701 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20702 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20703 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20704 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20705 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20706 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20707 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20708 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20709 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20710 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20711 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20712 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20713 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Audio Mixer"},
20714
20715 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20716 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20717 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20718 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20719 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20720 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20721 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20722 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20723 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20724 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20725 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20726 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20727 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20728 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20729 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20730 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020731 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020732 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Audio Mixer"},
20733
20734 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20735 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20736 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20737 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20738 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20739 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20740 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20741 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20742 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20743 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20744 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20745 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20746 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20747 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20748 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20749 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020750 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020751 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Audio Mixer"},
20752
20753 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20754 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20755 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20756 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20757 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20758 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20759 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20760 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20761 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20762 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20763 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20764 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20765 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20766 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20767 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20768 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020769 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020770 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Audio Mixer"},
20771
20772 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20773 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20774 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20775 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20776 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20777 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20778 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20779 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20780 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20781 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20782 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20783 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20784 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20785 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20786 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20787 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020788 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020789 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Audio Mixer"},
20790
20791 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20792 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20793 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20794 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20795 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20796 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20797 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20798 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20799 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20800 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20801 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20802 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20803 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20804 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20805 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20806 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20807 {"PRI_TDM_TX_0", NULL, "PRI_TDM_TX_0 Audio Mixer"},
20808
20809 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20810 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20811 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20812 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20813 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20814 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20815 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20816 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20817 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20818 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20819 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20820 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20821 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20822 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20823 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20824 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020825 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020826 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Audio Mixer"},
20827
20828 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20829 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20830 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20831 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20832 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20833 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20834 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20835 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20836 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20837 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20838 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20839 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20840 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20841 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20842 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20843 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020844 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020845 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Audio Mixer"},
20846
20847 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20848 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20849 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20850 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20851 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20852 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20853 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20854 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20855 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20856 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20857 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20858 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20859 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20860 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20861 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20862 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020863 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020864 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Audio Mixer"},
20865
20866 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20867 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20868 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20869 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20870 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20871 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20872 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20873 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20874 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20875 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20876 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20877 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20878 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20879 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20880 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20881 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020882 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020883 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Audio Mixer"},
20884
20885 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20886 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20887 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20888 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20889 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20890 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20891 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20892 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20893 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20894 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20895 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20896 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20897 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20898 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20899 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20900 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20901 {"SEC_TDM_TX_0", NULL, "SEC_TDM_TX_0 Audio Mixer"},
20902
20903 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20904 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20905 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20906 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20907 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20908 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20909 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20910 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20911 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20912 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20913 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20914 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20915 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20916 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20917 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20918 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020919 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020920 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Audio Mixer"},
20921
20922 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20923 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20924 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20925 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20926 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20927 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20928 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20929 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20930 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20931 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20932 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20933 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20934 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20935 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20936 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20937 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20938 {"TERT_TDM_TX_0", NULL, "TERT_TDM_TX_0 Audio Mixer"},
20939
20940 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20941 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20942 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20943 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20944 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20945 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20946 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20947 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20948 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20949 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20950 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20951 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20952 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20953 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20954 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20955 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020956 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020957 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Audio Mixer"},
20958
20959 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20960 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20961 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20962 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20963 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20964 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20965 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20966 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20967 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20968 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20969 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20970 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20971 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20972 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20973 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20974 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020975 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020976 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Audio Mixer"},
20977
20978 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20979 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20980 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20981 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20982 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20983 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20984 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20985 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20986 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20987 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20988 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20989 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20990 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20991 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20992 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20993 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020994 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020995 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Audio Mixer"},
20996
20997 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
20998 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
20999 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
21000 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
21001 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
21002 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
21003 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
21004 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
21005 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
21006 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
21007 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
21008 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
21009 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
21010 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
21011 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
21012 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021013 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021014 {"TERT_TDM_RX_4", NULL, "TERT_TDM_RX_4 Audio Mixer"},
21015
21016 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21017 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21018 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21019 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21020 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21021 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21022 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21023 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21024 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21025 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21026 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21027 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21028 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21029 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21030 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21031 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
21032 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021033 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021034 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Audio Mixer"},
21035
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021036 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21037 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21038 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21039 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21040 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21041 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21042 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21043 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21044 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21045 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21046 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21047 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21048 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21049 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21050 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21051 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
21052 {"QUAT_TDM_TX_0", NULL, "QUAT_TDM_TX_0 Audio Mixer"},
21053
21054 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
21055 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
21056 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
21057 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
21058 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
21059 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
21060 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
21061 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
21062 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
21063 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
21064 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
21065 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
21066 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
21067 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
21068 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
21069 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
21070 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021071 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021072 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Audio Mixer"},
21073
21074 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
21075 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
21076 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
21077 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
21078 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
21079 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
21080 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
21081 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
21082 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
21083 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
21084 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
21085 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
21086 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
21087 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
21088 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
21089 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
21090 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021091 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021092 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Audio Mixer"},
21093
21094 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
21095 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
21096 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
21097 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
21098 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
21099 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
21100 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
21101 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
21102 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
21103 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
21104 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
21105 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
21106 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
21107 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
21108 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
21109 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
21110 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021111 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021112 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
21113
Rohit Kumara5077932017-09-10 22:05:05 +053021114 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21115 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21116 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21117 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21118 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21119 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21120 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21121 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21122 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21123 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21124 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21125 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21126 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21127 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21128 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21129 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
21130 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021131 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053021132 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Audio Mixer"},
21133
21134 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21135 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21136 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21137 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21138 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21139 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21140 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21141 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21142 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21143 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21144 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21145 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21146 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21147 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21148 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21149 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
21150 {"QUIN_TDM_TX_0", NULL, "QUIN_TDM_TX_0 Audio Mixer"},
21151
21152 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
21153 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
21154 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
21155 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
21156 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
21157 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
21158 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
21159 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
21160 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
21161 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
21162 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
21163 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
21164 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
21165 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
21166 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
21167 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
21168 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021169 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053021170 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Audio Mixer"},
21171
21172 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
21173 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
21174 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
21175 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
21176 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
21177 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
21178 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
21179 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
21180 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
21181 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
21182 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
21183 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
21184 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
21185 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
21186 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
21187 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
21188 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021189 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053021190 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Audio Mixer"},
21191
21192 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
21193 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
21194 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
21195 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
21196 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
21197 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
21198 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
21199 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
21200 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
21201 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
21202 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
21203 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
21204 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
21205 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
21206 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
21207 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
21208 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021209 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053021210 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Audio Mixer"},
21211
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021212 {"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
21213 {"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
21214 {"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
21215 {"MultiMedia3 Mixer", "MI2S_TX", "MI2S_TX"},
21216 {"MultiMedia5 Mixer", "MI2S_TX", "MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021217 {"MultiMedia10 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021218 {"MultiMedia16 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021219 {"MultiMedia1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21220 {"MultiMedia2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21221 {"MultiMedia6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21222 {"MultiMedia1 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
21223 {"MultiMedia2 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
21224 {"MultiMedia1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21225 {"MultiMedia2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21226 {"MultiMedia1 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
21227 {"MultiMedia2 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
21228 {"MultiMedia1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21229 {"MultiMedia2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21230 {"MultiMedia1 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053021231 {"MultiMedia1 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021232 {"MultiMedia1 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21233 {"MultiMedia3 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
21234 {"MultiMedia5 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021235 {"MultiMedia10 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021236 {"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21237 {"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
21238 {"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021239 {"MultiMedia10 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021240 {"MultiMedia16 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
21241 {"MultiMedia16 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021242 {"MultiMedia1 Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
21243 {"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
21244 {"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021245 {"MultiMedia10 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021246 {"MultiMedia1 Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
21247 {"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
21248 {"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021249 {"MultiMedia10 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021250 {"MultiMedia16 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021251 {"MultiMedia1 Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
21252 {"MultiMedia3 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
21253 {"MultiMedia5 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021254 {"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21255 {"MultiMedia2 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
21256 {"MultiMedia2 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21257 {"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21258 {"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21259 {"MultiMedia1 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21260 {"MultiMedia2 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21261 {"MultiMedia6 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053021262 {"MultiMedia6 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021263 {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21264 {"MultiMedia3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21265 {"MultiMedia5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021266 {"MultiMedia10 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021267 {"MultiMedia6 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
21268 {"MultiMedia3 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
21269 {"MultiMedia5 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021270 {"MultiMedia10 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021271 {"MultiMedia16 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021272 {"MultiMedia6 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21273 {"MultiMedia3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21274 {"MultiMedia5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021275 {"MultiMedia10 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021276 {"MultiMedia16 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021277 {"MultiMedia17 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21278 {"MultiMedia18 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21279 {"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21280 {"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21281 {"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021282 {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21283 {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21284 {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21285 {"MultiMedia6 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021286 {"MultiMedia6 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021287
21288 {"MultiMedia1 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21289 {"MultiMedia1 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21290 {"MultiMedia1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21291 {"MultiMedia1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21292 {"MultiMedia1 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21293 {"MultiMedia1 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21294 {"MultiMedia1 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21295 {"MultiMedia1 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21296 {"MultiMedia1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21297 {"MultiMedia1 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21298 {"MultiMedia1 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21299 {"MultiMedia1 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21300 {"MultiMedia1 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21301 {"MultiMedia1 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21302 {"MultiMedia1 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21303 {"MultiMedia1 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021304 {"MultiMedia1 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021305 {"MultiMedia1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21306 {"MultiMedia1 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21307 {"MultiMedia1 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21308 {"MultiMedia1 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021309 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21310 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21311 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21312 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21313 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021314 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021315 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21316 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21317 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21318 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21319 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21320 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021321 {"MultiMedia1 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21322 {"MultiMedia1 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021323
21324 {"MultiMedia2 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21325 {"MultiMedia2 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21326 {"MultiMedia2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21327 {"MultiMedia2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21328 {"MultiMedia2 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21329 {"MultiMedia2 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21330 {"MultiMedia2 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21331 {"MultiMedia2 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21332 {"MultiMedia2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21333 {"MultiMedia2 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21334 {"MultiMedia2 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21335 {"MultiMedia2 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21336 {"MultiMedia2 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21337 {"MultiMedia2 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21338 {"MultiMedia2 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21339 {"MultiMedia2 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021340 {"MultiMedia2 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021341 {"MultiMedia2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21342 {"MultiMedia2 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21343 {"MultiMedia2 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21344 {"MultiMedia2 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021345 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21346 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21347 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21348 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21349 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021350 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021351 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21352 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21353 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21354 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21355 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21356 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021357 {"MultiMedia2 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21358 {"MultiMedia2 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021359
21360 {"MultiMedia3 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21361 {"MultiMedia3 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21362 {"MultiMedia3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21363 {"MultiMedia3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21364 {"MultiMedia3 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21365 {"MultiMedia3 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21366 {"MultiMedia3 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21367 {"MultiMedia3 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21368 {"MultiMedia3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21369 {"MultiMedia3 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21370 {"MultiMedia3 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21371 {"MultiMedia3 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21372 {"MultiMedia3 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21373 {"MultiMedia3 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21374 {"MultiMedia3 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21375 {"MultiMedia3 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021376 {"MultiMedia3 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021377 {"MultiMedia3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21378 {"MultiMedia3 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21379 {"MultiMedia3 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21380 {"MultiMedia3 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021381 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21382 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21383 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21384 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21385 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021386 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021387 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21388 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21389 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21390 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21391 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21392 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021393 {"MultiMedia3 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21394 {"MultiMedia3 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021395
21396 {"MultiMedia4 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21397 {"MultiMedia4 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21398 {"MultiMedia4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21399 {"MultiMedia4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21400 {"MultiMedia4 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21401 {"MultiMedia4 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21402 {"MultiMedia4 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21403 {"MultiMedia4 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21404 {"MultiMedia4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21405 {"MultiMedia4 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21406 {"MultiMedia4 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21407 {"MultiMedia4 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21408 {"MultiMedia4 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21409 {"MultiMedia4 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21410 {"MultiMedia4 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21411 {"MultiMedia4 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021412 {"MultiMedia4 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021413 {"MultiMedia4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21414 {"MultiMedia4 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21415 {"MultiMedia4 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21416 {"MultiMedia4 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021417 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21418 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21419 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21420 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21421 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021422 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021423 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21424 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21425 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21426 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21427 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21428 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021429 {"MultiMedia4 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21430 {"MultiMedia4 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021431
21432 {"MultiMedia5 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21433 {"MultiMedia5 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21434 {"MultiMedia5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21435 {"MultiMedia5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21436 {"MultiMedia5 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21437 {"MultiMedia5 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21438 {"MultiMedia5 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21439 {"MultiMedia5 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21440 {"MultiMedia5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21441 {"MultiMedia5 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21442 {"MultiMedia5 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21443 {"MultiMedia5 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21444 {"MultiMedia5 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21445 {"MultiMedia5 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21446 {"MultiMedia5 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21447 {"MultiMedia5 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021448 {"MultiMedia5 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021449 {"MultiMedia5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21450 {"MultiMedia5 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21451 {"MultiMedia5 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21452 {"MultiMedia5 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021453 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21454 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21455 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21456 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21457 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021458 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021459 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21460 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21461 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21462 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21463 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21464 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021465 {"MultiMedia5 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21466 {"MultiMedia5 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021467
21468 {"MultiMedia6 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21469 {"MultiMedia6 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21470 {"MultiMedia6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21471 {"MultiMedia6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21472 {"MultiMedia6 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21473 {"MultiMedia6 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21474 {"MultiMedia6 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21475 {"MultiMedia6 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21476 {"MultiMedia6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21477 {"MultiMedia6 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21478 {"MultiMedia6 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21479 {"MultiMedia6 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21480 {"MultiMedia6 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21481 {"MultiMedia6 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21482 {"MultiMedia6 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21483 {"MultiMedia6 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021484 {"MultiMedia6 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021485 {"MultiMedia6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21486 {"MultiMedia6 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21487 {"MultiMedia6 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21488 {"MultiMedia6 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021489 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21490 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21491 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21492 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21493 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021494 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021495 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21496 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21497 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21498 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21499 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21500 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021501 {"MultiMedia6 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21502 {"MultiMedia6 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021503
21504 {"MultiMedia8 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21505 {"MultiMedia8 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21506 {"MultiMedia8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21507 {"MultiMedia8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21508 {"MultiMedia8 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21509 {"MultiMedia8 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21510 {"MultiMedia8 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21511 {"MultiMedia8 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21512 {"MultiMedia8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21513 {"MultiMedia8 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21514 {"MultiMedia8 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21515 {"MultiMedia8 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21516 {"MultiMedia8 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21517 {"MultiMedia8 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21518 {"MultiMedia8 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21519 {"MultiMedia8 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021520 {"MultiMedia8 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021521 {"MultiMedia8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21522 {"MultiMedia8 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21523 {"MultiMedia8 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21524 {"MultiMedia8 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021525 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21526 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21527 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21528 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21529 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021530 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021531 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21532 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21533 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21534 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21535 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21536 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021537 {"MultiMedia8 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21538 {"MultiMedia8 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021539
Samyak Jain810e42a2019-01-07 17:53:34 +053021540 {"MultiMedia9 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021541 {"MultiMedia9 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21542 {"MultiMedia9 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21543 {"MultiMedia9 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21544 {"MultiMedia9 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21545 {"MultiMedia9 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21546 {"MultiMedia9 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21547 {"MultiMedia9 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21548 {"MultiMedia9 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021549 {"MultiMedia9 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21550 {"MultiMedia9 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21551 {"MultiMedia9 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21552 {"MultiMedia9 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021553 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21554 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21555 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21556 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21557 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021558 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021559 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21560 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21561 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21562 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21563 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21564 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021565 {"MultiMedia9 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21566 {"MultiMedia9 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021567 {"MultiMedia9 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021568
Laxminath Kasam38070be2017-08-17 18:21:59 +053021569 {"MultiMedia10 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21570 {"MultiMedia10 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21571 {"MultiMedia10 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21572 {"MultiMedia10 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21573 {"MultiMedia10 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21574 {"MultiMedia10 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21575 {"MultiMedia10 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21576 {"MultiMedia10 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021577 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21578 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21579 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21580 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21581 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21582 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021583 {"MultiMedia10 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021584
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021585 {"MultiMedia20 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21586 {"MultiMedia20 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21587 {"MultiMedia20 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21588 {"MultiMedia20 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021589 {"MultiMedia20 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021590 {"MultiMedia20 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21591 {"MultiMedia20 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21592 {"MultiMedia20 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21593 {"MultiMedia20 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21594 {"MultiMedia20 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21595 {"MultiMedia20 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21596 {"MultiMedia20 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21597 {"MultiMedia20 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21598 {"MultiMedia20 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21599 {"MultiMedia20 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21600 {"MultiMedia20 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21601 {"MultiMedia20 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21602 {"MultiMedia20 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21603 {"MultiMedia20 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21604 {"MultiMedia20 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21605 {"MultiMedia20 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021606 {"MultiMedia20 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21607 {"MultiMedia20 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21608 {"MultiMedia20 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21609 {"MultiMedia20 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021610 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21611 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21612 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21613 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21614 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021615 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021616 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21617 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21618 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21619 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21620 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21621 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021622 {"MultiMedia20 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21623 {"MultiMedia20 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021624 {"MultiMedia20 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021625
Derek Chen07c6d1c2018-07-05 10:39:25 -070021626 {"MultiMedia21 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21627 {"MultiMedia21 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21628 {"MultiMedia21 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21629 {"MultiMedia21 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21630 {"MultiMedia21 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21631 {"MultiMedia21 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21632 {"MultiMedia21 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21633 {"MultiMedia21 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21634 {"MultiMedia21 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21635 {"MultiMedia21 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21636 {"MultiMedia21 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21637 {"MultiMedia21 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21638 {"MultiMedia21 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21639 {"MultiMedia21 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21640 {"MultiMedia21 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21641 {"MultiMedia21 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21642 {"MultiMedia21 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21643 {"MultiMedia21 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21644 {"MultiMedia21 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21645 {"MultiMedia21 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21646 {"MultiMedia21 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21647 {"MultiMedia21 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053021648 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21649 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21650 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21651 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21652 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021653 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053021654 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21655 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21656 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21657 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21658 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21659 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
21660 {"MultiMedia21 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21661 {"MultiMedia21 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021662 {"MultiMedia21 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021663
Surendar Karkac1cde372018-08-14 18:56:24 +053021664 {"MultiMedia27 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053021665 {"MultiMedia27 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021666 {"MultiMedia27 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
21667 {"MultiMedia27 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053021668 {"MultiMedia27 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021669 {"MultiMedia27 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21670 {"MultiMedia27 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21671 {"MultiMedia27 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21672 {"MultiMedia27 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21673 {"MultiMedia27 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
21674 {"MultiMedia27 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21675 {"MultiMedia27 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021676 {"MultiMedia27 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021677
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021678 {"MultiMedia1 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21679 {"MultiMedia2 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21680 {"MultiMedia4 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21681 {"MultiMedia5 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21682 {"MultiMedia6 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21683 {"MultiMedia8 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021684 {"MultiMedia10 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021685
Asish Bhattacharya34504582017-08-08 12:55:01 +053021686 {"MultiMedia16 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21687 {"MultiMedia16 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21688 {"MultiMedia16 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21689 {"MultiMedia16 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21690 {"MultiMedia16 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21691 {"MultiMedia16 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21692 {"MultiMedia16 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21693 {"MultiMedia16 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21694 {"MultiMedia16 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21695 {"MultiMedia16 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21696 {"MultiMedia16 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21697 {"MultiMedia16 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21698 {"MultiMedia16 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21699 {"MultiMedia16 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21700 {"MultiMedia16 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21701 {"MultiMedia16 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21702 {"MultiMedia16 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021703 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21704 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21705 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21706 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21707 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021708 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021709 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21710 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21711 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21712 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21713 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21714 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021715 {"MultiMedia16 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21716 {"MultiMedia16 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021717 {"MultiMedia16 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021718
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021719 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21720 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21721 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21722 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21723 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21724 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021725 {"MultiMedia17 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021726
21727 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21728 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21729 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21730 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21731 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21732 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021733 {"MultiMedia18 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021734
21735 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21736 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21737 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21738 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21739 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21740 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021741 {"MultiMedia19 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021742
21743 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21744 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21745 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21746 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21747 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21748 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021749 {"MultiMedia28 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021750
21751 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21752 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21753 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21754 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21755 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21756 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021757 {"MultiMedia29 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021758
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021759 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21760 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21761 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21762 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21763 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21764 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21765 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21766 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21767 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21768 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21769 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21770 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21771 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21772 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21773 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21774 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21775 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
21776 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Audio Mixer"},
21777
21778 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21779 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21780 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21781 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21782 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21783 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21784 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21785 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21786 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21787 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21788 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21789 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21790 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21791 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21792 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21793 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21794 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
21795 {"INT_BT_A2DP_RX", NULL, "INTERNAL_A2DP_RX Audio Mixer"},
21796
21797 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21798 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21799 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21800 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21801 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21802 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21803 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21804 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21805 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21806 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21807 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21808 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21809 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21810 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21811 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21812 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21813 {"INT_FM_RX", NULL, "INTERNAL_FM_RX Audio Mixer"},
21814
21815 {"AFE_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21816 {"AFE_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21817 {"AFE_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21818 {"AFE_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21819 {"AFE_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21820 {"AFE_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21821 {"AFE_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21822 {"AFE_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21823 {"AFE_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21824 {"AFE_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21825 {"AFE_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21826 {"AFE_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21827 {"AFE_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21828 {"AFE_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21829 {"AFE_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21830 {"AFE_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21831 {"PCM_RX", NULL, "AFE_PCM_RX Audio Mixer"},
21832
21833 {"MultiMedia1 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21834 {"MultiMedia3 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21835 {"MultiMedia4 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021836 {"MultiMedia10 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021837 {"MultiMedia17 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21838 {"MultiMedia18 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21839 {"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021840 {"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21841 {"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021842 {"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21843 {"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021844 {"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021845 {"MultiMedia1 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21846 {"MultiMedia4 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021847 {"MultiMedia16 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021848 {"MultiMedia17 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21849 {"MultiMedia18 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21850 {"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021851 {"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21852 {"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021853 {"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21854 {"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21855 {"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21856
21857 {"MultiMedia1 Mixer", "AFE_PCM_TX", "PCM_TX"},
21858 {"MultiMedia3 Mixer", "AFE_PCM_TX", "PCM_TX"},
21859 {"MultiMedia4 Mixer", "AFE_PCM_TX", "PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021860 {"MultiMedia10 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021861 {"MultiMedia17 Mixer", "AFE_PCM_TX", "PCM_TX"},
21862 {"MultiMedia18 Mixer", "AFE_PCM_TX", "PCM_TX"},
21863 {"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021864 {"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
21865 {"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021866 {"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
21867 {"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021868 {"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021869 {"MM_UL1", NULL, "MultiMedia1 Mixer"},
21870 {"MultiMedia2 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21871 {"MM_UL2", NULL, "MultiMedia2 Mixer"},
21872 {"MM_UL3", NULL, "MultiMedia3 Mixer"},
21873 {"MM_UL4", NULL, "MultiMedia4 Mixer"},
21874 {"MM_UL5", NULL, "MultiMedia5 Mixer"},
21875 {"MM_UL6", NULL, "MultiMedia6 Mixer"},
21876 {"MM_UL8", NULL, "MultiMedia8 Mixer"},
21877 {"MM_UL9", NULL, "MultiMedia9 Mixer"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021878 {"MM_UL10", NULL, "MultiMedia10 Mixer"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021879 {"MM_UL16", NULL, "MultiMedia16 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021880 {"MM_UL17", NULL, "MultiMedia17 Mixer"},
21881 {"MM_UL18", NULL, "MultiMedia18 Mixer"},
21882 {"MM_UL19", NULL, "MultiMedia19 Mixer"},
21883 {"MM_UL20", NULL, "MultiMedia20 Mixer"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021884 {"MM_UL21", NULL, "MultiMedia21 Mixer"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021885 {"MM_UL27", NULL, "MultiMedia27 Mixer"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021886 {"MM_UL28", NULL, "MultiMedia28 Mixer"},
21887 {"MM_UL29", NULL, "MultiMedia29 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021888
21889 {"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21890 {"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21891 {"AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21892 {"AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21893 {"AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21894 {"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21895 {"AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21896 {"AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21897 {"AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21898 {"AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21899 {"AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21900 {"AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21901 {"AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21902 {"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21903 {"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21904 {"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021905 {"AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021906 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
21907
21908 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21909 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21910 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21911 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21912 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21913 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21914 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21915 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21916 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21917 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21918 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21919 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21920 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21921 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21922 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21923 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021924 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021925 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
21926
21927 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21928 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21929 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21930 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21931 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21932 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21933 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21934 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21935 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21936 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21937 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21938 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21939 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21940 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21941 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21942 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21943 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
21944
21945 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21946 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21947 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21948 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21949 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21950 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21951 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21952 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21953 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21954 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21955 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21956 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21957 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21958 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21959 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21960 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21961 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
21962
Rohit Kumara5077932017-09-10 22:05:05 +053021963 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21964 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21965 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21966 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21967 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21968 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21969 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21970 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21971 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21972 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21973 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21974 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21975 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21976 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21977 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21978 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21979 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX Audio Mixer"},
21980
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021981 {"PRI_RX_Voice Mixer", "Voip", "VOIP_DL"},
21982 {"PRI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21983 {"PRI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21984 {"PRI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21985 {"PRI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21986 {"PRI_I2S_RX", NULL, "PRI_RX_Voice Mixer"},
21987
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021988 {"SEC_RX_Voice Mixer", "Voip", "VOIP_DL"},
21989 {"SEC_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21990 {"SEC_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21991 {"SEC_I2S_RX", NULL, "SEC_RX_Voice Mixer"},
21992
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021993 {"SEC_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
21994 {"SEC_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21995 {"SEC_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21996 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21997 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21998 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_Voice Mixer"},
21999
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022000 {"SLIM_0_RX_Voice Mixer", "Voip", "VOIP_DL"},
22001 {"SLIM_0_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022002 {"SLIM_0_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22003 {"SLIM_0_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22004 {"SLIM_0_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22005 {"SLIMBUS_0_RX", NULL, "SLIM_0_RX_Voice Mixer"},
22006
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022007 {"SLIM_6_RX_Voice Mixer", "Voip", "VOIP_DL"},
22008 {"SLIM_6_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022009 {"SLIM_6_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22010 {"SLIM_6_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22011 {"SLIM_6_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22012 {"SLIMBUS_6_RX", NULL, "SLIM_6_RX_Voice Mixer"},
22013
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022014 {"USB_AUDIO_RX_Voice Mixer", "Voip", "VOIP_DL"},
22015 {"USB_AUDIO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022016 {"USB_AUDIO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22017 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22018 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22019 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
22020
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080022021 {"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
22022 {"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080022023 {"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22024 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22025 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22026 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
22027
Karthikeyan Mani57550082018-05-03 18:43:58 -070022028 {"DISPLAY_PORT_RX1_Voice Mixer", "Voip", "VOIP_DL"},
22029 {"DISPLAY_PORT_RX1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22030 {"DISPLAY_PORT_RX1_Voice Mixer", "QCHAT", "QCHAT_DL"},
22031 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22032 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22033 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1_Voice Mixer"},
22034
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022035 {"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
22036 {"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22037 {"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22038 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22039 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022040 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX_Voice Mixer"},
22041
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022042 {"AFE_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22043 {"AFE_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22044 {"AFE_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22045 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22046 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22047 {"PCM_RX", NULL, "AFE_PCM_RX_Voice Mixer"},
22048
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022049 {"AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22050 {"AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022051 {"AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22052 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22053 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22054 {"AUX_PCM_RX", NULL, "AUX_PCM_RX_Voice Mixer"},
22055
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022056 {"SEC_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22057 {"SEC_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022058 {"SEC_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22059 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22060 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22061 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
22062
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022063 {"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22064 {"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022065 {"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22066 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22067 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22068 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
22069
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022070 {"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22071 {"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022072 {"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22073 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22074 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22075 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
22076
Rohit Kumara5077932017-09-10 22:05:05 +053022077 {"QUIN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22078 {"QUIN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053022079 {"QUIN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22080 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22081 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22082 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX_Voice Mixer"},
22083
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022084 {"HDMI_RX_Voice Mixer", "Voip", "VOIP_DL"},
22085 {"HDMI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22086 {"HDMI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22087 {"HDMI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22088 {"HDMI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22089 {"HDMI", NULL, "HDMI_RX_Voice Mixer"},
22090 {"HDMI", NULL, "HDMI_DL_HL"},
22091
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022092 {"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022093 {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22094 {"MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22095 {"MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
kunleiz8a60b822017-10-11 15:04:02 +080022096 {"MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022097 {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
22098
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022099 {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022100 {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22101 {"PRI_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22102 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22103 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22104 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"},
22105
22106 {"INT0_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
22107 {"INT0_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22108 {"INT0_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22109 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22110 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22111 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_Voice Mixer"},
22112
22113 {"INT4_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
22114 {"INT4_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22115 {"INT4_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22116 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22117 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22118 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_Voice Mixer"},
22119
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022120 {"TERT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022121 {"TERT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22122 {"TERT_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22123 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22124 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22125 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_Voice Mixer"},
22126
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022127 {"QUAT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022128 {"QUAT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22129 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22130 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22131 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_Voice Mixer"},
22132
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022133 {"QUIN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022134 {"QUIN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22135 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22136 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22137 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"},
22138
22139 {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22140 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"},
22141
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022142 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22143 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22144 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_Voice Mixer"},
22145
22146 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22147 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22148 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_Voice Mixer"},
22149
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022150 {"VOC_EXT_EC MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22151 {"VOC_EXT_EC MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22152 {"VOC_EXT_EC MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22153 {"VOC_EXT_EC MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022154 {"VOC_EXT_EC MUX", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022155 {"VOC_EXT_EC MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Karthikeyan Mania1eb9382018-07-25 10:52:58 -070022156 {"VOC_EXT_EC MUX", "SEC_TDM_TX", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022157 {"VOIP_UL", NULL, "VOC_EXT_EC MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022158 {"VOICEMMODE1_UL", NULL, "VOC_EXT_EC MUX"},
22159 {"VOICEMMODE2_UL", NULL, "VOC_EXT_EC MUX"},
22160
22161 {"AUDIO_REF_EC_UL1 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22162 {"AUDIO_REF_EC_UL1 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22163 {"AUDIO_REF_EC_UL1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22164 {"AUDIO_REF_EC_UL1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22165 {"AUDIO_REF_EC_UL1 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
22166 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22167 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
22168 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
22169 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
22170 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070022171 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
22172 {"AUDIO_REF_EC_UL1 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022173
22174 {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22175 {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22176 {"AUDIO_REF_EC_UL2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22177 {"AUDIO_REF_EC_UL2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22178
22179 {"AUDIO_REF_EC_UL3 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22180 {"AUDIO_REF_EC_UL3 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22181 {"AUDIO_REF_EC_UL3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22182 {"AUDIO_REF_EC_UL3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22183
22184 {"AUDIO_REF_EC_UL4 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22185 {"AUDIO_REF_EC_UL4 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22186 {"AUDIO_REF_EC_UL4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22187 {"AUDIO_REF_EC_UL4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22188
22189 {"AUDIO_REF_EC_UL5 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22190 {"AUDIO_REF_EC_UL5 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22191 {"AUDIO_REF_EC_UL5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22192 {"AUDIO_REF_EC_UL5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22193
22194 {"AUDIO_REF_EC_UL6 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22195 {"AUDIO_REF_EC_UL6 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22196 {"AUDIO_REF_EC_UL6 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22197 {"AUDIO_REF_EC_UL6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22198
22199 {"AUDIO_REF_EC_UL8 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22200 {"AUDIO_REF_EC_UL8 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22201 {"AUDIO_REF_EC_UL8 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22202 {"AUDIO_REF_EC_UL8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22203
22204 {"AUDIO_REF_EC_UL9 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22205 {"AUDIO_REF_EC_UL9 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22206 {"AUDIO_REF_EC_UL9 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22207 {"AUDIO_REF_EC_UL9 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22208
Laxminath Kasam38070be2017-08-17 18:21:59 +053022209 {"AUDIO_REF_EC_UL10 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22210 {"AUDIO_REF_EC_UL10 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22211 {"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22212 {"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22213 {"AUDIO_REF_EC_UL10 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
22214 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22215 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
22216 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
22217 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
22218 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070022219 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
22220 {"AUDIO_REF_EC_UL10 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Vikram Panduranga016c49f2017-09-11 15:15:56 -070022221
22222 {"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22223 {"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22224 {"AUDIO_REF_EC_UL16 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22225 {"AUDIO_REF_EC_UL16 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22226
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022227 {"AUDIO_REF_EC_UL17 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22228 {"AUDIO_REF_EC_UL17 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22229 {"AUDIO_REF_EC_UL17 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22230 {"AUDIO_REF_EC_UL17 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22231
22232 {"AUDIO_REF_EC_UL18 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22233 {"AUDIO_REF_EC_UL18 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22234 {"AUDIO_REF_EC_UL18 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22235 {"AUDIO_REF_EC_UL18 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22236
22237 {"AUDIO_REF_EC_UL19 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22238 {"AUDIO_REF_EC_UL19 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22239 {"AUDIO_REF_EC_UL19 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22240 {"AUDIO_REF_EC_UL19 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22241
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053022242 {"AUDIO_REF_EC_UL28 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22243 {"AUDIO_REF_EC_UL28 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22244 {"AUDIO_REF_EC_UL28 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22245 {"AUDIO_REF_EC_UL28 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22246
22247 {"AUDIO_REF_EC_UL29 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22248 {"AUDIO_REF_EC_UL29 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22249 {"AUDIO_REF_EC_UL29 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22250 {"AUDIO_REF_EC_UL29 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Yunfei Zhang3efc4a22017-11-07 16:30:13 +080022251
22252 {"LSM1_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22253 {"LSM2_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22254 {"LSM3_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22255 {"LSM4_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22256 {"LSM5_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22257 {"LSM6_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22258 {"LSM7_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22259 {"LSM8_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22260
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022261 {"MM_UL1", NULL, "AUDIO_REF_EC_UL1 MUX"},
22262 {"MM_UL2", NULL, "AUDIO_REF_EC_UL2 MUX"},
22263 {"MM_UL3", NULL, "AUDIO_REF_EC_UL3 MUX"},
22264 {"MM_UL4", NULL, "AUDIO_REF_EC_UL4 MUX"},
22265 {"MM_UL5", NULL, "AUDIO_REF_EC_UL5 MUX"},
22266 {"MM_UL6", NULL, "AUDIO_REF_EC_UL6 MUX"},
22267 {"MM_UL8", NULL, "AUDIO_REF_EC_UL8 MUX"},
22268 {"MM_UL9", NULL, "AUDIO_REF_EC_UL9 MUX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053022269 {"MM_UL10", NULL, "AUDIO_REF_EC_UL10 MUX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053022270 {"MM_UL16", NULL, "AUDIO_REF_EC_UL16 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022271 {"MM_UL17", NULL, "AUDIO_REF_EC_UL17 MUX"},
22272 {"MM_UL18", NULL, "AUDIO_REF_EC_UL18 MUX"},
22273 {"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053022274 {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
22275 {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022276
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022277 {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
22278 {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
22279 {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"},
22280 {"VoiceMMode1_Tx Mixer", "TERT_MI2S_TX_MMode1", "TERT_MI2S_TX"},
22281 {"VoiceMMode1_Tx Mixer", "INT3_MI2S_TX_MMode1", "INT3_MI2S_TX"},
22282 {"VoiceMMode1_Tx Mixer", "SLIM_0_TX_MMode1", "SLIMBUS_0_TX"},
22283 {"VoiceMMode1_Tx Mixer", "SLIM_7_TX_MMode1", "SLIMBUS_7_TX"},
22284 {"VoiceMMode1_Tx Mixer", "SLIM_8_TX_MMode1", "SLIMBUS_8_TX"},
22285 {"VoiceMMode1_Tx Mixer", "USB_AUDIO_TX_MMode1", "USB_AUDIO_TX"},
22286 {"VoiceMMode1_Tx Mixer", "INT_BT_SCO_TX_MMode1", "INT_BT_SCO_TX"},
22287 {"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
22288 {"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
22289 {"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
22290 {"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
22291 {"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022292 {"VoiceMMode1_Tx Mixer", "QUIN_AUX_PCM_TX_MMode1", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022293 {"VoiceMMode1_Tx Mixer", "QUAT_TDM_TX_0_MMode1", "QUAT_TDM_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022294 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_0_MMode1", "TX_CDC_DMA_TX_0"},
22295 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_1_MMode1", "TX_CDC_DMA_TX_1"},
22296 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_2_MMode1", "TX_CDC_DMA_TX_2"},
22297 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_3_MMode1", "TX_CDC_DMA_TX_3"},
22298 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_4_MMode1", "TX_CDC_DMA_TX_4"},
22299 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_5_MMode1", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022300 {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
22301
22302 {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
22303 {"VoiceMMode2_Tx Mixer", "PRI_MI2S_TX_MMode2", "PRI_MI2S_TX"},
22304 {"VoiceMMode2_Tx Mixer", "MI2S_TX_MMode2", "MI2S_TX"},
22305 {"VoiceMMode2_Tx Mixer", "TERT_MI2S_TX_MMode2", "TERT_MI2S_TX"},
22306 {"VoiceMMode2_Tx Mixer", "INT3_MI2S_TX_MMode2", "INT3_MI2S_TX"},
22307 {"VoiceMMode2_Tx Mixer", "SLIM_0_TX_MMode2", "SLIMBUS_0_TX"},
22308 {"VoiceMMode2_Tx Mixer", "SLIM_7_TX_MMode2", "SLIMBUS_7_TX"},
22309 {"VoiceMMode2_Tx Mixer", "SLIM_8_TX_MMode2", "SLIMBUS_8_TX"},
22310 {"VoiceMMode2_Tx Mixer", "USB_AUDIO_TX_MMode2", "USB_AUDIO_TX"},
22311 {"VoiceMMode2_Tx Mixer", "INT_BT_SCO_TX_MMode2", "INT_BT_SCO_TX"},
22312 {"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
22313 {"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
22314 {"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
22315 {"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
22316 {"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022317 {"VoiceMMode2_Tx Mixer", "QUIN_AUX_PCM_TX_MMode2", "QUIN_AUX_PCM_TX"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022318 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_0_MMode2", "TX_CDC_DMA_TX_0"},
22319 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_1_MMode2", "TX_CDC_DMA_TX_1"},
22320 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_2_MMode2", "TX_CDC_DMA_TX_2"},
22321 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_3_MMode2", "TX_CDC_DMA_TX_3"},
22322 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_4_MMode2", "TX_CDC_DMA_TX_4"},
22323 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_5_MMode2", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022324 {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
22325
22326 {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
22327 {"Voip_Tx Mixer", "MI2S_TX_Voip", "MI2S_TX"},
22328 {"Voip_Tx Mixer", "TERT_MI2S_TX_Voip", "TERT_MI2S_TX"},
22329 {"Voip_Tx Mixer", "INT3_MI2S_TX_Voip", "INT3_MI2S_TX"},
22330 {"Voip_Tx Mixer", "SLIM_0_TX_Voip", "SLIMBUS_0_TX"},
22331 {"Voip_Tx Mixer", "SLIM_7_TX_Voip", "SLIMBUS_7_TX"},
22332 {"Voip_Tx Mixer", "SLIM_8_TX_Voip", "SLIMBUS_8_TX"},
22333 {"Voip_Tx Mixer", "USB_AUDIO_TX_Voip", "USB_AUDIO_TX"},
22334 {"Voip_Tx Mixer", "INTERNAL_BT_SCO_TX_Voip", "INT_BT_SCO_TX"},
22335 {"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
22336 {"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
22337 {"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
22338 {"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
22339 {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022340 {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022341 {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
22342 {"VOIP_UL", NULL, "Voip_Tx Mixer"},
22343
22344 {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},
22345 {"SLIMBUS_0_RX", NULL, "SLIMBUS_DL_HL"},
22346 {"SLIMBUS1_DL_HL", "Switch", "SLIM1_DL_HL"},
22347 {"SLIMBUS_1_RX", NULL, "SLIMBUS1_DL_HL"},
22348 {"SLIMBUS3_DL_HL", "Switch", "SLIM3_DL_HL"},
22349 {"SLIMBUS_3_RX", NULL, "SLIMBUS3_DL_HL"},
22350 {"SLIMBUS4_DL_HL", "Switch", "SLIM4_DL_HL"},
22351 {"SLIMBUS_4_RX", NULL, "SLIMBUS4_DL_HL"},
22352 {"SLIMBUS6_DL_HL", "Switch", "SLIM0_DL_HL"},
22353 {"SLIMBUS_6_RX", NULL, "SLIMBUS6_DL_HL"},
22354 {"SLIM0_UL_HL", NULL, "SLIMBUS_0_TX"},
22355 {"SLIM1_UL_HL", NULL, "SLIMBUS_1_TX"},
22356 {"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
22357 {"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
22358 {"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053022359 {"WSA_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
22360 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_DL_HL"},
22361 {"CDC_DMA_UL_HL", NULL, "VA_CDC_DMA_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022362 {"RX_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
22363 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_DL_HL"},
22364 {"TX3_CDC_DMA_UL_HL", NULL, "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022365 {"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22366 {"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22367 {"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22368 {"LSM1 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22369 {"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22370 {"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22371 {"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22372 {"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022373 {"LSM1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22374 {"LSM1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022375 {"LSM1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022376 {"LSM1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022377 {"LSM1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022378 {"LSM1_UL_HL", NULL, "LSM1 Mixer"},
22379
22380 {"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22381 {"LSM2 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22382 {"LSM2 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22383 {"LSM2 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22384 {"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22385 {"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22386 {"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22387 {"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022388 {"LSM2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22389 {"LSM2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022390 {"LSM2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022391 {"LSM2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022392 {"LSM2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022393 {"LSM2_UL_HL", NULL, "LSM2 Mixer"},
22394
22395
22396 {"LSM3 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22397 {"LSM3 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22398 {"LSM3 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22399 {"LSM3 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22400 {"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22401 {"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22402 {"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22403 {"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022404 {"LSM3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22405 {"LSM3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022406 {"LSM3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022407 {"LSM3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022408 {"LSM3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022409 {"LSM3_UL_HL", NULL, "LSM3 Mixer"},
22410
22411
22412 {"LSM4 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22413 {"LSM4 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22414 {"LSM4 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22415 {"LSM4 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22416 {"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22417 {"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22418 {"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22419 {"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022420 {"LSM4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22421 {"LSM4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022422 {"LSM4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022423 {"LSM4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022424 {"LSM4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022425 {"LSM4_UL_HL", NULL, "LSM4 Mixer"},
22426
22427 {"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22428 {"LSM5 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22429 {"LSM5 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22430 {"LSM5 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22431 {"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22432 {"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22433 {"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22434 {"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022435 {"LSM5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22436 {"LSM5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022437 {"LSM5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022438 {"LSM5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022439 {"LSM5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022440 {"LSM5_UL_HL", NULL, "LSM5 Mixer"},
22441
22442 {"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22443 {"LSM6 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22444 {"LSM6 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22445 {"LSM6 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22446 {"LSM6 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22447 {"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022448 {"LSM6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22449 {"LSM6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022450 {"LSM6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022451 {"LSM6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022452 {"LSM6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022453 {"LSM6_UL_HL", NULL, "LSM6 Mixer"},
22454
22455 {"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22456 {"LSM7 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22457 {"LSM7 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22458 {"LSM7 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22459 {"LSM7 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22460 {"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022461 {"LSM7 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22462 {"LSM7 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022463 {"LSM7 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022464 {"LSM7 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022465 {"LSM7 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022466 {"LSM7_UL_HL", NULL, "LSM7 Mixer"},
22467
22468 {"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22469 {"LSM8 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22470 {"LSM8 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22471 {"LSM8 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22472 {"LSM8 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22473 {"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022474 {"LSM8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22475 {"LSM8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022476 {"LSM8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022477 {"LSM8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022478 {"LSM8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022479 {"LSM8_UL_HL", NULL, "LSM8 Mixer"},
22480
22481
22482 {"CPE_LSM_UL_HL", NULL, "BE_IN"},
22483 {"QCHAT_Tx Mixer", "PRI_TX_QCHAT", "PRI_I2S_TX"},
22484 {"QCHAT_Tx Mixer", "SLIM_0_TX_QCHAT", "SLIMBUS_0_TX"},
22485 {"QCHAT_Tx Mixer", "SLIM_7_TX_QCHAT", "SLIMBUS_7_TX"},
22486 {"QCHAT_Tx Mixer", "SLIM_8_TX_QCHAT", "SLIMBUS_8_TX"},
22487 {"QCHAT_Tx Mixer", "INTERNAL_BT_SCO_TX_QCHAT", "INT_BT_SCO_TX"},
22488 {"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
22489 {"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
22490 {"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
22491 {"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
22492 {"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022493 {"QCHAT_Tx Mixer", "QUIN_AUX_PCM_TX_QCHAT", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022494 {"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
22495 {"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
22496 {"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
22497 {"QCHAT_Tx Mixer", "INT3_MI2S_TX_QCHAT", "INT3_MI2S_TX"},
22498 {"QCHAT_Tx Mixer", "USB_AUDIO_TX_QCHAT", "USB_AUDIO_TX"},
22499 {"QCHAT_UL", NULL, "QCHAT_Tx Mixer"},
22500
22501 {"INT_FM_RX", NULL, "INTFM_DL_HL"},
22502 {"INTFM_UL_HL", NULL, "INT_FM_TX"},
22503 {"INTHFP_UL_HL", NULL, "HFP_PRI_AUX_UL_HL"},
22504 {"HFP_PRI_AUX_UL_HL", "Switch", "AUX_PCM_TX"},
22505 {"INTHFP_UL_HL", NULL, "HFP_AUX_UL_HL"},
22506 {"HFP_AUX_UL_HL", "Switch", "SEC_AUX_PCM_TX"},
22507 {"INTHFP_UL_HL", NULL, "HFP_INT_UL_HL"},
22508 {"HFP_INT_UL_HL", "Switch", "INT_BT_SCO_TX"},
22509 {"SLIM7_UL_HL", NULL, "HFP_SLIM7_UL_HL"},
22510 {"HFP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
22511 {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"},
22512 {"AUX_PCM_RX", NULL, "INTHFP_DL_HL"},
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080022513 {"SLIM7_UL_HL", NULL, "A2DP_SLIM7_UL_HL"},
22514 {"A2DP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022515 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022516 {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022517 {"SEC_AUXPCM_UL_HL", NULL, "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022518 {"MI2S_RX", NULL, "MI2S_DL_HL"},
22519 {"MI2S_UL_HL", NULL, "MI2S_TX"},
22520 {"PCM_RX_DL_HL", "Switch", "SLIM0_DL_HL"},
22521 {"PCM_RX", NULL, "PCM_RX_DL_HL"},
22522
22523 /* connect to INT4_MI2S_DL_HL since same pcm_id */
22524 {"INT0_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
22525 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_DL_HL"},
22526 {"INT4_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
22527 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_DL_HL"},
22528 {"PRI_MI2S_RX_DL_HL", "Switch", "PRI_MI2S_DL_HL"},
22529 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_DL_HL"},
22530 {"SEC_MI2S_RX_DL_HL", "Switch", "SEC_MI2S_DL_HL"},
22531 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_DL_HL"},
22532 {"TERT_MI2S_RX_DL_HL", "Switch", "TERT_MI2S_DL_HL"},
22533 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_DL_HL"},
22534
22535 {"QUAT_MI2S_RX_DL_HL", "Switch", "QUAT_MI2S_DL_HL"},
22536 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053022537 {"QUIN_MI2S_RX_DL_HL", "Switch", "QUIN_MI2S_DL_HL"},
22538 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022539 {"MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
22540 {"INT3_MI2S_UL_HL", NULL, "INT3_MI2S_TX"},
22541 {"TERT_MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
22542 {"SEC_I2S_RX", NULL, "SEC_I2S_DL_HL"},
22543 {"PRI_MI2S_UL_HL", NULL, "PRI_MI2S_TX"},
22544 {"SEC_MI2S_UL_HL", NULL, "SEC_MI2S_TX"},
22545 {"SEC_MI2S_RX", NULL, "SEC_MI2S_DL_HL"},
22546 {"PRI_MI2S_RX", NULL, "PRI_MI2S_DL_HL"},
22547 {"TERT_MI2S_RX", NULL, "TERT_MI2S_DL_HL"},
22548 {"QUAT_MI2S_UL_HL", NULL, "QUAT_MI2S_TX"},
22549
22550 {"PRI_TDM_TX_0_UL_HL", NULL, "PRI_TDM_TX_0"},
22551 {"PRI_TDM_TX_1_UL_HL", NULL, "PRI_TDM_TX_1"},
22552 {"PRI_TDM_TX_2_UL_HL", NULL, "PRI_TDM_TX_2"},
22553 {"PRI_TDM_TX_3_UL_HL", NULL, "PRI_TDM_TX_3"},
22554 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_DL_HL"},
22555 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_DL_HL"},
22556 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_DL_HL"},
22557 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_DL_HL"},
22558 {"SEC_TDM_TX_0_UL_HL", NULL, "SEC_TDM_TX_0"},
22559 {"SEC_TDM_TX_1_UL_HL", NULL, "SEC_TDM_TX_1"},
22560 {"SEC_TDM_TX_2_UL_HL", NULL, "SEC_TDM_TX_2"},
22561 {"SEC_TDM_TX_3_UL_HL", NULL, "SEC_TDM_TX_3"},
22562 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0_DL_HL"},
22563 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
22564 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
22565 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
Derek Chenfdcc0982018-10-02 15:14:03 -070022566 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022567 {"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
22568 {"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
22569 {"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
22570 {"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070022571 {"TERT_TDM_TX_7_UL_HL", NULL, "TERT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022572 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
22573 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
22574 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
22575 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3_DL_HL"},
22576 {"QUAT_TDM_TX_0_UL_HL", NULL, "QUAT_TDM_TX_0"},
22577 {"QUAT_TDM_TX_1_UL_HL", NULL, "QUAT_TDM_TX_1"},
22578 {"QUAT_TDM_TX_2_UL_HL", NULL, "QUAT_TDM_TX_2"},
22579 {"QUAT_TDM_TX_3_UL_HL", NULL, "QUAT_TDM_TX_3"},
22580 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0_DL_HL"},
22581 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1_DL_HL"},
22582 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_DL_HL"},
22583 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053022584 {"QUIN_TDM_TX_0_UL_HL", NULL, "QUIN_TDM_TX_0"},
22585 {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"},
22586 {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"},
22587 {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"},
22588 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"},
22589 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"},
22590 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"},
22591 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022592
22593 {"PRI_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22594 {"PRI_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22595 {"PRI_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22596 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22597 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22598 {"PRI_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22599 {"PRI_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22600 {"PRI_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22601 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22602 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22603 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22604 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22605 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22606 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22607 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22608 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022609 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22610 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22611 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22612 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022613 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Port Mixer"},
22614
22615 {"PRI_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22616 {"PRI_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22617 {"PRI_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22618 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22619 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22620 {"PRI_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22621 {"PRI_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22622 {"PRI_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22623 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22624 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22625 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22626 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22627 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22628 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22629 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22630 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022631 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22632 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22633 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22634 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022635 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Port Mixer"},
22636
22637 {"PRI_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22638 {"PRI_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22639 {"PRI_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22640 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22641 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22642 {"PRI_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22643 {"PRI_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22644 {"PRI_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22645 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22646 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22647 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22648 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22649 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22650 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22651 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22652 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022653 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22654 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22655 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22656 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022657 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Port Mixer"},
22658
22659 {"PRI_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22660 {"PRI_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22661 {"PRI_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22662 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22663 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22664 {"PRI_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22665 {"PRI_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22666 {"PRI_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22667 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22668 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22669 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22670 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22671 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22672 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22673 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22674 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022675 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22676 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22677 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22678 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022679 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Port Mixer"},
22680
22681 {"SEC_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22682 {"SEC_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22683 {"SEC_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22684 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22685 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22686 {"SEC_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22687 {"SEC_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22688 {"SEC_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22689 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22690 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22691 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22692 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22693 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22694 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22695 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22696 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022697 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22698 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22699 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22700 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022701 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Port Mixer"},
22702
22703 {"SEC_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22704 {"SEC_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22705 {"SEC_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22706 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22707 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22708 {"SEC_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22709 {"SEC_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22710 {"SEC_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22711 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22712 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22713 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22714 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22715 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22716 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22717 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22718 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022719 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22720 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22721 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22722 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022723 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Port Mixer"},
22724
22725 {"SEC_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22726 {"SEC_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22727 {"SEC_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22728 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22729 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22730 {"SEC_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22731 {"SEC_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22732 {"SEC_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22733 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22734 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22735 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22736 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22737 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22738 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22739 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22740 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022741 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22742 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22743 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22744 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022745 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Port Mixer"},
22746
22747 {"SEC_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22748 {"SEC_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22749 {"SEC_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22750 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22751 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22752 {"SEC_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22753 {"SEC_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22754 {"SEC_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22755 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22756 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22757 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22758 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22759 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22760 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22761 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22762 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022763 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22764 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22765 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22766 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022767 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
22768
Derek Chenfdcc0982018-10-02 15:14:03 -070022769 {"SEC_TDM_RX_7 Port Mixer", "TERT_TDM_TX_7", "TERT_TDM_TX_7"},
22770 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7 Port Mixer"},
22771
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022772 {"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22773 {"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22774 {"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22775 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22776 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22777 {"TERT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22778 {"TERT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22779 {"TERT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22780 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22781 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22782 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22783 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22784 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22785 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22786 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22787 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022788 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22789 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22790 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22791 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022792 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Port Mixer"},
22793
22794 {"TERT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22795 {"TERT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22796 {"TERT_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22797 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22798 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22799 {"TERT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22800 {"TERT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22801 {"TERT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22802 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22803 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22804 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22805 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22806 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22807 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22808 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22809 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022810 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22811 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22812 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22813 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022814 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Port Mixer"},
22815
22816 {"TERT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22817 {"TERT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22818 {"TERT_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22819 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22820 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22821 {"TERT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22822 {"TERT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22823 {"TERT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22824 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22825 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22826 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22827 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22828 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22829 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22830 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22831 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022832 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22833 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22834 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22835 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022836 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Port Mixer"},
22837
22838 {"TERT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22839 {"TERT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22840 {"TERT_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22841 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22842 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22843 {"TERT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22844 {"TERT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22845 {"TERT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22846 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22847 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22848 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22849 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22850 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22851 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22852 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22853 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022854 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22855 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22856 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22857 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022858 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Port Mixer"},
22859
22860 {"QUAT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22861 {"QUAT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22862 {"QUAT_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22863 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22864 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22865 {"QUAT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22866 {"QUAT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22867 {"QUAT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22868 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22869 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22870 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22871 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22872 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22873 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22874 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22875 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022876 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22877 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22878 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22879 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022880 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Port Mixer"},
22881
22882 {"QUAT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22883 {"QUAT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22884 {"QUAT_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22885 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22886 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22887 {"QUAT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22888 {"QUAT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22889 {"QUAT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22890 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22891 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22892 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22893 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22894 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22895 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22896 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22897 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022898 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22899 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22900 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22901 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022902 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Port Mixer"},
22903
22904 {"QUAT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22905 {"QUAT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22906 {"QUAT_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22907 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22908 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22909 {"QUAT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22910 {"QUAT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22911 {"QUAT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22912 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22913 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22914 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22915 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22916 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22917 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22918 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22919 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022920 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22921 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22922 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22923 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022924 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Port Mixer"},
22925
22926 {"QUAT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22927 {"QUAT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22928 {"QUAT_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22929 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22930 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22931 {"QUAT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22932 {"QUAT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22933 {"QUAT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22934 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22935 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22936 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22937 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22938 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22939 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22940 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22941 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022942 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22943 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22944 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22945 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022946 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Port Mixer"},
22947
Rohit Kumara5077932017-09-10 22:05:05 +053022948 {"QUIN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22949 {"QUIN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22950 {"QUIN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22951 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22952 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22953 {"QUIN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22954 {"QUIN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22955 {"QUIN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22956 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22957 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22958 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22959 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22960 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22961 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22962 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22963 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22964 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22965 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22966 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22967 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022968 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022969
22970 {"QUIN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22971 {"QUIN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22972 {"QUIN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22973 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22974 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22975 {"QUIN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22976 {"QUIN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22977 {"QUIN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22978 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22979 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22980 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22981 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22982 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22983 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22984 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22985 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22986 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22987 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22988 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22989 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022990 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022991
22992 {"QUIN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22993 {"QUIN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22994 {"QUIN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22995 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22996 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22997 {"QUIN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22998 {"QUIN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22999 {"QUIN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23000 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23001 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23002 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23003 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23004 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23005 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23006 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23007 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
23008 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23009 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23010 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23011 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053023012 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053023013
23014 {"QUIN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23015 {"QUIN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23016 {"QUIN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23017 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23018 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23019 {"QUIN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23020 {"QUIN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23021 {"QUIN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23022 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23023 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23024 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23025 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23026 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23027 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23028 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23029 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
23030 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23031 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23032 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23033 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053023034 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053023035
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023036 {"INT0_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23037 {"INT0_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23038 {"INT0_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23039 {"INT0_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023040 {"INT0_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023041 {"INT0_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
23042 {"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23043 {"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23044 {"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023045 {"INT0_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023046 {"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23047 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
23048
23049 {"INT4_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23050 {"INT4_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23051 {"INT4_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23052 {"INT4_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023053 {"INT4_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023054 {"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
23055 {"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23056 {"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023057 {"INT4_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023058 {"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23059 {"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23060 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
23061
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053023062 {"WSA_CDC_DMA_RX_0 Port Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
23063 {"WSA_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080023064 {"WSA_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080023065 {"WSA_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Meng Wangbbf77922019-03-01 13:24:14 +080023066 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Port Mixer"},
23067
23068 {"RX_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
23069 {"RX_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080023070 {"RX_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Meng Wangbbf77922019-03-01 13:24:14 +080023071 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Port Mixer"},
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053023072
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023073 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23074 {"SLIMBUS_0_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23075 {"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23076 {"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23077 {"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023078 {"SLIMBUS_0_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023079 {"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23080 {"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23081 {"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
23082 {"SLIMBUS_0_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023083 {"SLIMBUS_0_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023084 {"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23085 {"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23086 {"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23087 {"SLIMBUS_0_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23088 {"SLIMBUS_0_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023089 {"SLIMBUS_0_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023090 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23091 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
23092 {"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23093 {"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23094 {"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
23095 {"USB_AUDIO_RX Port Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
23096 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Port Mixer"},
23097 {"USB_DL_HL", "Switch", "USBAUDIO_DL_HL"},
23098 {"USB_AUDIO_RX", NULL, "USB_DL_HL"},
23099 {"USBAUDIO_UL_HL", NULL, "USB_AUDIO_TX"},
23100
23101
23102 {"AUX_PCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23103 {"AUX_PCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23104 {"AUX_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23105 {"AUX_PCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23106 {"AUX_PCM_RX Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080023107 {"AUX_PCM_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023108 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Port Mixer"},
23109
23110 {"SEC_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23111 {"SEC_AUXPCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23112 {"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080023113 {"SEC_AUXPCM_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023114 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
23115
23116 {"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23117 {"TERT_AUXPCM_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
23118 {"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23119 {"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
23120
23121 {"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23122 {"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
23123 {"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23124 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
23125
Rohit Kumara5077932017-09-10 22:05:05 +053023126 {"QUIN_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23127 {"QUIN_AUXPCM_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
23128 {"QUIN_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23129 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUXPCM_RX Port Mixer"},
23130
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023131 {"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
23132 {"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23133 {"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23134 {"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
23135 {"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23136 {"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23137 {"Voice Stub Tx Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
23138 {"Voice Stub Tx Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023139 {"Voice Stub Tx Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023140 {"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
23141 {"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23142 {"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23143 {"Voice Stub Tx Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
23144 {"Voice Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23145 {"Voice Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23146 {"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
23147 {"Voice Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23148 {"Voice Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23149 {"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
23150 {"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
23151
23152 {"VoLTE Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
23153 {"VoLTE Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23154 {"VoLTE Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
23155 {"VoLTE Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23156 {"VoLTE Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23157 {"VoLTE Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
23158 {"VoLTE Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23159 {"VoLTE Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23160 {"VoLTE Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
23161 {"VoLTE Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23162 {"VoLTE Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23163 {"VOLTE_STUB_UL", NULL, "VoLTE Stub Tx Mixer"},
23164
23165 {"Voice2 Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
23166 {"Voice2 Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23167 {"Voice2 Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
23168 {"Voice2 Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23169 {"Voice2 Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23170 {"Voice2 Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
23171 {"Voice2 Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23172 {"Voice2 Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23173 {"Voice2 Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
23174 {"Voice2 Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23175 {"Voice2 Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23176 {"VOICE2_STUB_UL", NULL, "Voice2 Stub Tx Mixer"},
23177
kunleizdf5a00a2017-11-27 15:27:36 +080023178 {"STUB_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
23179 {"STUB_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023180 {"STUB_RX", NULL, "STUB_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080023181
23182 {"SLIMBUS_1_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
23183 {"SLIMBUS_1_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023184 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080023185
23186 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
23187 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023188 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
23189
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023190 {"SLIM_7_RX_Voice Mixer", "Voip", "VOIP_DL"},
23191 {"SLIM_7_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023192 {"SLIM_7_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
23193 {"SLIM_7_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
23194 {"SLIM_7_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
23195 {"SLIMBUS_7_RX", NULL, "SLIM_7_RX_Voice Mixer"},
23196
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023197 {"SLIM_8_RX_Voice Mixer", "Voip", "VOIP_DL"},
23198 {"SLIM_8_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023199 {"SLIM_8_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
23200 {"SLIM_8_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
23201 {"SLIM_8_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
23202 {"SLIMBUS_8_RX", NULL, "SLIM_8_RX_Voice Mixer"},
23203
23204 {"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23205 {"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23206 {"SLIMBUS_1_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23207 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
23208 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23209 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23210 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
23211 {"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
23212 {"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23213 {"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
23214 {"SLIMBUS_3_RX Port Mixer", "AUX_PCM_RX", "AUX_PCM_RX"},
23215 {"SLIMBUS_3_RX Port Mixer", "SLIM_0_RX", "SLIMBUS_0_RX"},
23216 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
23217
23218 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23219 {"SLIMBUS_6_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23220 {"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23221 {"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23222 {"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023223 {"SLIMBUS_6_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023224 {"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23225 {"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23226 {"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23227 {"SLIMBUS_6_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23228 {"SLIMBUS_6_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23229 {"SLIMBUS_6_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23230 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23231 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Port Mixer"},
23232
23233 {"HDMI_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23234 {"HDMI", NULL, "HDMI_RX Port Mixer"},
23235
23236 {"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23237 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
23238
Karthikeyan Mani57550082018-05-03 18:43:58 -070023239 {"DISPLAY_PORT_RX1 Port Mixer", "MI2S_TX", "MI2S_TX"},
23240 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1 Port Mixer"},
23241
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023242 {"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23243 {"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
23244
23245 {"MI2S_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23246 {"MI2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23247 {"MI2S_RX", NULL, "MI2S_RX Port Mixer"},
23248
23249 {"PRI_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23250 {"PRI_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23251 {"PRI_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23252 {"PRI_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023253 {"PRI_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023254 {"PRI_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23255 {"PRI_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23256 {"PRI_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23257 {"PRI_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080023258 {"PRI_MI2S_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023259 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Port Mixer"},
23260
23261 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23262 {"SEC_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23263 {"SEC_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23264 {"SEC_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023265 {"SEC_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023266 {"SEC_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23267 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23268 {"SEC_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080023269 {"SEC_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023270 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Port Mixer"},
23271
23272 {"TERT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23273 {"TERT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23274 {"TERT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23275 {"TERT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023276 {"TERT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023277 {"TERT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23278 {"TERT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23279 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Port Mixer"},
23280
23281 {"QUAT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23282 {"QUAT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23283 {"QUAT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23284 {"QUAT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023285 {"QUAT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023286 {"QUAT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23287 {"QUAT_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23288 {"QUAT_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23289 {"QUAT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23290 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Port Mixer"},
23291
Rohit Kumara5077932017-09-10 22:05:05 +053023292 {"QUIN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23293 {"QUIN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23294 {"QUIN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23295 {"QUIN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23296 {"QUIN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
23297 {"QUIN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23298 {"QUIN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23299 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Port Mixer"},
23300
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023301 /* Backend Enablement */
23302
23303 {"BE_OUT", NULL, "PRI_I2S_RX"},
23304 {"BE_OUT", NULL, "SEC_I2S_RX"},
23305 {"BE_OUT", NULL, "SLIMBUS_0_RX"},
23306 {"BE_OUT", NULL, "SLIMBUS_1_RX"},
23307 {"BE_OUT", NULL, "SLIMBUS_2_RX"},
23308 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
23309 {"BE_OUT", NULL, "SLIMBUS_4_RX"},
23310 {"BE_OUT", NULL, "SLIMBUS_5_RX"},
23311 {"BE_OUT", NULL, "SLIMBUS_6_RX"},
23312 {"BE_OUT", NULL, "SLIMBUS_7_RX"},
23313 {"BE_OUT", NULL, "SLIMBUS_8_RX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023314 {"BE_OUT", NULL, "SLIMBUS_9_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023315 {"BE_OUT", NULL, "USB_AUDIO_RX"},
23316 {"BE_OUT", NULL, "HDMI"},
23317 {"BE_OUT", NULL, "DISPLAY_PORT"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070023318 {"BE_OUT", NULL, "DISPLAY_PORT1"},
Ralf Herzc8701f72018-06-20 11:37:35 +020023319 {"BE_OUT", NULL, "PRI_SPDIF_RX"},
23320 {"BE_OUT", NULL, "SEC_SPDIF_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023321 {"BE_OUT", NULL, "MI2S_RX"},
23322 {"BE_OUT", NULL, "QUAT_MI2S_RX"},
23323 {"BE_OUT", NULL, "QUIN_MI2S_RX"},
23324 {"BE_OUT", NULL, "TERT_MI2S_RX"},
23325 {"BE_OUT", NULL, "SEC_MI2S_RX"},
23326 {"BE_OUT", NULL, "SEC_MI2S_RX_SD1"},
23327 {"BE_OUT", NULL, "PRI_MI2S_RX"},
23328 {"BE_OUT", NULL, "INT0_MI2S_RX"},
23329 {"BE_OUT", NULL, "INT4_MI2S_RX"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023330 {"BE_OUT", NULL, "INT2_MI2S_RX"},
23331 {"BE_OUT", NULL, "INT3_MI2S_RX"},
23332 {"BE_OUT", NULL, "INT5_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023333 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
23334 {"BE_OUT", NULL, "INT_BT_A2DP_RX"},
23335 {"BE_OUT", NULL, "INT_FM_RX"},
23336 {"BE_OUT", NULL, "PCM_RX"},
23337 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
23338 {"BE_OUT", NULL, "AUX_PCM_RX"},
23339 {"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
23340 {"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
23341 {"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023342 {"BE_OUT", NULL, "QUIN_AUX_PCM_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023343 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
23344 {"BE_OUT", NULL, "INT_FM_RX"},
23345 {"BE_OUT", NULL, "PCM_RX"},
23346 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
23347 {"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
23348 {"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
23349 {"BE_OUT", NULL, "PRI_TDM_RX_0"},
23350 {"BE_OUT", NULL, "PRI_TDM_RX_1"},
23351 {"BE_OUT", NULL, "PRI_TDM_RX_2"},
23352 {"BE_OUT", NULL, "PRI_TDM_RX_3"},
23353 {"BE_OUT", NULL, "SEC_TDM_RX_0"},
23354 {"BE_OUT", NULL, "SEC_TDM_RX_1"},
23355 {"BE_OUT", NULL, "SEC_TDM_RX_2"},
23356 {"BE_OUT", NULL, "SEC_TDM_RX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070023357 {"BE_OUT", NULL, "SEC_TDM_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023358 {"BE_OUT", NULL, "TERT_TDM_RX_0"},
23359 {"BE_OUT", NULL, "TERT_TDM_RX_1"},
23360 {"BE_OUT", NULL, "TERT_TDM_RX_2"},
23361 {"BE_OUT", NULL, "TERT_TDM_RX_3"},
23362 {"BE_OUT", NULL, "TERT_TDM_RX_4"},
23363 {"BE_OUT", NULL, "QUAT_TDM_RX_0"},
23364 {"BE_OUT", NULL, "QUAT_TDM_RX_1"},
23365 {"BE_OUT", NULL, "QUAT_TDM_RX_2"},
23366 {"BE_OUT", NULL, "QUAT_TDM_RX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023367 {"BE_OUT", NULL, "QUIN_TDM_RX_0"},
23368 {"BE_OUT", NULL, "QUIN_TDM_RX_1"},
23369 {"BE_OUT", NULL, "QUIN_TDM_RX_2"},
23370 {"BE_OUT", NULL, "QUIN_TDM_RX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023371 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_0"},
23372 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023373 {"BE_OUT", NULL, "RX_CDC_DMA_RX_0"},
23374 {"BE_OUT", NULL, "RX_CDC_DMA_RX_1"},
23375 {"BE_OUT", NULL, "RX_CDC_DMA_RX_2"},
23376 {"BE_OUT", NULL, "RX_CDC_DMA_RX_3"},
23377 {"BE_OUT", NULL, "RX_CDC_DMA_RX_4"},
23378 {"BE_OUT", NULL, "RX_CDC_DMA_RX_5"},
23379 {"BE_OUT", NULL, "RX_CDC_DMA_RX_6"},
23380 {"BE_OUT", NULL, "RX_CDC_DMA_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023381
23382 {"PRI_I2S_TX", NULL, "BE_IN"},
23383 {"MI2S_TX", NULL, "BE_IN"},
23384 {"QUAT_MI2S_TX", NULL, "BE_IN"},
23385 {"QUIN_MI2S_TX", NULL, "BE_IN"},
23386 {"PRI_MI2S_TX", NULL, "BE_IN"},
23387 {"TERT_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023388 {"INT0_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023389 {"INT2_MI2S_TX", NULL, "BE_IN"},
23390 {"INT3_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023391 {"INT4_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023392 {"INT5_MI2S_TX", NULL, "BE_IN"},
23393 {"SEC_MI2S_TX", NULL, "BE_IN"},
23394 {"SENARY_MI2S_TX", NULL, "BE_IN" },
23395 {"SLIMBUS_0_TX", NULL, "BE_IN" },
23396 {"SLIMBUS_1_TX", NULL, "BE_IN" },
23397 {"SLIMBUS_3_TX", NULL, "BE_IN" },
23398 {"SLIMBUS_4_TX", NULL, "BE_IN" },
23399 {"SLIMBUS_5_TX", NULL, "BE_IN" },
23400 {"SLIMBUS_6_TX", NULL, "BE_IN" },
23401 {"SLIMBUS_7_TX", NULL, "BE_IN" },
23402 {"SLIMBUS_8_TX", NULL, "BE_IN" },
Surendar Karka3ef3d812018-09-28 18:52:35 +053023403 {"SLIMBUS_9_TX", NULL, "BE_IN" },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023404 {"USB_AUDIO_TX", NULL, "BE_IN" },
23405 {"INT_BT_SCO_TX", NULL, "BE_IN"},
23406 {"INT_FM_TX", NULL, "BE_IN"},
23407 {"PCM_TX", NULL, "BE_IN"},
23408 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
23409 {"BE_OUT", NULL, "STUB_RX"},
23410 {"STUB_TX", NULL, "BE_IN"},
23411 {"STUB_1_TX", NULL, "BE_IN"},
23412 {"BE_OUT", NULL, "AUX_PCM_RX"},
23413 {"AUX_PCM_TX", NULL, "BE_IN"},
23414 {"SEC_AUX_PCM_TX", NULL, "BE_IN"},
23415 {"TERT_AUX_PCM_TX", NULL, "BE_IN"},
23416 {"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053023417 {"QUIN_AUX_PCM_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023418 {"INCALL_RECORD_TX", NULL, "BE_IN"},
23419 {"INCALL_RECORD_RX", NULL, "BE_IN"},
23420 {"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
23421 {"SLIM0_RX_VI_FB_RCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023422 {"WSA_RX_0_VI_FB_LCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
23423 {"WSA_RX_0_VI_FB_RCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023424 {"PRI_MI2S_RX_VI_FB_MUX", "SENARY_TX", "SENARY_TX"},
23425 {"INT4_MI2S_RX_VI_FB_MONO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
23426 {"INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
23427 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_LCH_MUX"},
23428 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_RCH_MUX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023429 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_LCH_MUX"},
23430 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_RCH_MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023431 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_VI_FB_MUX"},
23432 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_MONO_CH_MUX"},
23433 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_STEREO_CH_MUX"},
23434 {"PRI_TDM_TX_0", NULL, "BE_IN"},
23435 {"PRI_TDM_TX_1", NULL, "BE_IN"},
23436 {"PRI_TDM_TX_2", NULL, "BE_IN"},
23437 {"PRI_TDM_TX_3", NULL, "BE_IN"},
23438 {"SEC_TDM_TX_0", NULL, "BE_IN"},
23439 {"SEC_TDM_TX_1", NULL, "BE_IN"},
23440 {"SEC_TDM_TX_2", NULL, "BE_IN"},
23441 {"SEC_TDM_TX_3", NULL, "BE_IN"},
23442 {"TERT_TDM_TX_0", NULL, "BE_IN"},
23443 {"TERT_TDM_TX_1", NULL, "BE_IN"},
23444 {"TERT_TDM_TX_2", NULL, "BE_IN"},
23445 {"TERT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenfdcc0982018-10-02 15:14:03 -070023446 {"TERT_TDM_TX_7", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023447 {"QUAT_TDM_TX_0", NULL, "BE_IN"},
23448 {"QUAT_TDM_TX_1", NULL, "BE_IN"},
23449 {"QUAT_TDM_TX_2", NULL, "BE_IN"},
23450 {"QUAT_TDM_TX_3", NULL, "BE_IN"},
Surendar Karkad47fda42018-05-20 19:21:10 +053023451 {"AFE_LOOPBACK_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053023452 {"QUIN_TDM_TX_0", NULL, "BE_IN"},
23453 {"QUIN_TDM_TX_1", NULL, "BE_IN"},
23454 {"QUIN_TDM_TX_2", NULL, "BE_IN"},
23455 {"QUIN_TDM_TX_3", NULL, "BE_IN"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023456 {"WSA_CDC_DMA_TX_0", NULL, "BE_IN"},
23457 {"WSA_CDC_DMA_TX_1", NULL, "BE_IN"},
23458 {"WSA_CDC_DMA_TX_2", NULL, "BE_IN"},
23459 {"VA_CDC_DMA_TX_0", NULL, "BE_IN"},
23460 {"VA_CDC_DMA_TX_1", NULL, "BE_IN"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080023461 {"VA_CDC_DMA_TX_2", NULL, "BE_IN"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023462 {"TX_CDC_DMA_TX_0", NULL, "BE_IN"},
23463 {"TX_CDC_DMA_TX_1", NULL, "BE_IN"},
23464 {"TX_CDC_DMA_TX_2", NULL, "BE_IN"},
23465 {"TX_CDC_DMA_TX_3", NULL, "BE_IN"},
23466 {"TX_CDC_DMA_TX_4", NULL, "BE_IN"},
23467 {"TX_CDC_DMA_TX_5", NULL, "BE_IN"},
Ralf Herzc8701f72018-06-20 11:37:35 +020023468 {"PRI_SPDIF_TX", NULL, "BE_IN"},
23469 {"SEC_SPDIF_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023470};
23471
23472static int msm_pcm_routing_hw_params(struct snd_pcm_substream *substream,
23473 struct snd_pcm_hw_params *params)
23474{
23475 struct snd_soc_pcm_runtime *rtd = substream->private_data;
23476 unsigned int be_id = rtd->dai_link->id;
23477
23478 if (be_id >= MSM_BACKEND_DAI_MAX) {
23479 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
23480 return -EINVAL;
23481 }
23482
23483 mutex_lock(&routing_lock);
23484 msm_bedais[be_id].sample_rate = params_rate(params);
23485 msm_bedais[be_id].channel = params_channels(params);
23486 msm_bedais[be_id].format = params_format(params);
23487 pr_debug("%s: BE Sample Rate (%d) format (%d) BE id %d\n",
23488 __func__, msm_bedais[be_id].sample_rate,
23489 msm_bedais[be_id].format, be_id);
23490 mutex_unlock(&routing_lock);
23491 return 0;
23492}
23493
23494static int msm_pcm_routing_close(struct snd_pcm_substream *substream)
23495{
23496 struct snd_soc_pcm_runtime *rtd = substream->private_data;
23497 unsigned int be_id = rtd->dai_link->id;
23498 int i, session_type, path_type, topology;
23499 struct msm_pcm_routing_bdai_data *bedai;
23500 struct msm_pcm_routing_fdai_data *fdai;
23501
23502 pr_debug("%s: substream->pcm->id:%s\n",
23503 __func__, substream->pcm->id);
23504
23505 if (be_id >= MSM_BACKEND_DAI_MAX) {
23506 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
23507 return -EINVAL;
23508 }
23509
23510 bedai = &msm_bedais[be_id];
23511 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
23512 0 : 1);
23513 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
23514 path_type = ADM_PATH_PLAYBACK;
23515 else
23516 path_type = ADM_PATH_LIVE_REC;
23517
23518 mutex_lock(&routing_lock);
23519 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
23520 if (!is_mm_lsm_fe_id(i))
23521 continue;
23522 fdai = &fe_dai_map[i][session_type];
23523 if (fdai->strm_id != INVALID_SESSION) {
23524 int idx;
23525 int port_id;
23526 unsigned long copp =
23527 session_copp_map[i][session_type][be_id];
23528 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
23529 if (test_bit(idx, &copp))
23530 break;
Vignesh Kulothungane59d3152018-10-10 14:19:59 -070023531
23532 if (idx >= MAX_COPPS_PER_PORT) {
23533 pr_debug("%s: copp idx is invalid, exiting\n",
23534 __func__);
23535 continue;
23536 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023537 fdai->be_srate = bedai->sample_rate;
Surendar Karkae7507512018-07-20 15:46:54 +053023538 port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023539 topology = adm_get_topology_for_port_copp_idx(port_id,
23540 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023541 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +053023542 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023543 pr_debug("%s: copp:%ld,idx bit fe:%d, type:%d,be:%d topology=0x%x\n",
23544 __func__, copp, i, session_type, be_id,
23545 topology);
23546 clear_bit(idx,
23547 &session_copp_map[i][session_type][be_id]);
23548 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023549 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053023550 msm_pcm_routing_deinit_pp(port_id,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023551 topology);
23552 }
23553 }
23554
23555 bedai->active = 0;
23556 bedai->sample_rate = 0;
23557 bedai->channel = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023558 mutex_unlock(&routing_lock);
23559
23560 return 0;
23561}
23562
23563static int msm_pcm_routing_prepare(struct snd_pcm_substream *substream)
23564{
23565 struct snd_soc_pcm_runtime *rtd = substream->private_data;
23566 unsigned int be_id = rtd->dai_link->id;
23567 int i, path_type, topology;
23568 int session_type = INVALID_SESSION;
23569 struct msm_pcm_routing_bdai_data *bedai;
23570 u32 channels, sample_rate;
23571 uint16_t bits_per_sample = 16, voc_path_type;
23572 struct msm_pcm_routing_fdai_data *fdai;
23573 u32 session_id;
23574 struct media_format_info voc_be_media_format;
23575 bool is_lsm;
23576
23577 pr_debug("%s: substream->pcm->id:%s\n",
23578 __func__, substream->pcm->id);
23579
23580 if (be_id >= MSM_BACKEND_DAI_MAX) {
23581 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
23582 return -EINVAL;
23583 }
23584
23585 bedai = &msm_bedais[be_id];
23586
23587 mutex_lock(&routing_lock);
23588 if (bedai->active == 1)
23589 goto done; /* Ignore prepare if back-end already active */
23590
23591 /* AFE port is not active at this point. However, still
23592 * go ahead setting active flag under the notion that
23593 * QDSP6 is able to handle ADM starting before AFE port
23594 * is started.
23595 */
23596 bedai->active = 1;
23597
23598 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
23599 if (!(is_mm_lsm_fe_id(i) &&
23600 route_check_fe_id_adm_support(i)))
23601 continue;
23602
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023603 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
23604 SESSION_TYPE_RX : SESSION_TYPE_TX;
23605 fdai = &fe_dai_map[i][session_type];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023606 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023607 if (fdai->passthr_mode != LEGACY_PCM)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023608 path_type = ADM_PATH_COMPRESSED_RX;
23609 else
23610 path_type = ADM_PATH_PLAYBACK;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023611 } else {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023612 if ((fdai->passthr_mode != LEGACY_PCM) &&
23613 (fdai->passthr_mode != LISTEN))
Ralf Herzc8701f72018-06-20 11:37:35 +020023614 path_type = ADM_PATH_COMPRESSED_TX;
23615 else
23616 path_type = ADM_PATH_LIVE_REC;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023617 }
23618
23619 is_lsm = (i >= MSM_FRONTEND_DAI_LSM1) &&
23620 (i <= MSM_FRONTEND_DAI_LSM8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023621 if (fdai->strm_id != INVALID_SESSION) {
23622 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +053023623 int port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023624
23625 if (session_type == SESSION_TYPE_TX &&
23626 fdai->be_srate &&
23627 (fdai->be_srate != bedai->sample_rate)) {
23628 pr_debug("%s: flush strm %d diff BE rates\n",
23629 __func__,
23630 fdai->strm_id);
23631
23632 if (fdai->event_info.event_func)
23633 fdai->event_info.event_func(
23634 MSM_PCM_RT_EVT_BUF_RECFG,
23635 fdai->event_info.priv_data);
23636 fdai->be_srate = 0; /* might not need it */
23637 }
23638 bits_per_sample = msm_routing_get_bit_width(
23639 bedai->format);
23640
23641 app_type =
23642 fe_dai_app_type_cfg[i][session_type][be_id].app_type;
23643 if (app_type && is_lsm) {
23644 app_type_idx =
23645 msm_pcm_routing_get_lsm_app_type_idx(app_type);
23646 sample_rate =
23647 fe_dai_app_type_cfg[i][session_type][be_id]
23648 .sample_rate;
23649 bits_per_sample =
23650 lsm_app_type_cfg[app_type_idx].bit_width;
23651 } else if (app_type) {
23652 app_type_idx =
23653 msm_pcm_routing_get_app_type_idx(app_type);
23654 sample_rate =
23655 fe_dai_app_type_cfg[i][session_type]
23656 [be_id].sample_rate;
23657 bits_per_sample =
23658 app_type_cfg[app_type_idx].bit_width;
23659 } else
23660 sample_rate = bedai->sample_rate;
23661 /*
23662 * check if ADM needs to be configured with different
23663 * channel mapping than backend
23664 */
23665 if (!bedai->adm_override_ch)
23666 channels = bedai->channel;
23667 else
23668 channels = bedai->adm_override_ch;
23669 acdb_dev_id =
23670 fe_dai_app_type_cfg[i][session_type][be_id].acdb_dev_id;
23671 topology = msm_routing_get_adm_topology(i, session_type,
23672 be_id);
Ralf Herzc8701f72018-06-20 11:37:35 +020023673
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023674 if ((fdai->passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
23675 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_GEN)
23676 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_IEC61937))
Ralf Herzc8701f72018-06-20 11:37:35 +020023677 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
23678
Surendar Karkae7507512018-07-20 15:46:54 +053023679 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023680 sample_rate, channels, topology,
23681 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +053023682 app_type, acdb_dev_id,
23683 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023684 if ((copp_idx < 0) ||
23685 (copp_idx >= MAX_COPPS_PER_PORT)) {
23686 pr_err("%s: adm open failed\n", __func__);
23687 mutex_unlock(&routing_lock);
23688 return -EINVAL;
23689 }
23690 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
23691 __func__, i, session_type, be_id);
23692 set_bit(copp_idx,
23693 &session_copp_map[i][session_type][be_id]);
23694
23695 if (msm_is_resample_needed(
23696 sample_rate,
23697 bedai->sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +053023698 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023699 bedai->sample_rate);
23700
23701 msm_pcm_routing_build_matrix(i, session_type, path_type,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023702 fdai->perf_mode, fdai->passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023703 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023704 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053023705 msm_pcm_routing_cfg_pp(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023706 topology, channels);
23707 }
23708 }
23709
23710 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
23711 session_id = msm_pcm_routing_get_voc_sessionid(i);
23712 if (session_id) {
23713 pr_debug("%s voice session_id: 0x%x\n", __func__,
23714 session_id);
23715
23716 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
23717 voc_path_type = RX_PATH;
23718 else
23719 voc_path_type = TX_PATH;
23720
23721 voc_set_route_flag(session_id, voc_path_type, 1);
23722
23723 memset(&voc_be_media_format, 0,
23724 sizeof(struct media_format_info));
23725
23726 voc_be_media_format.port_id = bedai->port_id;
23727 voc_be_media_format.num_channels = bedai->channel;
23728 voc_be_media_format.sample_rate = bedai->sample_rate;
23729 voc_be_media_format.bits_per_sample = bedai->format;
23730 /* Defaulting this to 1 for voice call usecases */
23731 voc_be_media_format.channel_mapping[0] = 1;
23732
23733 voc_set_device_config(session_id, voc_path_type,
23734 &voc_be_media_format);
23735
23736 if (voc_get_route_flag(session_id, RX_PATH) &&
23737 voc_get_route_flag(session_id, TX_PATH))
23738 voc_enable_device(session_id);
23739 }
23740 }
23741
23742 /* Check if backend is an external ec ref port and set as needed */
23743 if (unlikely(bedai->port_id == voc_get_ext_ec_ref_port_id())) {
23744
23745 memset(&voc_be_media_format, 0,
23746 sizeof(struct media_format_info));
23747
23748 /* Get format info for ec ref port from msm_bedais[] */
23749 voc_be_media_format.port_id = bedai->port_id;
23750 voc_be_media_format.num_channels = bedai->channel;
23751 voc_be_media_format.bits_per_sample = bedai->format;
23752 voc_be_media_format.sample_rate = bedai->sample_rate;
23753 /* Defaulting this to 1 for voice call usecases */
23754 voc_be_media_format.channel_mapping[0] = 1;
23755 voc_set_ext_ec_ref_media_fmt_info(&voc_be_media_format);
23756 pr_debug("%s: EC Ref media format info set to port_id=%d, num_channels=%d, bits_per_sample=%d, sample_rate=%d\n",
23757 __func__, voc_be_media_format.port_id,
23758 voc_be_media_format.num_channels,
23759 voc_be_media_format.bits_per_sample,
23760 voc_be_media_format.sample_rate);
23761 }
23762
23763done:
23764 mutex_unlock(&routing_lock);
23765
23766 return 0;
23767}
23768
23769static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
23770 int fe_id)
23771{
23772 int index, topo_id, be_idx;
23773 unsigned long pp_config = 0;
23774 bool mute_on;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023775 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023776 bool compr_passthr_mode = true;
23777
23778 pr_debug("%s: port_id %d, copp_idx %d\n", __func__, port_id, copp_idx);
23779
23780 if (port_id != HDMI_RX && port_id != DISPLAY_PORT_RX) {
23781 pr_err("%s: Device pp params on invalid port %d\n",
23782 __func__, port_id);
23783 return -EINVAL;
23784 }
23785
23786 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
23787 if (port_id == msm_bedais[be_idx].port_id)
23788 break;
23789 }
23790
23791 if (be_idx >= MSM_BACKEND_DAI_MAX) {
23792 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
23793 return -EINVAL;
23794 }
23795
23796 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
23797 if (msm_bedais_pp_params[index].port_id == port_id)
23798 break;
23799 }
23800 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
23801 pr_err("%s: Invalid backend pp params index %d\n",
23802 __func__, index);
23803 return -EINVAL;
23804 }
23805
23806 topo_id = adm_get_topology_for_port_copp_idx(port_id, copp_idx);
23807 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY) {
23808 pr_err("%s: Invalid passthrough topology 0x%x\n",
23809 __func__, topo_id);
23810 return -EINVAL;
23811 }
23812
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023813 session_type =
23814 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
23815 SESSION_TYPE_RX : SESSION_TYPE_TX;
23816
23817 if ((fe_dai_map[fe_id][session_type].passthr_mode == LEGACY_PCM) ||
23818 (fe_dai_map[fe_id][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023819 compr_passthr_mode = false;
23820
23821 pp_config = msm_bedais_pp_params[index].pp_params_config;
23822 if (test_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config)) {
23823 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
23824 clear_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config);
23825 mute_on = msm_bedais_pp_params[index].mute_on;
23826 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23827 adm_send_compressed_device_mute(port_id,
23828 copp_idx,
23829 mute_on);
23830 }
23831 if (test_bit(ADM_PP_PARAM_LATENCY_BIT, &pp_config)) {
23832 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
23833 clear_bit(ADM_PP_PARAM_LATENCY_BIT,
23834 &pp_config);
23835 latency = msm_bedais_pp_params[index].latency;
23836 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23837 adm_send_compressed_device_latency(port_id,
23838 copp_idx,
23839 latency);
23840 }
23841 return 0;
23842}
23843
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023844static uint32_t msm_routing_get_topology(size_t data_size, void *data)
23845{
23846 uint32_t topology = NULL_COPP_TOPOLOGY;
23847 void *cal_info = NULL;
23848 uint32_t size = 0;
23849
23850 /* Retrieve cal_info size from cal data*/
23851 size = data_size - sizeof(struct audio_cal_type_basic);
23852 cal_info = kzalloc(size, GFP_KERNEL);
23853
23854 if (!cal_info)
23855 goto done;
23856
23857 memcpy(cal_info,
23858 ((uint8_t *)data + sizeof(struct audio_cal_type_basic)), size);
23859
23860 topology = ((struct audio_cal_info_adm_top *)cal_info)->topology;
23861 kfree(cal_info);
23862 cal_info = NULL;
23863
23864done:
23865 pr_debug("%s: Using topology %d\n", __func__, topology);
23866
23867 return topology;
23868}
23869
23870static void msm_routing_load_topology(size_t data_size, void *data)
23871{
23872 uint32_t topology_id;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053023873 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023874
23875 topology_id = msm_routing_get_topology(data_size, data);
23876 if (topology_id != NULL_COPP_TOPOLOGY)
23877 ret = q6core_load_unload_topo_modules(topology_id,
23878 CORE_LOAD_TOPOLOGY);
23879 if (ret < 0)
23880 pr_debug("%s %d load topology failed\n",
23881 __func__, topology_id);
23882
23883}
23884
23885static void msm_routing_unload_topology(uint32_t topology_id)
23886{
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053023887 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023888
23889 if (topology_id != NULL_COPP_TOPOLOGY)
23890 ret = q6core_load_unload_topo_modules(topology_id,
23891 CORE_UNLOAD_TOPOLOGY);
23892 if (ret < 0)
23893 pr_debug("%s %d unload topology failed\n",
23894 __func__, topology_id);
23895
23896}
23897
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023898static int msm_routing_put_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
23899 struct snd_ctl_elem_value *ucontrol)
23900{
23901 int pp_id = ucontrol->value.integer.value[0];
23902 int port_id = 0;
23903 int index, be_idx, i, topo_id, idx;
23904 bool mute;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023905 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023906 bool compr_passthr_mode = true;
23907
23908 pr_debug("%s: pp_id: 0x%x\n", __func__, pp_id);
23909
23910 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
23911 port_id = msm_bedais[be_idx].port_id;
23912 if (port_id == HDMI_RX || port_id == DISPLAY_PORT_RX)
23913 break;
23914 }
23915
23916 if (be_idx >= MSM_BACKEND_DAI_MAX) {
23917 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
23918 return -EINVAL;
23919 }
23920
23921 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
23922 if (msm_bedais_pp_params[index].port_id == port_id)
23923 break;
23924 }
23925 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
23926 pr_err("%s: Invalid pp params backend index %d\n",
23927 __func__, index);
23928 return -EINVAL;
23929 }
23930
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023931 session_type =
23932 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
23933 SESSION_TYPE_RX : SESSION_TYPE_TX;
23934
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023935 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
23936 MSM_FRONTEND_DAI_MM_SIZE) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023937 if ((fe_dai_map[i][session_type].passthr_mode == LEGACY_PCM) ||
23938 (fe_dai_map[i][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023939 compr_passthr_mode = false;
23940
23941 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
23942 unsigned long copp =
23943 session_copp_map[i]
23944 [SESSION_TYPE_RX][be_idx];
23945 if (!test_bit(idx, &copp))
23946 continue;
23947 topo_id = adm_get_topology_for_port_copp_idx(port_id,
23948 idx);
23949 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY)
23950 continue;
23951 pr_debug("%s: port: 0x%x, copp %ld, be active: %d, passt: %d\n",
23952 __func__, port_id, copp, msm_bedais[be_idx].active,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023953 fe_dai_map[i][session_type].passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023954 switch (pp_id) {
23955 case ADM_PP_PARAM_MUTE_ID:
23956 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
23957 mute = ucontrol->value.integer.value[1] ? true : false;
23958 msm_bedais_pp_params[index].mute_on = mute;
23959 set_bit(ADM_PP_PARAM_MUTE_BIT,
23960 &msm_bedais_pp_params[index].pp_params_config);
23961 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23962 adm_send_compressed_device_mute(port_id,
23963 idx, mute);
23964 break;
23965 case ADM_PP_PARAM_LATENCY_ID:
23966 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
23967 msm_bedais_pp_params[index].latency =
23968 ucontrol->value.integer.value[1];
23969 set_bit(ADM_PP_PARAM_LATENCY_BIT,
23970 &msm_bedais_pp_params[index].pp_params_config);
23971 latency = msm_bedais_pp_params[index].latency =
23972 ucontrol->value.integer.value[1];
23973 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23974 adm_send_compressed_device_latency(port_id,
23975 idx, latency);
23976 break;
23977 default:
23978 pr_info("%s, device pp param %d not supported\n",
23979 __func__, pp_id);
23980 break;
23981 }
23982 }
23983 }
23984 return 0;
23985}
23986
23987static int msm_routing_get_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
23988 struct snd_ctl_elem_value *ucontrol)
23989{
23990 pr_debug("%s:msm_routing_get_device_pp_params_mixer", __func__);
23991 return 0;
23992}
23993
23994static const struct snd_kcontrol_new device_pp_params_mixer_controls[] = {
23995 SOC_SINGLE_MULTI_EXT("Device PP Params", SND_SOC_NOPM, 0, 0xFFFFFFFF,
23996 0, 3, msm_routing_get_device_pp_params_mixer,
23997 msm_routing_put_device_pp_params_mixer),
23998};
23999
24000static int msm_aptx_dec_license_control_get(struct snd_kcontrol *kcontrol,
24001 struct snd_ctl_elem_value *ucontrol)
24002{
24003 ucontrol->value.integer.value[0] =
24004 core_get_license_status(ASM_MEDIA_FMT_APTX);
24005 pr_debug("%s: status %ld\n", __func__,
24006 ucontrol->value.integer.value[0]);
24007 return 0;
24008}
24009
24010static int msm_aptx_dec_license_control_put(struct snd_kcontrol *kcontrol,
24011 struct snd_ctl_elem_value *ucontrol)
24012{
24013 int32_t status = 0;
24014
24015 status = core_set_license(ucontrol->value.integer.value[0],
24016 APTX_CLASSIC_DEC_LICENSE_ID);
24017 pr_debug("%s: status %d\n", __func__, status);
24018 return status;
24019}
24020
24021static const struct snd_kcontrol_new aptx_dec_license_controls[] = {
24022 SOC_SINGLE_EXT("APTX Dec License", SND_SOC_NOPM, 0,
24023 0xFFFF, 0, msm_aptx_dec_license_control_get,
24024 msm_aptx_dec_license_control_put),
24025};
24026
24027static int msm_routing_be_dai_name_table_info(struct snd_kcontrol *kcontrol,
24028 struct snd_ctl_elem_info *uinfo)
24029{
24030 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
24031 uinfo->count = sizeof(be_dai_name_table);
24032 return 0;
24033}
24034
24035static int msm_routing_be_dai_name_table_tlv_get(struct snd_kcontrol *kcontrol,
24036 unsigned int __user *bytes,
24037 unsigned int size)
24038{
24039 int i;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053024040 int ret = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024041
24042 if (size < sizeof(be_dai_name_table)) {
24043 pr_err("%s: invalid size %d requested, returning\n",
24044 __func__, size);
24045 ret = -EINVAL;
24046 goto done;
24047 }
24048
24049 /*
24050 * Fill be_dai_name_table from msm_bedais table to reduce code changes
24051 * needed when adding new backends
24052 */
24053 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
24054 be_dai_name_table[i].be_id = i;
24055 strlcpy(be_dai_name_table[i].be_name,
24056 msm_bedais[i].name,
24057 LPASS_BE_NAME_MAX_LENGTH);
24058 }
24059
24060 ret = copy_to_user(bytes, &be_dai_name_table,
24061 sizeof(be_dai_name_table));
24062 if (ret) {
24063 pr_err("%s: failed to copy be_dai_name_table\n", __func__);
24064 ret = -EFAULT;
24065 }
24066
24067done:
24068 return ret;
24069}
24070
24071static const struct snd_kcontrol_new
24072 msm_routing_be_dai_name_table_mixer_controls[] = {
24073 {
24074 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
24075 SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
24076 .info = msm_routing_be_dai_name_table_info,
24077 .name = "Backend DAI Name Table",
24078 .tlv.c = snd_soc_bytes_tlv_callback,
24079 .private_value = (unsigned long) &(struct soc_bytes_ext) {
24080 .max = sizeof(be_dai_name_table),
24081 .get = msm_routing_be_dai_name_table_tlv_get,
24082 }
24083 },
24084};
24085
24086static int msm_routing_stereo_channel_reverse_control_get(
24087 struct snd_kcontrol *kcontrol,
24088 struct snd_ctl_elem_value *ucontrol)
24089{
24090 ucontrol->value.integer.value[0] = swap_ch;
24091 pr_debug("%s: Swap channel value: %ld\n", __func__,
24092 ucontrol->value.integer.value[0]);
24093 return 0;
24094}
24095
24096static int msm_routing_stereo_channel_reverse_control_put(
24097 struct snd_kcontrol *kcontrol,
24098 struct snd_ctl_elem_value *ucontrol)
24099{
24100 int i, idx, be_index, port_id;
24101 int ret = 0;
24102 unsigned long copp;
24103
24104 pr_debug("%s Swap channel value:%ld\n", __func__,
24105 ucontrol->value.integer.value[0]);
24106
24107 swap_ch = ucontrol->value.integer.value[0];
24108
24109 mutex_lock(&routing_lock);
24110 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
24111 port_id = msm_bedais[be_index].port_id;
24112 if (!msm_bedais[be_index].active)
24113 continue;
24114
24115 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
24116 MSM_FRONTEND_DAI_MM_SIZE) {
24117 copp = session_copp_map[i][SESSION_TYPE_RX][be_index];
24118 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
24119 if (!test_bit(idx, &copp))
24120 continue;
24121
24122 pr_debug("%s: swap channel control of portid:%d, coppid:%d\n",
24123 __func__, port_id, idx);
24124 ret = adm_swap_speaker_channels(
24125 port_id, idx,
24126 msm_bedais[be_index].sample_rate,
24127 swap_ch);
24128 if (ret) {
24129 pr_err("%s:Swap_channel failed, err=%d\n",
24130 __func__, ret);
24131 goto done;
24132 }
24133 }
24134 }
24135 }
24136done:
24137 mutex_unlock(&routing_lock);
24138 return ret;
24139}
24140
24141static const struct snd_kcontrol_new stereo_channel_reverse_control[] = {
24142 SOC_SINGLE_EXT("Swap channel", SND_SOC_NOPM, 0,
24143 1, 0, msm_routing_stereo_channel_reverse_control_get,
24144 msm_routing_stereo_channel_reverse_control_put),
24145};
24146
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080024147static int msm_routing_instance_id_support_info(struct snd_kcontrol *kcontrol,
24148 struct snd_ctl_elem_info *uinfo)
24149{
24150 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
24151 uinfo->count = 1;
24152 return 0;
24153}
24154
24155static int msm_routing_instance_id_support_put(
24156 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
24157{
24158 bool supported = ucontrol->value.integer.value[0] ? true : false;
24159
24160 q6common_update_instance_id_support(supported);
24161 return 0;
24162}
24163
24164static int msm_routing_instance_id_support_get(
24165 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
24166{
24167 bool supported = false;
24168
24169 supported = q6common_is_instance_id_supported();
24170 ucontrol->value.integer.value[0] = supported ? 1 : 0;
24171
24172 return 0;
24173}
24174
24175static const struct snd_kcontrol_new
24176 msm_routing_feature_support_mixer_controls[] = {
24177 {
24178 .access = SNDRV_CTL_ELEM_ACCESS_READ |
24179 SNDRV_CTL_ELEM_ACCESS_WRITE,
24180 .info = msm_routing_instance_id_support_info,
24181 .name = "Instance ID Support",
24182 .put = msm_routing_instance_id_support_put,
24183 .get = msm_routing_instance_id_support_get,
24184 },
24185};
24186
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024187static const struct snd_pcm_ops msm_routing_pcm_ops = {
24188 .hw_params = msm_pcm_routing_hw_params,
24189 .close = msm_pcm_routing_close,
24190 .prepare = msm_pcm_routing_prepare,
24191};
24192
24193/* Not used but frame seems to require it */
Meng Wangee084a02018-09-04 16:11:58 +080024194static int msm_routing_probe(struct snd_soc_component *component)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024195{
Meng Wangee084a02018-09-04 16:11:58 +080024196 snd_soc_dapm_new_controls(&component->dapm, msm_qdsp6_widgets,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024197 ARRAY_SIZE(msm_qdsp6_widgets));
Meng Wangee084a02018-09-04 16:11:58 +080024198 snd_soc_dapm_add_routes(&component->dapm, intercon,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024199 ARRAY_SIZE(intercon));
24200
Meng Wangee084a02018-09-04 16:11:58 +080024201 snd_soc_dapm_new_widgets(component->dapm.card);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024202
Meng Wangee084a02018-09-04 16:11:58 +080024203 snd_soc_add_component_controls(component, lsm_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024204 ARRAY_SIZE(lsm_controls));
24205
Meng Wangee084a02018-09-04 16:11:58 +080024206 snd_soc_add_component_controls(component, aanc_slim_0_rx_mux,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024207 ARRAY_SIZE(aanc_slim_0_rx_mux));
24208
Meng Wangee084a02018-09-04 16:11:58 +080024209 snd_soc_add_component_controls(component, aanc_noise_level,
Sudheer Papothic07b37a2018-05-04 05:56:47 +053024210 ARRAY_SIZE(aanc_noise_level));
24211
Meng Wangee084a02018-09-04 16:11:58 +080024212 snd_soc_add_component_controls(component, msm_voc_session_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024213 ARRAY_SIZE(msm_voc_session_controls));
24214
Meng Wangee084a02018-09-04 16:11:58 +080024215 snd_soc_add_component_controls(component, app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024216 ARRAY_SIZE(app_type_cfg_controls));
24217
Meng Wangee084a02018-09-04 16:11:58 +080024218 snd_soc_add_component_controls(component, lsm_app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024219 ARRAY_SIZE(lsm_app_type_cfg_controls));
24220
Meng Wangee084a02018-09-04 16:11:58 +080024221 snd_soc_add_component_controls(component, module_cfg_controls,
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070024222 ARRAY_SIZE(module_cfg_controls));
24223
Meng Wangee084a02018-09-04 16:11:58 +080024224 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024225 stereo_to_custom_stereo_controls,
24226 ARRAY_SIZE(stereo_to_custom_stereo_controls));
24227
Meng Wangee084a02018-09-04 16:11:58 +080024228 snd_soc_add_component_controls(component, ec_ref_param_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024229 ARRAY_SIZE(ec_ref_param_controls));
24230
Meng Wangee084a02018-09-04 16:11:58 +080024231 snd_soc_add_component_controls(component, channel_mixer_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024232 ARRAY_SIZE(channel_mixer_controls));
24233
Meng Wangee084a02018-09-04 16:11:58 +080024234 msm_qti_pp_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024235
Meng Wangee084a02018-09-04 16:11:58 +080024236 msm_dts_srs_tm_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024237
Meng Wangee084a02018-09-04 16:11:58 +080024238 msm_dolby_dap_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024239
Meng Wangee084a02018-09-04 16:11:58 +080024240 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024241 use_ds1_or_ds2_controls,
24242 ARRAY_SIZE(use_ds1_or_ds2_controls));
24243
Meng Wangee084a02018-09-04 16:11:58 +080024244 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024245 device_pp_params_mixer_controls,
24246 ARRAY_SIZE(device_pp_params_mixer_controls));
24247
Meng Wangee084a02018-09-04 16:11:58 +080024248 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024249 msm_routing_be_dai_name_table_mixer_controls,
24250 ARRAY_SIZE(msm_routing_be_dai_name_table_mixer_controls));
24251
Meng Wangee084a02018-09-04 16:11:58 +080024252 snd_soc_add_component_controls(component, msm_source_tracking_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024253 ARRAY_SIZE(msm_source_tracking_controls));
Meng Wangee084a02018-09-04 16:11:58 +080024254 snd_soc_add_component_controls(component, adm_channel_config_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024255 ARRAY_SIZE(adm_channel_config_controls));
24256
Meng Wangee084a02018-09-04 16:11:58 +080024257 snd_soc_add_component_controls(component, aptx_dec_license_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024258 ARRAY_SIZE(aptx_dec_license_controls));
Meng Wangee084a02018-09-04 16:11:58 +080024259 snd_soc_add_component_controls(component,
24260 stereo_channel_reverse_control,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024261 ARRAY_SIZE(stereo_channel_reverse_control));
Meng Wangee084a02018-09-04 16:11:58 +080024262 snd_soc_add_component_controls(
24263 component, msm_routing_feature_support_mixer_controls,
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080024264 ARRAY_SIZE(msm_routing_feature_support_mixer_controls));
24265
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024266 return 0;
24267}
24268
24269int msm_routing_pcm_new(struct snd_soc_pcm_runtime *runtime)
24270{
24271 return msm_pcm_routing_hwdep_new(runtime, msm_bedais);
24272}
24273
24274void msm_routing_pcm_free(struct snd_pcm *pcm)
24275{
24276 msm_pcm_routing_hwdep_free(pcm);
24277}
24278
Meng Wangee084a02018-09-04 16:11:58 +080024279static struct snd_soc_component_driver msm_soc_routing_component = {
24280 .name = DRV_NAME,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024281 .ops = &msm_routing_pcm_ops,
24282 .probe = msm_routing_probe,
24283 .pcm_new = msm_routing_pcm_new,
24284 .pcm_free = msm_routing_pcm_free,
24285};
24286
24287static int msm_routing_pcm_probe(struct platform_device *pdev)
24288{
24289
24290 dev_dbg(&pdev->dev, "dev name %s\n", dev_name(&pdev->dev));
Meng Wangee084a02018-09-04 16:11:58 +080024291 return snd_soc_register_component(&pdev->dev,
24292 &msm_soc_routing_component,
24293 NULL, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024294}
24295
24296static int msm_routing_pcm_remove(struct platform_device *pdev)
24297{
Meng Wangee084a02018-09-04 16:11:58 +080024298 snd_soc_unregister_component(&pdev->dev);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024299 return 0;
24300}
24301
24302static const struct of_device_id msm_pcm_routing_dt_match[] = {
24303 {.compatible = "qcom,msm-pcm-routing"},
24304 {}
24305};
24306MODULE_DEVICE_TABLE(of, msm_pcm_routing_dt_match);
24307
24308static struct platform_driver msm_routing_pcm_driver = {
24309 .driver = {
24310 .name = "msm-pcm-routing",
24311 .owner = THIS_MODULE,
24312 .of_match_table = msm_pcm_routing_dt_match,
24313 },
24314 .probe = msm_routing_pcm_probe,
24315 .remove = msm_routing_pcm_remove,
24316};
24317
24318int msm_routing_check_backend_enabled(int fedai_id)
24319{
24320 int i;
24321
24322 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
24323 /* bad ID assigned in machine driver */
24324 pr_err("%s: bad MM ID\n", __func__);
24325 return 0;
24326 }
24327 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
24328 if (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))
24329 return msm_bedais[i].active;
24330 }
24331 return 0;
24332}
24333
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024334static int get_cal_type_index(int32_t cal_type)
24335{
24336 int ret = -EINVAL;
24337
24338 switch (cal_type) {
24339 case ADM_TOPOLOGY_CAL_TYPE:
24340 ret = ADM_TOPOLOGY_CAL_TYPE_IDX;
24341 break;
24342 case ADM_LSM_TOPOLOGY_CAL_TYPE:
24343 ret = ADM_LSM_TOPOLOGY_CAL_TYPE_IDX;
24344 break;
24345 default:
24346 pr_err("%s: Invalid cal type %d\n", __func__, cal_type);
24347 }
24348 return ret;
24349}
24350
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024351static int msm_routing_set_cal(int32_t cal_type,
24352 size_t data_size, void *data)
24353{
24354 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024355 int cal_index;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024356 pr_debug("%s\n", __func__);
24357
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024358 cal_index = get_cal_type_index(cal_type);
24359 if (cal_index < 0) {
24360 pr_err("%s: Could not get cal index %d\n",
24361 __func__, cal_index);
24362 ret = -EINVAL;
24363 goto done;
24364 }
24365
24366 ret = cal_utils_set_cal(data_size, data, cal_data[cal_index], 0, NULL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024367 if (ret < 0) {
24368 pr_err("%s: cal_utils_set_cal failed, ret = %d, cal type = %d!\n",
24369 __func__, ret, cal_type);
24370 ret = -EINVAL;
24371 goto done;
24372 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070024373 /* Pre-load if it is ADM topology */
24374 if ((cal_index == ADM_TOPOLOGY_CAL_TYPE_IDX) ||
24375 (cal_index == ADM_LSM_TOPOLOGY_CAL_TYPE_IDX)) {
24376 msm_routing_load_topology(data_size, data);
24377 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024378done:
24379 return ret;
24380}
24381
24382static void msm_routing_delete_cal_data(void)
24383{
24384 pr_debug("%s\n", __func__);
24385
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024386 cal_utils_destroy_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024387}
24388
24389static int msm_routing_init_cal_data(void)
24390{
24391 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024392 struct cal_type_info cal_type_info[] = {
24393 {{ADM_TOPOLOGY_CAL_TYPE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024394 {NULL, NULL, NULL,
24395 msm_routing_set_cal, NULL, NULL} },
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024396 {NULL, NULL, cal_utils_match_buf_num} },
24397
24398 {{ADM_LSM_TOPOLOGY_CAL_TYPE,
24399 {NULL, NULL, NULL,
24400 msm_routing_set_cal, NULL, NULL} },
24401 {NULL, NULL, cal_utils_match_buf_num} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024402 };
24403 pr_debug("%s\n", __func__);
24404
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024405 ret = cal_utils_create_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0],
24406 &cal_type_info[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024407 if (ret < 0) {
24408 pr_err("%s: could not create cal type!\n",
24409 __func__);
24410 ret = -EINVAL;
24411 goto err;
24412 }
24413
24414 return ret;
24415err:
24416 msm_routing_delete_cal_data();
24417 return ret;
24418}
24419
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053024420int __init msm_soc_routing_platform_init(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024421{
24422 mutex_init(&routing_lock);
24423 if (msm_routing_init_cal_data())
24424 pr_err("%s: could not init cal data!\n", __func__);
24425
24426 afe_set_routing_callback(
24427 (routing_cb)msm_pcm_get_dev_acdb_id_by_port_id);
24428
24429 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
24430 memset(&last_be_id_configured, 0, sizeof(last_be_id_configured));
24431
24432 return platform_driver_register(&msm_routing_pcm_driver);
24433}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024434
Asish Bhattacharya5faacb32017-12-04 17:23:15 +053024435void msm_soc_routing_platform_exit(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024436{
24437 msm_routing_delete_cal_data();
24438 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
24439 mutex_destroy(&routing_lock);
24440 platform_driver_unregister(&msm_routing_pcm_driver);
24441}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024442
24443MODULE_DESCRIPTION("MSM routing platform driver");
24444MODULE_LICENSE("GPL v2");