blob: e4964e9a51c0e1ef74fef251f84fdf698f5d424a [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;
Dhananjay Kumar242b5b02019-01-16 22:45:12 +053073static int msm_ec_ref_ch_downmixed = 4;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053074static int msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
75static int msm_ec_ref_sampling_rate = 48000;
76static uint32_t voc_session_id = ALL_SESSION_VSID;
77static int msm_route_ext_ec_ref;
78static bool is_custom_stereo_on;
79static bool is_ds2_on;
80static bool swap_ch;
Sudheer Papothic07b37a2018-05-04 05:56:47 +053081static int aanc_level;
Meng Wangadbca4f2018-10-29 14:30:13 +080082static int num_app_cfg_types;
Surendar Karkae7507512018-07-20 15:46:54 +053083static int msm_ec_ref_port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053084
85#define WEIGHT_0_DB 0x4000
86/* all the FEs which can support channel mixer */
87static struct msm_pcm_channel_mixer channel_mixer[MSM_FRONTEND_DAI_MM_SIZE];
Dhananjay Kumar807f7e92018-12-11 18:10:08 +053088
89/* all the FES which can support channel mixer for bidirection */
90static struct msm_pcm_channel_mixer
91 channel_mixer_v2[MSM_FRONTEND_DAI_MM_SIZE][2];
92
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053093/* input BE for each FE */
94static int channel_input[MSM_FRONTEND_DAI_MM_SIZE][ADM_MAX_CHANNELS];
95
96enum {
97 MADNONE,
98 MADAUDIO,
99 MADBEACON,
100 MADULTRASOUND,
101 MADSWAUDIO,
102};
103
104#define ADM_LSM_PORT_INDEX 9
105
106#define SLIMBUS_0_TX_TEXT "SLIMBUS_0_TX"
107#define SLIMBUS_1_TX_TEXT "SLIMBUS_1_TX"
108#define SLIMBUS_2_TX_TEXT "SLIMBUS_2_TX"
109#define SLIMBUS_3_TX_TEXT "SLIMBUS_3_TX"
110#define SLIMBUS_4_TX_TEXT "SLIMBUS_4_TX"
111#define SLIMBUS_5_TX_TEXT "SLIMBUS_5_TX"
112#define TERT_MI2S_TX_TEXT "TERT_MI2S_TX"
113#define QUAT_MI2S_TX_TEXT "QUAT_MI2S_TX"
114#define ADM_LSM_TX_TEXT "ADM_LSM_TX"
115#define INT3_MI2S_TX_TEXT "INT3_MI2S_TX"
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +0530116#define VA_CDC_DMA_TX_0_TEXT "VA_CDC_DMA_TX_0"
117#define VA_CDC_DMA_TX_1_TEXT "VA_CDC_DMA_TX_1"
Xiaoyu Yef439aed2019-01-02 16:40:01 -0800118#define VA_CDC_DMA_TX_2_TEXT "VA_CDC_DMA_TX_2"
Aditya Bavanarie9454c62018-08-23 23:45:20 +0530119#define TX_CDC_DMA_TX_3_TEXT "TX_CDC_DMA_TX_3"
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +0530120#define QUIN_TDM_TX_TEXT "QUIN_TDM_TX_0"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530121
122#define LSM_FUNCTION_TEXT "LSM Function"
123static const char * const lsm_port_text[] = {
124 "None",
125 SLIMBUS_0_TX_TEXT, SLIMBUS_1_TX_TEXT, SLIMBUS_2_TX_TEXT,
126 SLIMBUS_3_TX_TEXT, SLIMBUS_4_TX_TEXT, SLIMBUS_5_TX_TEXT,
127 TERT_MI2S_TX_TEXT, QUAT_MI2S_TX_TEXT, ADM_LSM_TX_TEXT,
Aditya Bavanarie9454c62018-08-23 23:45:20 +0530128 INT3_MI2S_TX_TEXT, VA_CDC_DMA_TX_0_TEXT, VA_CDC_DMA_TX_1_TEXT,
Xiaoyu Yef439aed2019-01-02 16:40:01 -0800129 VA_CDC_DMA_TX_2_TEXT, TX_CDC_DMA_TX_3_TEXT, QUIN_TDM_TX_TEXT
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530130};
131
132struct msm_pcm_route_bdai_pp_params {
133 u16 port_id; /* AFE port ID */
134 unsigned long pp_params_config;
135 bool mute_on;
136 int latency;
137};
138
139static struct msm_pcm_route_bdai_pp_params
140 msm_bedais_pp_params[MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX] = {
141 {HDMI_RX, 0, 0, 0},
142 {DISPLAY_PORT_RX, 0, 0, 0},
143};
144
145/*
146 * The be_dai_name_table is passed to HAL so that it can specify the
147 * BE ID for the BE it wants to enable based on the name. Thus there
148 * is a matching table and structure in HAL that need to be updated
149 * if any changes to these are made.
150 */
151struct msm_pcm_route_bdai_name {
152 unsigned int be_id;
153 char be_name[LPASS_BE_NAME_MAX_LENGTH];
154};
155static struct msm_pcm_route_bdai_name be_dai_name_table[MSM_BACKEND_DAI_MAX];
156
157static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
158 int fe_id);
159
Vikram Panduranga6e55ad82018-03-14 13:56:18 -0700160static void msm_routing_load_topology(size_t data_size, void *data);
161static void msm_routing_unload_topology(uint32_t topology_id);
162
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530163static int msm_routing_get_bit_width(unsigned int format)
164{
165 int bit_width;
166
167 switch (format) {
168 case SNDRV_PCM_FORMAT_S32_LE:
169 bit_width = 32;
170 break;
171 case SNDRV_PCM_FORMAT_S24_LE:
172 case SNDRV_PCM_FORMAT_S24_3LE:
173 bit_width = 24;
174 break;
175 case SNDRV_PCM_FORMAT_S16_LE:
176 default:
177 bit_width = 16;
178 }
179 return bit_width;
180}
181
182static bool msm_is_resample_needed(int input_sr, int output_sr)
183{
184 bool rc = false;
185
186 if (input_sr != output_sr)
187 rc = true;
188
189 pr_debug("perform resampling (%s) for copp rate (%d)afe rate (%d)",
190 (rc ? "oh yes" : "not really"),
191 input_sr, output_sr);
192
193 return rc;
194}
195
196static void msm_pcm_routing_cfg_pp(int port_id, int copp_idx, int topology,
197 int channels)
198{
199 int rc = 0;
200
201 switch (topology) {
202 case SRS_TRUMEDIA_TOPOLOGY_ID:
203 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
204 msm_dts_srs_tm_init(port_id, copp_idx);
205 break;
206 case DS2_ADM_COPP_TOPOLOGY_ID:
207 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY %d\n",
208 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
209 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
210 is_custom_stereo_on);
211 if (rc < 0)
212 pr_err("%s: DS2 topo_id 0x%x, port %d, CS %d rc %d\n",
213 __func__, topology, port_id,
214 is_custom_stereo_on, rc);
215 break;
216 case DOLBY_ADM_COPP_TOPOLOGY_ID:
217 if (is_ds2_on) {
218 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY\n", __func__);
219 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
220 is_custom_stereo_on);
221 if (rc < 0)
222 pr_err("%s:DS2 topo_id 0x%x, port %d, rc %d\n",
223 __func__, topology, port_id, rc);
224 } else {
225 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
226 rc = msm_dolby_dap_init(port_id, copp_idx, channels,
227 is_custom_stereo_on);
228 if (rc < 0)
229 pr_err("%s: DS1 topo_id 0x%x, port %d, rc %d\n",
230 __func__, topology, port_id, rc);
231 }
232 break;
233 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
234 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
235 rc = msm_qti_pp_asphere_init(port_id, copp_idx);
236 if (rc < 0)
237 pr_err("%s: topo_id 0x%x, port %d, copp %d, rc %d\n",
238 __func__, topology, port_id, copp_idx, rc);
239 break;
240 default:
241 /* custom topology specific feature param handlers */
242 break;
243 }
244}
245
246static void msm_pcm_routing_deinit_pp(int port_id, int topology)
247{
248 switch (topology) {
249 case SRS_TRUMEDIA_TOPOLOGY_ID:
250 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
251 msm_dts_srs_tm_deinit(port_id);
252 break;
253 case DS2_ADM_COPP_TOPOLOGY_ID:
254 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID %d\n",
255 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
256 msm_ds2_dap_deinit(port_id);
257 break;
258 case DOLBY_ADM_COPP_TOPOLOGY_ID:
259 if (is_ds2_on) {
260 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID\n", __func__);
261 msm_ds2_dap_deinit(port_id);
262 } else {
263 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
264 msm_dolby_dap_deinit(port_id);
265 }
266 break;
267 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
268 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
269 msm_qti_pp_asphere_deinit(port_id);
270 break;
271 default:
272 /* custom topology specific feature deinit handlers */
273 break;
274 }
275}
276
277static void msm_pcm_routng_cfg_matrix_map_pp(struct route_payload payload,
278 int path_type, int perf_mode)
279{
280 int itr = 0, rc = 0;
281
282 if ((path_type == ADM_PATH_PLAYBACK) &&
283 (perf_mode == LEGACY_PCM_MODE) &&
284 is_custom_stereo_on) {
285 for (itr = 0; itr < payload.num_copps; itr++) {
286 if ((payload.port_id[itr] != SLIMBUS_0_RX) &&
287 (payload.port_id[itr] != RT_PROXY_PORT_001_RX)) {
288 continue;
289 }
290
291 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd(
292 payload.port_id[itr],
293 payload.copp_idx[itr],
294 payload.session_id,
295 Q14_GAIN_ZERO_POINT_FIVE,
296 Q14_GAIN_ZERO_POINT_FIVE,
297 Q14_GAIN_ZERO_POINT_FIVE,
298 Q14_GAIN_ZERO_POINT_FIVE);
299 if (rc < 0)
300 pr_err("%s: err setting custom stereo\n",
301 __func__);
302 }
303 }
304}
305
306#define SLIMBUS_EXTPROC_RX AFE_PORT_INVALID
307struct msm_pcm_routing_bdai_data msm_bedais[MSM_BACKEND_DAI_MAX] = {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530308 { PRIMARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_PRI_I2S_RX},
309 { PRIMARY_I2S_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_PRI_I2S_TX},
310 { SLIMBUS_0_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_0_RX},
311 { SLIMBUS_0_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_0_TX},
312 { HDMI_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_HDMI},
313 { INT_BT_SCO_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_BT_SCO_RX},
314 { INT_BT_SCO_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_BT_SCO_TX},
315 { INT_FM_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_FM_RX},
316 { INT_FM_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_FM_TX},
317 { RT_PROXY_PORT_001_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530318 LPASS_BE_AFE_PCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530319 { RT_PROXY_PORT_001_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530320 LPASS_BE_AFE_PCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530321 { AFE_PORT_ID_PRIMARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530322 LPASS_BE_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530323 { AFE_PORT_ID_PRIMARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530324 LPASS_BE_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530325 { VOICE_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530326 LPASS_BE_VOICE_PLAYBACK_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530327 { VOICE2_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530328 LPASS_BE_VOICE2_PLAYBACK_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530329 { VOICE_RECORD_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530330 LPASS_BE_INCALL_RECORD_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530331 { VOICE_RECORD_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530332 LPASS_BE_INCALL_RECORD_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530333 { MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_MI2S_RX},
334 { MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_MI2S_TX},
335 { SECONDARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SEC_I2S_RX},
336 { SLIMBUS_1_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_1_RX},
337 { SLIMBUS_1_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_1_TX},
338 { SLIMBUS_2_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_2_RX},
339 { SLIMBUS_2_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_2_TX},
340 { SLIMBUS_3_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_3_RX},
341 { SLIMBUS_3_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_3_TX},
342 { SLIMBUS_4_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_4_RX},
343 { SLIMBUS_4_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_4_TX},
344 { SLIMBUS_5_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_5_RX},
345 { SLIMBUS_5_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_5_TX},
346 { SLIMBUS_6_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_6_RX},
347 { SLIMBUS_6_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_6_TX},
348 { SLIMBUS_7_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_7_RX},
349 { SLIMBUS_7_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_7_TX},
350 { SLIMBUS_8_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_8_RX},
351 { SLIMBUS_8_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_8_TX},
352 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_RX},
353 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_TX},
354 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_1_TX},
355 { AFE_PORT_ID_QUATERNARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530356 LPASS_BE_QUAT_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530357 { AFE_PORT_ID_QUATERNARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530358 LPASS_BE_QUAT_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530359 { AFE_PORT_ID_SECONDARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530360 LPASS_BE_SEC_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530361 { AFE_PORT_ID_SECONDARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530362 LPASS_BE_SEC_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530363 { AFE_PORT_ID_PRIMARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530364 LPASS_BE_PRI_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530365 { AFE_PORT_ID_PRIMARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530366 LPASS_BE_PRI_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530367 { AFE_PORT_ID_TERTIARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530368 LPASS_BE_TERT_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530369 { AFE_PORT_ID_TERTIARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530370 LPASS_BE_TERT_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530371 { AUDIO_PORT_ID_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530372 LPASS_BE_AUDIO_I2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530373 { AFE_PORT_ID_SECONDARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530374 LPASS_BE_SEC_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530375 { AFE_PORT_ID_SECONDARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530376 LPASS_BE_SEC_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530377 { AFE_PORT_ID_PRIMARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200378 LPASS_BE_PRI_SPDIF_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530379 { AFE_PORT_ID_SECONDARY_MI2S_RX_SD1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530380 LPASS_BE_SEC_MI2S_RX_SD1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530381 { AFE_PORT_ID_QUINARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530382 LPASS_BE_QUIN_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530383 { AFE_PORT_ID_QUINARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530384 LPASS_BE_QUIN_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530385 { AFE_PORT_ID_SENARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530386 LPASS_BE_SENARY_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530387 { AFE_PORT_ID_PRIMARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530388 LPASS_BE_PRI_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530389 { AFE_PORT_ID_PRIMARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530390 LPASS_BE_PRI_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530391 { AFE_PORT_ID_PRIMARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530392 LPASS_BE_PRI_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530393 { AFE_PORT_ID_PRIMARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530394 LPASS_BE_PRI_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530395 { AFE_PORT_ID_PRIMARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530396 LPASS_BE_PRI_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530397 { AFE_PORT_ID_PRIMARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530398 LPASS_BE_PRI_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530399 { AFE_PORT_ID_PRIMARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530400 LPASS_BE_PRI_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530401 { AFE_PORT_ID_PRIMARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530402 LPASS_BE_PRI_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530403 { AFE_PORT_ID_PRIMARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530404 LPASS_BE_PRI_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530405 { AFE_PORT_ID_PRIMARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530406 LPASS_BE_PRI_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530407 { AFE_PORT_ID_PRIMARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530408 LPASS_BE_PRI_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530409 { AFE_PORT_ID_PRIMARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530410 LPASS_BE_PRI_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530411 { AFE_PORT_ID_PRIMARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530412 LPASS_BE_PRI_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530413 { AFE_PORT_ID_PRIMARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530414 LPASS_BE_PRI_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530415 { AFE_PORT_ID_PRIMARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530416 LPASS_BE_PRI_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530417 { AFE_PORT_ID_PRIMARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530418 LPASS_BE_PRI_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530419 { AFE_PORT_ID_SECONDARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530420 LPASS_BE_SEC_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530421 { AFE_PORT_ID_SECONDARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530422 LPASS_BE_SEC_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530423 { AFE_PORT_ID_SECONDARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530424 LPASS_BE_SEC_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530425 { AFE_PORT_ID_SECONDARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530426 LPASS_BE_SEC_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530427 { AFE_PORT_ID_SECONDARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530428 LPASS_BE_SEC_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530429 { AFE_PORT_ID_SECONDARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530430 LPASS_BE_SEC_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530431 { AFE_PORT_ID_SECONDARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530432 LPASS_BE_SEC_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530433 { AFE_PORT_ID_SECONDARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530434 LPASS_BE_SEC_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530435 { AFE_PORT_ID_SECONDARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530436 LPASS_BE_SEC_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530437 { AFE_PORT_ID_SECONDARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530438 LPASS_BE_SEC_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530439 { AFE_PORT_ID_SECONDARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530440 LPASS_BE_SEC_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530441 { AFE_PORT_ID_SECONDARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530442 LPASS_BE_SEC_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530443 { AFE_PORT_ID_SECONDARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530444 LPASS_BE_SEC_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530445 { AFE_PORT_ID_SECONDARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530446 LPASS_BE_SEC_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530447 { AFE_PORT_ID_SECONDARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530448 LPASS_BE_SEC_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530449 { AFE_PORT_ID_SECONDARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530450 LPASS_BE_SEC_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530451 { AFE_PORT_ID_TERTIARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530452 LPASS_BE_TERT_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530453 { AFE_PORT_ID_TERTIARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530454 LPASS_BE_TERT_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530455 { AFE_PORT_ID_TERTIARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530456 LPASS_BE_TERT_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530457 { AFE_PORT_ID_TERTIARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530458 LPASS_BE_TERT_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530459 { AFE_PORT_ID_TERTIARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530460 LPASS_BE_TERT_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530461 { AFE_PORT_ID_TERTIARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530462 LPASS_BE_TERT_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530463 { AFE_PORT_ID_TERTIARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530464 LPASS_BE_TERT_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530465 { AFE_PORT_ID_TERTIARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530466 LPASS_BE_TERT_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530467 { AFE_PORT_ID_TERTIARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530468 LPASS_BE_TERT_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530469 { AFE_PORT_ID_TERTIARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530470 LPASS_BE_TERT_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530471 { AFE_PORT_ID_TERTIARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530472 LPASS_BE_TERT_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530473 { AFE_PORT_ID_TERTIARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530474 LPASS_BE_TERT_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530475 { AFE_PORT_ID_TERTIARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530476 LPASS_BE_TERT_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530477 { AFE_PORT_ID_TERTIARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530478 LPASS_BE_TERT_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530479 { AFE_PORT_ID_TERTIARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530480 LPASS_BE_TERT_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530481 { AFE_PORT_ID_TERTIARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530482 LPASS_BE_TERT_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530483 { AFE_PORT_ID_QUATERNARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530484 LPASS_BE_QUAT_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530485 { AFE_PORT_ID_QUATERNARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530486 LPASS_BE_QUAT_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530487 { AFE_PORT_ID_QUATERNARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530488 LPASS_BE_QUAT_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530489 { AFE_PORT_ID_QUATERNARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530490 LPASS_BE_QUAT_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530491 { AFE_PORT_ID_QUATERNARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530492 LPASS_BE_QUAT_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530493 { AFE_PORT_ID_QUATERNARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530494 LPASS_BE_QUAT_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530495 { AFE_PORT_ID_QUATERNARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530496 LPASS_BE_QUAT_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530497 { AFE_PORT_ID_QUATERNARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530498 LPASS_BE_QUAT_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530499 { AFE_PORT_ID_QUATERNARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530500 LPASS_BE_QUAT_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530501 { AFE_PORT_ID_QUATERNARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530502 LPASS_BE_QUAT_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530503 { AFE_PORT_ID_QUATERNARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530504 LPASS_BE_QUAT_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530505 { AFE_PORT_ID_QUATERNARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530506 LPASS_BE_QUAT_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530507 { AFE_PORT_ID_QUATERNARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530508 LPASS_BE_QUAT_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530509 { AFE_PORT_ID_QUATERNARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530510 LPASS_BE_QUAT_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530511 { AFE_PORT_ID_QUATERNARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530512 LPASS_BE_QUAT_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530513 { AFE_PORT_ID_QUATERNARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530514 LPASS_BE_QUAT_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530515 { AFE_PORT_ID_QUINARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530516 LPASS_BE_QUIN_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530517 { AFE_PORT_ID_QUINARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530518 LPASS_BE_QUIN_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530519 { AFE_PORT_ID_QUINARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530520 LPASS_BE_QUIN_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530521 { AFE_PORT_ID_QUINARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530522 LPASS_BE_QUIN_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530523 { AFE_PORT_ID_QUINARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530524 LPASS_BE_QUIN_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530525 { AFE_PORT_ID_QUINARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530526 LPASS_BE_QUIN_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530527 { AFE_PORT_ID_QUINARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530528 LPASS_BE_QUIN_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530529 { AFE_PORT_ID_QUINARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530530 LPASS_BE_QUIN_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530531 { AFE_PORT_ID_QUINARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530532 LPASS_BE_QUIN_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530533 { AFE_PORT_ID_QUINARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530534 LPASS_BE_QUIN_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530535 { AFE_PORT_ID_QUINARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530536 LPASS_BE_QUIN_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530537 { AFE_PORT_ID_QUINARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530538 LPASS_BE_QUIN_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530539 { AFE_PORT_ID_QUINARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530540 LPASS_BE_QUIN_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530541 { AFE_PORT_ID_QUINARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530542 LPASS_BE_QUIN_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530543 { AFE_PORT_ID_QUINARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530544 LPASS_BE_QUIN_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530545 { AFE_PORT_ID_QUINARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530546 LPASS_BE_QUIN_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530547 { INT_BT_A2DP_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530548 LPASS_BE_INT_BT_A2DP_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530549 { AFE_PORT_ID_USB_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530550 LPASS_BE_USB_AUDIO_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530551 { AFE_PORT_ID_USB_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530552 LPASS_BE_USB_AUDIO_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530553 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530554 LPASS_BE_DISPLAY_PORT},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530555 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0,
Karthikeyan Mani57550082018-05-03 18:43:58 -0700556 LPASS_BE_DISPLAY_PORT1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530557 { AFE_PORT_ID_TERTIARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530558 LPASS_BE_TERT_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530559 { AFE_PORT_ID_TERTIARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530560 LPASS_BE_TERT_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530561 { AFE_PORT_ID_QUATERNARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530562 LPASS_BE_QUAT_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530563 { AFE_PORT_ID_QUATERNARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530564 LPASS_BE_QUAT_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530565 { AFE_PORT_ID_QUINARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530566 LPASS_BE_QUIN_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530567 { AFE_PORT_ID_QUINARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530568 LPASS_BE_QUIN_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530569 { AFE_PORT_ID_INT0_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530570 LPASS_BE_INT0_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530571 { AFE_PORT_ID_INT0_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530572 LPASS_BE_INT0_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530573 { AFE_PORT_ID_INT1_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530574 LPASS_BE_INT1_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530575 { AFE_PORT_ID_INT1_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530576 LPASS_BE_INT1_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530577 { AFE_PORT_ID_INT2_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530578 LPASS_BE_INT2_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530579 { AFE_PORT_ID_INT2_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530580 LPASS_BE_INT2_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530581 { AFE_PORT_ID_INT3_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530582 LPASS_BE_INT3_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530583 { AFE_PORT_ID_INT3_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530584 LPASS_BE_INT3_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530585 { AFE_PORT_ID_INT4_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530586 LPASS_BE_INT4_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530587 { AFE_PORT_ID_INT4_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530588 LPASS_BE_INT4_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530589 { AFE_PORT_ID_INT5_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530590 LPASS_BE_INT5_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530591 { AFE_PORT_ID_INT5_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530592 LPASS_BE_INT5_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530593 { AFE_PORT_ID_INT6_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530594 LPASS_BE_INT6_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530595 { AFE_PORT_ID_INT6_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530596 LPASS_BE_INT6_MI2S_TX},
Dieter Luecking70668fc2018-09-28 15:03:01 +0200597 { AFE_PORT_ID_SENARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
598 LPASS_BE_SEN_AUXPCM_RX},
599 { AFE_PORT_ID_SENARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
600 LPASS_BE_SEN_AUXPCM_TX},
601 { AFE_PORT_ID_SENARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
602 LPASS_BE_SENARY_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530603 { AFE_PORT_ID_WSA_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530604 LPASS_BE_WSA_CDC_DMA_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530605 { AFE_PORT_ID_WSA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530606 LPASS_BE_WSA_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530607 { AFE_PORT_ID_WSA_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530608 LPASS_BE_WSA_CDC_DMA_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530609 { AFE_PORT_ID_WSA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530610 LPASS_BE_WSA_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530611 { AFE_PORT_ID_WSA_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530612 LPASS_BE_WSA_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530613 { AFE_PORT_ID_VA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530614 LPASS_BE_VA_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530615 { AFE_PORT_ID_VA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530616 LPASS_BE_VA_CDC_DMA_TX_1},
Xiaoyu Yef439aed2019-01-02 16:40:01 -0800617 { AFE_PORT_ID_VA_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
618 LPASS_BE_VA_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530619 { AFE_PORT_ID_RX_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530620 LPASS_BE_RX_CDC_DMA_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530621 { AFE_PORT_ID_TX_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530622 LPASS_BE_TX_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530623 { AFE_PORT_ID_RX_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530624 LPASS_BE_RX_CDC_DMA_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530625 { AFE_PORT_ID_TX_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530626 LPASS_BE_TX_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530627 { AFE_PORT_ID_RX_CODEC_DMA_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530628 LPASS_BE_RX_CDC_DMA_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530629 { AFE_PORT_ID_TX_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530630 LPASS_BE_TX_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530631 { AFE_PORT_ID_RX_CODEC_DMA_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530632 LPASS_BE_RX_CDC_DMA_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530633 { AFE_PORT_ID_TX_CODEC_DMA_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530634 LPASS_BE_TX_CDC_DMA_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530635 { AFE_PORT_ID_RX_CODEC_DMA_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530636 LPASS_BE_RX_CDC_DMA_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530637 { AFE_PORT_ID_TX_CODEC_DMA_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530638 LPASS_BE_TX_CDC_DMA_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530639 { AFE_PORT_ID_RX_CODEC_DMA_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530640 LPASS_BE_RX_CDC_DMA_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530641 { AFE_PORT_ID_TX_CODEC_DMA_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530642 LPASS_BE_TX_CDC_DMA_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530643 { AFE_PORT_ID_RX_CODEC_DMA_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530644 LPASS_BE_RX_CDC_DMA_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530645 { AFE_PORT_ID_RX_CODEC_DMA_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530646 LPASS_BE_RX_CDC_DMA_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530647 { AFE_PORT_ID_PRIMARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200648 LPASS_BE_PRI_SPDIF_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530649 { AFE_PORT_ID_SECONDARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200650 LPASS_BE_SEC_SPDIF_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530651 { AFE_PORT_ID_SECONDARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200652 LPASS_BE_SEC_SPDIF_TX},
Surendar Karka3ef3d812018-09-28 18:52:35 +0530653 { SLIMBUS_9_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_9_RX},
654 { SLIMBUS_9_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_9_TX},
Surendar Karkad47fda42018-05-20 19:21:10 +0530655 { AFE_LOOPBACK_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_AFE_LOOPBACK_TX},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530656};
657
658/* Track ASM playback & capture sessions of DAI
659 * Track LSM listen sessions
660 */
661static struct msm_pcm_routing_fdai_data
662 fe_dai_map[MSM_FRONTEND_DAI_MAX][2] = {
663 /* MULTIMEDIA1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530664 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
665 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530666 /* MULTIMEDIA2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530667 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
668 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530669 /* MULTIMEDIA3 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530670 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
671 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530672 /* MULTIMEDIA4 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530673 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
674 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530675 /* MULTIMEDIA5 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530676 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
677 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530678 /* MULTIMEDIA6 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530679 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
680 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530681 /* MULTIMEDIA7*/
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530682 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
683 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530684 /* MULTIMEDIA8 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530685 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
686 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530687 /* MULTIMEDIA9 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530688 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
689 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530690 /* MULTIMEDIA10 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530691 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
692 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530693 /* MULTIMEDIA11 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530694 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
695 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530696 /* MULTIMEDIA12 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530697 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
698 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530699 /* MULTIMEDIA13 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530700 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
701 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530702 /* MULTIMEDIA14 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530703 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
704 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530705 /* MULTIMEDIA15 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530706 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
707 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530708 /* MULTIMEDIA16 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530709 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
710 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530711 /* MULTIMEDIA17 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530712 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
713 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530714 /* MULTIMEDIA18 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530715 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
716 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530717 /* MULTIMEDIA19 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530718 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
719 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530720 /* MULTIMEDIA20 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530721 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
722 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Derek Chen07c6d1c2018-07-05 10:39:25 -0700723 /* MULTIMEDIA21 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530724 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
725 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Surendar Karkac1cde372018-08-14 18:56:24 +0530726 /* MULTIMEDIA26 */
727 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
728 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
729 /* MULTIMEDIA27 */
730 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
731 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530732 /* MULTIMEDIA28 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530733 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
734 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530735 /* MULTIMEDIA29 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530736 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
737 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530738 /* VOIP */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530739 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
740 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530741 /* AFE_RX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530742 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
743 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530744 /* AFE_TX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530745 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
746 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530747 /* VOICE_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530748 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
749 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530750 /* DTMF_RX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530751 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
752 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530753 /* QCHAT */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530754 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
755 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530756 /* VOLTE_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530757 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
758 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530759 /* LSM1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530760 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
761 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530762 /* LSM2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530763 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
764 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530765 /* LSM3 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530766 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
767 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530768 /* LSM4 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530769 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
770 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530771 /* LSM5 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530772 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
773 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530774 /* LSM6 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530775 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
776 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530777 /* LSM7 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530778 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
779 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530780 /* LSM8 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530781 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
782 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530783 /* VOICE2_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530784 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
785 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530786 /* VOICEMMODE1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530787 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
788 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530789 /* VOICEMMODE2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530790 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
791 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530792};
793
794static unsigned long session_copp_map[MSM_FRONTEND_DAI_MAX][2]
795 [MSM_BACKEND_DAI_MAX];
796static struct msm_pcm_routing_app_type_data app_type_cfg[MAX_APP_TYPES];
797static struct msm_pcm_routing_app_type_data lsm_app_type_cfg[MAX_APP_TYPES];
798static struct msm_pcm_stream_app_type_cfg
799 fe_dai_app_type_cfg[MSM_FRONTEND_DAI_MAX][2][MSM_BACKEND_DAI_MAX];
800
801static int last_be_id_configured[MSM_FRONTEND_DAI_MAX][MAX_SESSION_TYPES];
802
Florian Pfister522073c2018-09-26 15:39:15 +0200803/* The caller of this should acquire routing lock */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530804void msm_pcm_routing_get_bedai_info(int be_idx,
805 struct msm_pcm_routing_bdai_data *be_dai)
806{
807 if (be_idx >= 0 && be_idx < MSM_BACKEND_DAI_MAX)
808 memcpy(be_dai, &msm_bedais[be_idx],
809 sizeof(struct msm_pcm_routing_bdai_data));
810}
811
Florian Pfister522073c2018-09-26 15:39:15 +0200812/* The caller of this should acquire routing lock */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530813void msm_pcm_routing_get_fedai_info(int fe_idx, int sess_type,
814 struct msm_pcm_routing_fdai_data *fe_dai)
815{
816 if ((sess_type == SESSION_TYPE_TX) || (sess_type == SESSION_TYPE_RX))
817 memcpy(fe_dai, &fe_dai_map[fe_idx][sess_type],
818 sizeof(struct msm_pcm_routing_fdai_data));
819}
820
821void msm_pcm_routing_acquire_lock(void)
822{
823 mutex_lock(&routing_lock);
824}
825
826void msm_pcm_routing_release_lock(void)
827{
828 mutex_unlock(&routing_lock);
829}
830
831static int msm_pcm_routing_get_app_type_idx(int app_type)
832{
833 int idx;
834
835 pr_debug("%s: app_type: %d\n", __func__, app_type);
836 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
837 if (app_type_cfg[idx].app_type == app_type)
838 return idx;
839 }
840 pr_info("%s: App type not available, fallback to default\n", __func__);
841 return 0;
842}
843
844static int msm_pcm_routing_get_lsm_app_type_idx(int app_type)
845{
846 int idx;
847
848 pr_debug("%s: app_type: %d\n", __func__, app_type);
849 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
850 if (lsm_app_type_cfg[idx].app_type == app_type)
851 return idx;
852 }
853 pr_debug("%s: App type not available, fallback to default\n", __func__);
854 return 0;
855}
856
Surendar Karkae7507512018-07-20 15:46:54 +0530857static int get_port_id(int port_id)
858{
859 return (port_id == AFE_LOOPBACK_TX ? msm_ec_ref_port_id : port_id);
860}
861
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530862static bool is_mm_lsm_fe_id(int fe_id)
863{
864 bool rc = true;
865
866 if (fe_id > MSM_FRONTEND_DAI_MM_MAX_ID &&
867 ((fe_id < MSM_FRONTEND_DAI_LSM1) ||
868 (fe_id > MSM_FRONTEND_DAI_LSM8))) {
869 rc = false;
870 }
871 return rc;
872}
873
Bhalchandra Gajareeed46bd2018-05-15 16:48:07 -0700874/*
875 * msm_pcm_routing_send_chmix_cfg:
876 * send the channel mixer command to mix the input channels
877 * into output channels.
878 *
879 * @fe_id: front end id
880 * @ip_channel_cnt: input channel count
881 * @op_channel_cnt: output channel count
882 * @ch_wght_coeff: channel weight co-efficients for channel mixing
883 * @session_type: indicates session is of type TX or RX
884 * @stream_type: indicates either Audio or Listen stream type
885 */
886int msm_pcm_routing_send_chmix_cfg(int fe_id, int ip_channel_cnt,
887 int op_channel_cnt, int *ch_wght_coeff,
888 int session_type, int stream_type)
889{
890
891 int rc = 0, idx = 0;
892 int be_index = 0, port_id;
893 unsigned int session_id = 0;
894
895 pr_debug("%s:fe_id[%d] ip_ch[%d] op_ch[%d] sess_type [%d], stream_type[%d]",
896 __func__, fe_id, ip_channel_cnt, op_channel_cnt, session_type,
897 stream_type);
898 if (!is_mm_lsm_fe_id(fe_id)) {
899 /* bad ID assigned in machine driver */
900 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
901 return -EINVAL;
902 }
903
904 if (ch_wght_coeff == NULL) {
905 pr_err("%s: Null channel weightage coefficients passed\n",
906 __func__);
907 return -EINVAL;
908 }
909
910 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
911 port_id = msm_bedais[be_index].port_id;
912 if (!msm_bedais[be_index].active ||
913 !test_bit(fe_id, &msm_bedais[be_index].fe_sessions[0]))
914 continue;
915
916 session_id = fe_dai_map[fe_id][session_type].strm_id;
917
918 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
919 unsigned long copp =
920 session_copp_map[fe_id][session_type][be_index];
921 if (!test_bit(idx, &copp))
922 continue;
923 msm_qti_pp_send_chmix_cfg_cmd(port_id, idx,
924 session_id, ip_channel_cnt,
925 op_channel_cnt, ch_wght_coeff,
926 session_type, stream_type);
927 if (rc < 0)
928 pr_err("%s: err setting channel mix config\n",
929 __func__);
930 }
931 }
932
933 return 0;
934}
935EXPORT_SYMBOL(msm_pcm_routing_send_chmix_cfg);
936
Dhananjay Kumar807f7e92018-12-11 18:10:08 +0530937/**
938 * msm_pcm_routing_set_channel_mixer_cfg - cache channel mixer
939 * setting before use case start.
940 *
941 * @fe_id: frontend idx
942 * @type: stream direction type
943 * @params: parameters of channel mixer setting
944 *
945 * Return 0 for success
946 */
947int msm_pcm_routing_set_channel_mixer_cfg(
948 int fe_id, int type,
949 struct msm_pcm_channel_mixer *params)
950{
951 int i, j = 0;
952
953 channel_mixer_v2[fe_id][type].enable = params->enable;
954 channel_mixer_v2[fe_id][type].rule = params->rule;
955 channel_mixer_v2[fe_id][type].input_channel =
956 params->input_channel;
957 channel_mixer_v2[fe_id][type].output_channel =
958 params->output_channel;
959 channel_mixer_v2[fe_id][type].port_idx = params->port_idx;
960
961 for (i = 0; i < ADM_MAX_CHANNELS; i++)
962 channel_mixer_v2[fe_id][type].in_ch_map[i] =
963 params->in_ch_map[i];
964 for (i = 0; i < ADM_MAX_CHANNELS; i++)
965 channel_mixer_v2[fe_id][type].out_ch_map[i] =
966 params->out_ch_map[i];
967
968 for (i = 0; i < ADM_MAX_CHANNELS; i++)
969 for (j = 0; j < ADM_MAX_CHANNELS; j++)
970 channel_mixer_v2[fe_id][type].channel_weight[i][j] =
971 params->channel_weight[i][j];
972
973 channel_mixer_v2[fe_id][type].override_in_ch_map =
974 params->override_in_ch_map;
975 channel_mixer_v2[fe_id][type].override_out_ch_map =
976 params->override_out_ch_map;
977
978 return 0;
979}
980EXPORT_SYMBOL(msm_pcm_routing_set_channel_mixer_cfg);
981
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530982int msm_pcm_routing_reg_stream_app_type_cfg(
983 int fedai_id, int session_type, int be_id,
984 struct msm_pcm_stream_app_type_cfg *cfg_data)
985{
986 int ret = 0;
987
988 if (cfg_data == NULL) {
989 pr_err("%s: Received NULL pointer for cfg_data\n", __func__);
990 ret = -EINVAL;
991 goto done;
992 }
993
994 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
995 __func__, fedai_id, session_type, be_id,
996 cfg_data->app_type, cfg_data->acdb_dev_id,
997 cfg_data->sample_rate);
998
999 if (!is_mm_lsm_fe_id(fedai_id)) {
1000 pr_err("%s: Invalid machine driver ID %d\n",
1001 __func__, fedai_id);
1002 ret = -EINVAL;
1003 goto done;
1004 }
1005 if (session_type != SESSION_TYPE_RX &&
1006 session_type != SESSION_TYPE_TX) {
1007 pr_err("%s: Invalid session type %d\n",
1008 __func__, session_type);
1009 ret = -EINVAL;
1010 goto done;
1011 }
1012 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1013 pr_err("%s: Received out of bounds be_id %d\n",
1014 __func__, be_id);
1015 ret = -EINVAL;
1016 goto done;
1017 }
1018
1019 fe_dai_app_type_cfg[fedai_id][session_type][be_id] = *cfg_data;
1020
1021 /*
1022 * Store the BE ID of the configuration information set as the latest so
1023 * the get mixer control knows what to return.
1024 */
1025 last_be_id_configured[fedai_id][session_type] = be_id;
1026
1027done:
1028 return ret;
1029}
1030EXPORT_SYMBOL(msm_pcm_routing_reg_stream_app_type_cfg);
1031
1032/**
1033 * msm_pcm_routing_get_stream_app_type_cfg
1034 *
1035 * Receives fedai_id, session_type, be_id, and populates app_type,
1036 * acdb_dev_id, & sample rate. Returns 0 on success. On failure returns
1037 * -EINVAL and does not alter passed values.
1038 *
1039 * fedai_id - Passed value, front end ID for which app type config is wanted
1040 * session_type - Passed value, session type for which app type config
1041 * is wanted
1042 * be_id - Returned value, back end device id the app type config data is for
1043 * cfg_data - Returned value, configuration data used by app type config
1044 */
1045int msm_pcm_routing_get_stream_app_type_cfg(
1046 int fedai_id, int session_type, int *bedai_id,
1047 struct msm_pcm_stream_app_type_cfg *cfg_data)
1048{
1049 int be_id;
1050 int ret = 0;
1051
1052 if (bedai_id == NULL) {
1053 pr_err("%s: Received NULL pointer for backend ID\n", __func__);
1054 ret = -EINVAL;
1055 goto done;
1056 } else if (cfg_data == NULL) {
1057 pr_err("%s: NULL pointer sent for cfg_data\n", __func__);
1058 ret = -EINVAL;
1059 goto done;
1060 } else if (!is_mm_lsm_fe_id(fedai_id)) {
1061 pr_err("%s: Invalid FE ID %d\n", __func__, fedai_id);
1062 ret = -EINVAL;
1063 goto done;
1064 } else if (session_type != SESSION_TYPE_RX &&
1065 session_type != SESSION_TYPE_TX) {
1066 pr_err("%s: Invalid session type %d\n", __func__, session_type);
1067 ret = -EINVAL;
1068 goto done;
1069 }
1070
1071 be_id = last_be_id_configured[fedai_id][session_type];
1072 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1073 pr_err("%s: Invalid BE ID %d\n", __func__, be_id);
1074 ret = -EINVAL;
1075 goto done;
1076 }
1077
1078 *bedai_id = be_id;
1079 *cfg_data = fe_dai_app_type_cfg[fedai_id][session_type][be_id];
1080 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
1081 __func__, fedai_id, session_type, *bedai_id,
1082 cfg_data->app_type, cfg_data->acdb_dev_id,
1083 cfg_data->sample_rate);
1084done:
1085 return ret;
1086}
1087EXPORT_SYMBOL(msm_pcm_routing_get_stream_app_type_cfg);
1088
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301089static struct cal_block_data *msm_routing_find_topology_by_path(int path,
1090 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301091{
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301092 struct list_head *ptr, *next;
1093 struct cal_block_data *cal_block = NULL;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301094 pr_debug("%s\n", __func__);
1095
1096 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301097 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301098
1099 cal_block = list_entry(ptr,
1100 struct cal_block_data, list);
1101
Vikram Panduranga770b8382017-09-27 12:17:36 -07001102 if (cal_utils_is_cal_stale(cal_block))
1103 continue;
1104
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301105 if (((struct audio_cal_info_adm_top *)cal_block
1106 ->cal_info)->path == path) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301107 return cal_block;
1108 }
1109 }
1110 pr_debug("%s: Can't find topology for path %d\n", __func__, path);
1111 return NULL;
1112}
1113
1114static struct cal_block_data *msm_routing_find_topology(int path,
1115 int app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301116 int acdb_id,
Haynes Mathew George4728d6b2018-06-08 17:26:24 -07001117 int cal_index,
1118 bool exact)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301119{
1120 struct list_head *ptr, *next;
1121 struct cal_block_data *cal_block = NULL;
1122 struct audio_cal_info_adm_top *cal_info;
1123
1124 pr_debug("%s\n", __func__);
1125
1126 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301127 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301128
1129 cal_block = list_entry(ptr,
1130 struct cal_block_data, list);
1131
Vikram Panduranga770b8382017-09-27 12:17:36 -07001132 if (cal_utils_is_cal_stale(cal_block))
1133 continue;
1134
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301135 cal_info = (struct audio_cal_info_adm_top *)
1136 cal_block->cal_info;
1137 if ((cal_info->path == path) &&
1138 (cal_info->app_type == app_type) &&
1139 (cal_info->acdb_id == acdb_id)) {
1140 return cal_block;
1141 }
1142 }
Haynes Mathew George4728d6b2018-06-08 17:26:24 -07001143 pr_debug("%s: Can't find topology for path %d, app %d, "
1144 "acdb_id %d %s\n", __func__, path, app_type, acdb_id,
1145 exact ? "fail" : "defaulting to search by path");
1146 return exact ? NULL : msm_routing_find_topology_by_path(path,
1147 cal_index);
1148}
1149
1150static int msm_routing_find_topology_on_index(int session_type, int app_type,
1151 int acdb_dev_id, int idx,
1152 bool exact)
1153{
1154 int topology = -EINVAL;
1155 struct cal_block_data *cal_block = NULL;
1156
1157 mutex_lock(&cal_data[idx]->lock);
1158 cal_block = msm_routing_find_topology(session_type, app_type,
1159 acdb_dev_id, idx, exact);
1160 if (cal_block != NULL) {
1161 topology = ((struct audio_cal_info_adm_top *)
1162 cal_block->cal_info)->topology;
1163 }
1164 mutex_unlock(&cal_data[idx]->lock);
1165 return topology;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301166}
1167
Vikram Panduranga770b8382017-09-27 12:17:36 -07001168/*
1169 * Retrieving cal_block will mark cal_block as stale.
1170 * Hence it cannot be reused or resent unless the flag
1171 * is reset.
1172 */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301173static int msm_routing_get_adm_topology(int fedai_id, int session_type,
1174 int be_id)
1175{
1176 int topology = NULL_COPP_TOPOLOGY;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301177 int app_type = 0, acdb_dev_id = 0;
1178
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301179 pr_debug("%s: fedai_id %d, session_type %d, be_id %d\n",
1180 __func__, fedai_id, session_type, be_id);
1181
1182 if (cal_data == NULL)
1183 goto done;
1184
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301185 app_type = fe_dai_app_type_cfg[fedai_id][session_type][be_id].app_type;
1186 acdb_dev_id =
1187 fe_dai_app_type_cfg[fedai_id][session_type][be_id].acdb_dev_id;
1188
Haynes Mathew George4728d6b2018-06-08 17:26:24 -07001189 pr_debug("%s: Check for exact LSM topology\n", __func__);
1190 topology = msm_routing_find_topology_on_index(session_type,
1191 app_type,
1192 acdb_dev_id,
1193 ADM_LSM_TOPOLOGY_CAL_TYPE_IDX,
1194 true /*exact*/);
1195 if (topology < 0) {
1196 pr_debug("%s: Check for compatible topology\n", __func__);
1197 topology = msm_routing_find_topology_on_index(session_type,
1198 app_type,
1199 acdb_dev_id,
1200 ADM_TOPOLOGY_CAL_TYPE_IDX,
1201 false /*exact*/);
1202 if (topology < 0)
1203 topology = NULL_COPP_TOPOLOGY;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301204 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301205done:
1206 pr_debug("%s: Using topology %d\n", __func__, topology);
1207 return topology;
1208}
1209
1210static uint8_t is_be_dai_extproc(int be_dai)
1211{
1212 if (be_dai == MSM_BACKEND_DAI_EXTPROC_RX ||
1213 be_dai == MSM_BACKEND_DAI_EXTPROC_TX ||
1214 be_dai == MSM_BACKEND_DAI_EXTPROC_EC_TX)
1215 return 1;
1216 else
1217 return 0;
1218}
1219
1220static void msm_pcm_routing_build_matrix(int fedai_id, int sess_type,
1221 int path_type, int perf_mode,
1222 uint32_t passthr_mode)
1223{
1224 int i, port_type, j, num_copps = 0;
1225 struct route_payload payload;
1226
1227 port_type = ((path_type == ADM_PATH_PLAYBACK ||
1228 path_type == ADM_PATH_COMPRESSED_RX) ?
1229 MSM_AFE_PORT_TYPE_RX : MSM_AFE_PORT_TYPE_TX);
1230
1231 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1232 if (!is_be_dai_extproc(i) &&
1233 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1234 (msm_bedais[i].active) &&
1235 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
Surendar Karkae7507512018-07-20 15:46:54 +05301236 int port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301237 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1238 unsigned long copp =
1239 session_copp_map[fedai_id][sess_type][i];
1240 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301241 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301242 payload.copp_idx[num_copps] = j;
1243 payload.app_type[num_copps] =
1244 fe_dai_app_type_cfg
1245 [fedai_id][sess_type][i]
1246 .app_type;
1247 payload.acdb_dev_id[num_copps] =
1248 fe_dai_app_type_cfg
1249 [fedai_id][sess_type][i]
1250 .acdb_dev_id;
1251 payload.sample_rate[num_copps] =
1252 fe_dai_app_type_cfg
1253 [fedai_id][sess_type][i]
1254 .sample_rate;
1255 num_copps++;
1256 }
1257 }
1258 }
1259 }
1260
1261 if (num_copps) {
1262 payload.num_copps = num_copps;
1263 payload.session_id = fe_dai_map[fedai_id][sess_type].strm_id;
1264 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1265 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1266 }
1267}
1268
1269void msm_pcm_routing_reg_psthr_stream(int fedai_id, int dspst_id,
1270 int stream_type)
1271{
1272 int i, session_type, path_type, port_type;
1273 u32 mode = 0;
1274
1275 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1276 /* bad ID assigned in machine driver */
1277 pr_err("%s: bad MM ID\n", __func__);
1278 return;
1279 }
1280
1281 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1282 session_type = SESSION_TYPE_RX;
1283 path_type = ADM_PATH_PLAYBACK;
1284 port_type = MSM_AFE_PORT_TYPE_RX;
1285 } else {
1286 session_type = SESSION_TYPE_TX;
1287 path_type = ADM_PATH_LIVE_REC;
1288 port_type = MSM_AFE_PORT_TYPE_TX;
1289 }
1290
1291 mutex_lock(&routing_lock);
1292
1293 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1294 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1295 if (!is_be_dai_extproc(i) &&
1296 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1297 (msm_bedais[i].active) &&
1298 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1299 mode = afe_get_port_type(msm_bedais[i].port_id);
1300 adm_connect_afe_port(mode, dspst_id,
1301 msm_bedais[i].port_id);
1302 break;
1303 }
1304 }
1305 mutex_unlock(&routing_lock);
1306}
1307
1308static bool route_check_fe_id_adm_support(int fe_id)
1309{
1310 bool rc = true;
1311
1312 if ((fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1313 (fe_id <= MSM_FRONTEND_DAI_LSM8)) {
1314 /* fe id is listen while port is set to afe */
1315 if (lsm_port_index != ADM_LSM_PORT_INDEX) {
1316 pr_debug("%s: fe_id %d, lsm mux slim port %d\n",
1317 __func__, fe_id, lsm_port_index);
1318 rc = false;
1319 }
1320 }
1321
1322 return rc;
1323}
1324
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001325/*
1326 * msm_pcm_routing_get_pp_ch_cnt:
1327 * Read the processed channel count
1328 *
1329 * @fe_id: Front end ID
1330 * @session_type: Inidicates RX or TX session type
1331 */
1332int msm_pcm_routing_get_pp_ch_cnt(int fe_id, int session_type)
1333{
1334 struct msm_pcm_stream_app_type_cfg cfg_data;
1335 int be_id = 0, app_type_idx = 0, app_type = 0;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +05301336 int ret = -EINVAL;
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001337
1338 memset(&cfg_data, 0, sizeof(cfg_data));
1339
1340 if (!is_mm_lsm_fe_id(fe_id)) {
1341 pr_err("%s: bad MM ID\n", __func__);
1342 return -EINVAL;
1343 }
1344
1345 ret = msm_pcm_routing_get_stream_app_type_cfg(fe_id, session_type,
1346 &be_id, &cfg_data);
1347 if (ret) {
Mangesh Kunchamwardaf02b02018-06-28 19:42:24 +05301348 pr_err("%s: cannot get stream app type cfg\n", __func__);
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001349 return ret;
1350 }
1351
1352 app_type = cfg_data.app_type;
1353 app_type_idx = msm_pcm_routing_get_lsm_app_type_idx(app_type);
1354 return lsm_app_type_cfg[app_type_idx].num_out_channels;
1355}
1356EXPORT_SYMBOL(msm_pcm_routing_get_pp_ch_cnt);
1357
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301358int msm_pcm_routing_reg_phy_compr_stream(int fe_id, int perf_mode,
1359 int dspst_id, int stream_type,
1360 uint32_t passthr_mode)
1361{
1362 int i, j, session_type, path_type, port_type, topology;
1363 int num_copps = 0;
1364 struct route_payload payload;
1365 u32 channels, sample_rate;
1366 u16 bit_width = 16;
1367 bool is_lsm;
1368
1369 pr_debug("%s:fe_id[%d] perf_mode[%d] id[%d] stream_type[%d] passt[%d]",
1370 __func__, fe_id, perf_mode, dspst_id,
1371 stream_type, passthr_mode);
1372 if (!is_mm_lsm_fe_id(fe_id)) {
1373 /* bad ID assigned in machine driver */
1374 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
1375 return -EINVAL;
1376 }
1377
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301378 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1379 session_type = SESSION_TYPE_RX;
1380 if (passthr_mode != LEGACY_PCM)
1381 path_type = ADM_PATH_COMPRESSED_RX;
1382 else
1383 path_type = ADM_PATH_PLAYBACK;
1384 port_type = MSM_AFE_PORT_TYPE_RX;
1385 } else if (stream_type == SNDRV_PCM_STREAM_CAPTURE) {
1386 session_type = SESSION_TYPE_TX;
Laxminath Kasam38070be2017-08-17 18:21:59 +05301387 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301388 path_type = ADM_PATH_COMPRESSED_TX;
1389 else
1390 path_type = ADM_PATH_LIVE_REC;
1391 port_type = MSM_AFE_PORT_TYPE_TX;
1392 } else {
1393 pr_err("%s: invalid stream type %d\n", __func__, stream_type);
1394 return -EINVAL;
1395 }
1396
1397 is_lsm = (fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1398 (fe_id <= MSM_FRONTEND_DAI_LSM8);
1399 mutex_lock(&routing_lock);
1400
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301401 fe_dai_map[fe_id][session_type].strm_id = dspst_id;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301402 fe_dai_map[fe_id][session_type].perf_mode = perf_mode;
1403 fe_dai_map[fe_id][session_type].passthr_mode = passthr_mode;
1404 if (!route_check_fe_id_adm_support(fe_id)) {
1405 /* ignore adm open if not supported for fe_id */
1406 pr_debug("%s: No ADM support for fe id %d\n", __func__, fe_id);
1407 mutex_unlock(&routing_lock);
1408 return 0;
1409 }
1410
1411 payload.num_copps = 0; /* only RX needs to use payload */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301412 /* re-enable EQ if active */
1413 msm_qti_pp_send_eq_values(fe_id);
1414 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301415 if (!is_be_dai_extproc(i) &&
1416 (afe_get_port_type(msm_bedais[i].port_id) ==
1417 port_type) &&
1418 (msm_bedais[i].active) &&
1419 (test_bit(fe_id, &msm_bedais[i].fe_sessions[0]))) {
1420 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301421 int port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301422
1423 /*
1424 * check if ADM needs to be configured with different
1425 * channel mapping than backend
1426 */
1427 if (!msm_bedais[i].adm_override_ch)
1428 channels = msm_bedais[i].channel;
1429 else
1430 channels = msm_bedais[i].adm_override_ch;
1431
1432 bit_width = msm_routing_get_bit_width(
1433 msm_bedais[i].format);
1434 app_type =
1435 fe_dai_app_type_cfg[fe_id][session_type][i].app_type;
1436 if (app_type && is_lsm) {
1437 app_type_idx =
1438 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1439 sample_rate =
1440 fe_dai_app_type_cfg[fe_id][session_type][i]
1441 .sample_rate;
1442 bit_width =
1443 lsm_app_type_cfg[app_type_idx].bit_width;
1444 } else if (app_type) {
1445 app_type_idx =
1446 msm_pcm_routing_get_app_type_idx(
1447 app_type);
1448 sample_rate =
1449 fe_dai_app_type_cfg[fe_id][session_type][i].sample_rate;
1450 bit_width =
1451 app_type_cfg[app_type_idx].bit_width;
1452 } else {
1453 sample_rate = msm_bedais[i].sample_rate;
1454 }
1455 acdb_dev_id =
1456 fe_dai_app_type_cfg[fe_id][session_type][i].acdb_dev_id;
1457 topology = msm_routing_get_adm_topology(fe_id,
1458 session_type,
1459 i);
1460 if ((passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
1461 || (passthr_mode ==
Ralf Herzc8701f72018-06-20 11:37:35 +02001462 COMPRESSED_PASSTHROUGH_GEN)
1463 || (passthr_mode ==
1464 COMPRESSED_PASSTHROUGH_IEC61937))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301465 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
1466 pr_debug("%s: Before adm open topology %d\n", __func__,
1467 topology);
1468
1469 copp_idx =
Surendar Karkae7507512018-07-20 15:46:54 +05301470 adm_open(port_id, path_type, sample_rate,
1471 channels, topology, perf_mode,
1472 bit_width, app_type, acdb_dev_id,
1473 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301474 if ((copp_idx < 0) ||
1475 (copp_idx >= MAX_COPPS_PER_PORT)) {
1476 pr_err("%s:adm open failed coppid:%d\n",
1477 __func__, copp_idx);
1478 mutex_unlock(&routing_lock);
1479 return -EINVAL;
1480 }
1481 pr_debug("%s: set idx bit of fe:%d, type: %d, be:%d\n",
1482 __func__, fe_id, session_type, i);
1483 set_bit(copp_idx,
1484 &session_copp_map[fe_id][session_type][i]);
1485
1486 if (msm_is_resample_needed(
1487 sample_rate,
1488 msm_bedais[i].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05301489 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301490 msm_bedais[i].sample_rate);
1491
1492 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1493 unsigned long copp =
1494 session_copp_map[fe_id][session_type][i];
1495 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301496 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301497 payload.copp_idx[num_copps] = j;
1498 payload.app_type[num_copps] =
1499 fe_dai_app_type_cfg
1500 [fe_id][session_type][i]
1501 .app_type;
1502 payload.acdb_dev_id[num_copps] =
1503 fe_dai_app_type_cfg
1504 [fe_id][session_type][i]
1505 .acdb_dev_id;
1506 payload.sample_rate[num_copps] =
1507 fe_dai_app_type_cfg
1508 [fe_id][session_type][i]
1509 .sample_rate;
1510 num_copps++;
1511 }
1512 }
1513 if (passthr_mode != COMPRESSED_PASSTHROUGH_DSD
Ralf Herzc8701f72018-06-20 11:37:35 +02001514 && passthr_mode != COMPRESSED_PASSTHROUGH_GEN
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301515 && passthr_mode != COMPRESSED_PASSTHROUGH_IEC61937)
Surendar Karkae7507512018-07-20 15:46:54 +05301516 msm_routing_send_device_pp_params(port_id,
1517 copp_idx, fe_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301518 }
1519 }
1520 if (num_copps) {
1521 payload.num_copps = num_copps;
1522 payload.session_id = fe_dai_map[fe_id][session_type].strm_id;
1523 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1524 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1525 }
1526 mutex_unlock(&routing_lock);
1527 return 0;
1528}
1529
1530static u32 msm_pcm_routing_get_voc_sessionid(u16 val)
1531{
1532 u32 session_id;
1533
1534 switch (val) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301535 case MSM_FRONTEND_DAI_QCHAT:
1536 session_id = voc_get_session_id(QCHAT_SESSION_NAME);
1537 break;
1538 case MSM_FRONTEND_DAI_VOIP:
1539 session_id = voc_get_session_id(VOIP_SESSION_NAME);
1540 break;
1541 case MSM_FRONTEND_DAI_VOICEMMODE1:
1542 session_id = voc_get_session_id(VOICEMMODE1_NAME);
1543 break;
1544 case MSM_FRONTEND_DAI_VOICEMMODE2:
1545 session_id = voc_get_session_id(VOICEMMODE2_NAME);
1546 break;
1547 default:
1548 session_id = 0;
1549 }
1550
1551 pr_debug("%s session_id 0x%x", __func__, session_id);
1552 return session_id;
1553}
1554
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301555static int msm_pcm_routing_channel_mixer_v2(int fe_id, bool perf_mode,
1556 int dspst_id, int stream_type)
1557{
1558 int copp_idx = 0;
1559 int sess_type = 0;
1560 int j = 0, be_id = 0;
1561 int ret = 0;
1562
1563 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1564 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1565 return 0;
1566 }
1567
1568 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1569 sess_type = SESSION_TYPE_RX;
1570 else
1571 sess_type = SESSION_TYPE_TX;
1572
1573 if (!(channel_mixer_v2[fe_id][sess_type].enable)) {
1574 pr_debug("%s: channel mixer not enabled for FE %d direction %d\n",
1575 __func__, fe_id, sess_type);
1576 return 0;
1577 }
1578
1579 be_id = channel_mixer_v2[fe_id][sess_type].port_idx - 1;
1580 channel_mixer_v2[fe_id][sess_type].input_channels[0] =
1581 channel_mixer_v2[fe_id][sess_type].input_channel;
1582
1583 pr_debug("%s sess type %d,fe_id %d,override in:%d out:%d,be active %d\n",
1584 __func__, sess_type, fe_id,
1585 channel_mixer_v2[fe_id][sess_type].override_in_ch_map,
1586 channel_mixer_v2[fe_id][sess_type].override_out_ch_map,
1587 msm_bedais[be_id].active);
1588
1589 if ((msm_bedais[be_id].active) &&
1590 test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0])) {
1591 unsigned long copp =
1592 session_copp_map[fe_id][sess_type][be_id];
1593 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1594 if (test_bit(j, &copp)) {
1595 copp_idx = j;
1596 break;
1597 }
1598 }
1599
1600 ret = adm_programable_channel_mixer(
1601 msm_bedais[be_id].port_id,
1602 copp_idx, dspst_id, sess_type,
1603 &channel_mixer_v2[fe_id][sess_type], 0);
1604 }
1605
1606 return ret;
1607}
1608
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301609static int msm_pcm_routing_channel_mixer(int fe_id, bool perf_mode,
1610 int dspst_id, int stream_type)
1611{
1612 int copp_idx = 0;
1613 int sess_type = 0;
1614 int i = 0, j = 0, be_id;
1615 int ret = 0;
1616
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301617 ret = msm_pcm_routing_channel_mixer_v2(fe_id, perf_mode,
1618 dspst_id, stream_type);
1619 if (ret) {
1620 pr_err("%s channel mixer v2 cmd set failure%d\n", __func__,
1621 fe_id);
1622 return ret;
1623 }
1624
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301625 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1626 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1627 return 0;
1628 }
1629
1630 if (!(channel_mixer[fe_id].enable)) {
1631 pr_debug("%s: channel mixer not enabled for FE %d\n",
1632 __func__, fe_id);
1633 return 0;
1634 }
1635
1636 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1637 sess_type = SESSION_TYPE_RX;
1638 else
1639 sess_type = SESSION_TYPE_TX;
1640
1641 for (i = 0; i < ADM_MAX_CHANNELS && channel_input[fe_id][i] > 0;
1642 ++i) {
1643 be_id = channel_input[fe_id][i] - 1;
1644 channel_mixer[fe_id].input_channels[i] =
1645 msm_bedais[be_id].channel;
1646
1647 if ((msm_bedais[be_id].active) &&
1648 test_bit(fe_id,
1649 &msm_bedais[be_id].fe_sessions[0])) {
1650 unsigned long copp =
1651 session_copp_map[fe_id][sess_type][be_id];
1652 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1653 if (test_bit(j, &copp)) {
1654 copp_idx = j;
1655 break;
1656 }
1657 }
1658
1659 pr_debug("%s: fe %d, be %d, channel %d, copp %d\n",
1660 __func__,
1661 fe_id, be_id, msm_bedais[be_id].channel,
1662 copp_idx);
1663 ret = adm_programable_channel_mixer(
Meng Wangf016d302019-01-21 10:35:53 +08001664 get_port_id(msm_bedais[be_id].port_id),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301665 copp_idx, dspst_id, sess_type,
1666 channel_mixer + fe_id, i);
1667 }
1668 }
1669
1670 return ret;
1671}
1672
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301673/**
1674 * msm_pcm_routing_set_channel_mixer_runtime - apply channel mixer
1675 * setting during runtime.
1676 *
1677 * @be_id: backend index
1678 * @session_id: session index
1679 * @session_type: session type
1680 * @params: parameters for channel mixer
1681 *
1682 * Retuen: 0 for success, else error
1683 */
1684int msm_pcm_routing_set_channel_mixer_runtime(int be_id, int session_id,
1685 int session_type,
1686 struct msm_pcm_channel_mixer *params)
1687{
1688 int rc = 0;
1689 int port_id, copp_idx = 0;
1690
1691 be_id--;
1692 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1693 pr_err("%s: invalid backend id %d\n", __func__,
1694 be_id);
1695 return -EINVAL;
1696 }
1697
1698 port_id = msm_bedais[be_id].port_id;
1699 copp_idx = adm_get_default_copp_idx(port_id);
1700 pr_debug("%s: port_id - %d, copp_idx %d session id - %d\n",
1701 __func__, port_id, copp_idx, session_id);
1702
1703 if ((params->input_channel < 0) ||
1704 (params->input_channel > ADM_MAX_CHANNELS)) {
1705 pr_err("%s: invalid input channel %d\n", __func__,
1706 params->input_channel);
1707 return -EINVAL;
1708 }
1709
1710 if ((params->output_channel < 0) ||
1711 (params->output_channel > ADM_MAX_CHANNELS)) {
1712 pr_err("%s: invalid output channel %d\n", __func__,
1713 params->output_channel);
1714 return -EINVAL;
1715 }
1716
1717 params->input_channels[0] = params->input_channel;
1718
1719 pr_debug("%s sess type %d,override in:%d out:%d,be active %d\n",
1720 __func__, session_type,
1721 params->override_in_ch_map,
1722 params->override_out_ch_map,
1723 msm_bedais[be_id].active);
1724
1725 rc = adm_programable_channel_mixer(port_id,
1726 copp_idx,
1727 session_id,
1728 session_type,
1729 params,
1730 0);
1731 if (rc) {
1732 pr_err("%s: send params failed rc=%d\n", __func__, rc);
1733 rc = -EINVAL;
1734 }
1735 return rc;
1736}
1737EXPORT_SYMBOL(msm_pcm_routing_set_channel_mixer_runtime);
1738
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301739int msm_pcm_routing_reg_phy_stream(int fedai_id, int perf_mode,
1740 int dspst_id, int stream_type)
1741{
1742 int i, j, session_type, path_type, port_type, topology, num_copps = 0;
1743 struct route_payload payload;
1744 u32 channels, sample_rate;
1745 uint16_t bits_per_sample = 16;
1746 uint32_t passthr_mode = LEGACY_PCM;
1747 int ret = 0;
1748
1749 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1750 /* bad ID assigned in machine driver */
1751 pr_err("%s: bad MM ID %d\n", __func__, fedai_id);
1752 return -EINVAL;
1753 }
1754
1755 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1756 session_type = SESSION_TYPE_RX;
1757 path_type = ADM_PATH_PLAYBACK;
1758 port_type = MSM_AFE_PORT_TYPE_RX;
1759 } else {
1760 session_type = SESSION_TYPE_TX;
1761 path_type = ADM_PATH_LIVE_REC;
1762 port_type = MSM_AFE_PORT_TYPE_TX;
1763 }
1764
1765 mutex_lock(&routing_lock);
1766
1767 payload.num_copps = 0; /* only RX needs to use payload */
1768 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1769 fe_dai_map[fedai_id][session_type].perf_mode = perf_mode;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301770 fe_dai_map[fedai_id][session_type].passthr_mode = LEGACY_PCM;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301771
1772 /* re-enable EQ if active */
1773 msm_qti_pp_send_eq_values(fedai_id);
1774 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1775 if (!is_be_dai_extproc(i) &&
1776 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1777 (msm_bedais[i].active) &&
1778 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1779 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301780 int port_id = get_port_id(msm_bedais[i].port_id);
1781
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301782 /*
1783 * check if ADM needs to be configured with different
1784 * channel mapping than backend
1785 */
1786 if (!msm_bedais[i].adm_override_ch)
1787 channels = msm_bedais[i].channel;
1788 else
1789 channels = msm_bedais[i].adm_override_ch;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301790
1791 bits_per_sample = msm_routing_get_bit_width(
1792 msm_bedais[i].format);
1793
1794 app_type =
1795 fe_dai_app_type_cfg[fedai_id][session_type][i].app_type;
1796 if (app_type) {
1797 app_type_idx =
1798 msm_pcm_routing_get_app_type_idx(app_type);
1799 sample_rate =
1800 fe_dai_app_type_cfg[fedai_id][session_type][i]
1801 .sample_rate;
1802 bits_per_sample =
1803 app_type_cfg[app_type_idx].bit_width;
1804 } else
1805 sample_rate = msm_bedais[i].sample_rate;
1806
1807 acdb_dev_id =
1808 fe_dai_app_type_cfg[fedai_id][session_type][i]
1809 .acdb_dev_id;
1810 topology = msm_routing_get_adm_topology(fedai_id,
1811 session_type,
1812 i);
Surendar Karkae7507512018-07-20 15:46:54 +05301813 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301814 sample_rate, channels, topology,
1815 perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +05301816 app_type, acdb_dev_id,
1817 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301818 if ((copp_idx < 0) ||
1819 (copp_idx >= MAX_COPPS_PER_PORT)) {
1820 pr_err("%s: adm open failed copp_idx:%d\n",
Vikram Panduranga770b8382017-09-27 12:17:36 -07001821 __func__, copp_idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301822 mutex_unlock(&routing_lock);
1823 return -EINVAL;
1824 }
1825 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1826 __func__, fedai_id, session_type, i);
1827 set_bit(copp_idx,
1828 &session_copp_map[fedai_id][session_type][i]);
1829
1830 if (msm_is_resample_needed(
1831 sample_rate,
1832 msm_bedais[i].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05301833 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301834 msm_bedais[i].sample_rate);
1835
1836 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1837 unsigned long copp =
1838 session_copp_map[fedai_id][session_type][i];
1839 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301840 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301841 payload.copp_idx[num_copps] = j;
1842 payload.app_type[num_copps] =
1843 fe_dai_app_type_cfg
1844 [fedai_id][session_type]
1845 [i].app_type;
1846 payload.acdb_dev_id[num_copps] =
1847 fe_dai_app_type_cfg
1848 [fedai_id][session_type]
1849 [i].acdb_dev_id;
1850 payload.sample_rate[num_copps] =
1851 fe_dai_app_type_cfg
1852 [fedai_id][session_type]
1853 [i].sample_rate;
1854 num_copps++;
1855 }
1856 }
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301857 if (perf_mode == LEGACY_PCM_MODE)
Surendar Karkae7507512018-07-20 15:46:54 +05301858 msm_pcm_routing_cfg_pp(port_id, copp_idx,
1859 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301860 }
1861 }
1862 if (num_copps) {
1863 payload.num_copps = num_copps;
1864 payload.session_id = fe_dai_map[fedai_id][session_type].strm_id;
1865 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1866 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1867 }
1868
1869 ret = msm_pcm_routing_channel_mixer(fedai_id, perf_mode,
1870 dspst_id, stream_type);
1871 mutex_unlock(&routing_lock);
1872 return ret;
1873}
1874
1875int msm_pcm_routing_reg_phy_stream_v2(int fedai_id, int perf_mode,
1876 int dspst_id, int stream_type,
1877 struct msm_pcm_routing_evt event_info)
1878{
1879 if (msm_pcm_routing_reg_phy_stream(fedai_id, perf_mode, dspst_id,
1880 stream_type)) {
1881 pr_err("%s: failed to reg phy stream\n", __func__);
1882 return -EINVAL;
1883 }
1884
1885 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1886 fe_dai_map[fedai_id][SESSION_TYPE_RX].event_info = event_info;
1887 else
1888 fe_dai_map[fedai_id][SESSION_TYPE_TX].event_info = event_info;
1889 return 0;
1890}
1891
1892void msm_pcm_routing_dereg_phy_stream(int fedai_id, int stream_type)
1893{
Surendar Karkae7507512018-07-20 15:46:54 +05301894 int i, port_type, session_type, path_type, topology, port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301895 struct msm_pcm_routing_fdai_data *fdai;
1896
1897 if (!is_mm_lsm_fe_id(fedai_id)) {
1898 /* bad ID assigned in machine driver */
1899 pr_err("%s: bad MM ID\n", __func__);
1900 return;
1901 }
1902
1903 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1904 port_type = MSM_AFE_PORT_TYPE_RX;
1905 session_type = SESSION_TYPE_RX;
1906 path_type = ADM_PATH_PLAYBACK;
1907 } else {
1908 port_type = MSM_AFE_PORT_TYPE_TX;
1909 session_type = SESSION_TYPE_TX;
1910 path_type = ADM_PATH_LIVE_REC;
1911 }
1912
1913 mutex_lock(&routing_lock);
1914 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1915 if (!is_be_dai_extproc(i) &&
1916 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1917 (msm_bedais[i].active) &&
1918 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1919 int idx;
1920 unsigned long copp =
1921 session_copp_map[fedai_id][session_type][i];
1922 fdai = &fe_dai_map[fedai_id][session_type];
1923
1924 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1925 if (test_bit(idx, &copp))
1926 break;
1927
1928 if (idx >= MAX_COPPS_PER_PORT || idx < 0) {
1929 pr_debug("%s: copp idx is invalid, exiting\n",
1930 __func__);
1931 continue;
1932 }
Surendar Karkae7507512018-07-20 15:46:54 +05301933 port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301934 topology = adm_get_topology_for_port_copp_idx(
Surendar Karkae7507512018-07-20 15:46:54 +05301935 port_id, idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07001936 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +05301937 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301938 pr_debug("%s:copp:%ld,idx bit fe:%d,type:%d,be:%d\n",
1939 __func__, copp, fedai_id, session_type, i);
1940 clear_bit(idx,
1941 &session_copp_map[fedai_id][session_type][i]);
1942 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1943 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1944 (fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301945 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05301946 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301947 }
1948 }
1949
1950 fe_dai_map[fedai_id][session_type].strm_id = INVALID_SESSION;
1951 fe_dai_map[fedai_id][session_type].be_srate = 0;
1952 mutex_unlock(&routing_lock);
1953}
1954
1955/* Check if FE/BE route is set */
1956static bool msm_pcm_routing_route_is_set(u16 be_id, u16 fe_id)
1957{
1958 bool rc = false;
1959
1960 if (!is_mm_lsm_fe_id(fe_id)) {
1961 /* recheck FE ID in the mixer control defined in this file */
1962 pr_err("%s: bad MM ID\n", __func__);
1963 return rc;
1964 }
1965
1966 if (test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0]))
1967 rc = true;
1968
1969 return rc;
1970}
1971
1972static void msm_pcm_routing_process_audio(u16 reg, u16 val, int set)
1973{
1974 int session_type, path_type, topology;
1975 u32 channels, sample_rate;
1976 uint16_t bits_per_sample = 16;
1977 struct msm_pcm_routing_fdai_data *fdai;
1978 uint32_t passthr_mode;
1979 bool is_lsm;
1980
1981 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
1982
1983 if (!is_mm_lsm_fe_id(val)) {
1984 /* recheck FE ID in the mixer control defined in this file */
1985 pr_err("%s: bad MM ID\n", __func__);
1986 return;
1987 }
1988
1989 if (!route_check_fe_id_adm_support(val)) {
1990 /* ignore adm open if not supported for fe_id */
1991 pr_debug("%s: No ADM support for fe id %d\n", __func__, val);
1992 return;
1993 }
1994
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301995 session_type =
1996 (afe_get_port_type(msm_bedais[reg].port_id) == MSM_AFE_PORT_TYPE_RX) ?
1997 SESSION_TYPE_RX : SESSION_TYPE_TX;
1998 fdai = &fe_dai_map[val][session_type];
1999 passthr_mode = fdai->passthr_mode;
2000 if (session_type == SESSION_TYPE_RX) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302001 if (passthr_mode != LEGACY_PCM)
2002 path_type = ADM_PATH_COMPRESSED_RX;
2003 else
2004 path_type = ADM_PATH_PLAYBACK;
2005 } else {
Ralf Herzc8701f72018-06-20 11:37:35 +02002006 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302007 path_type = ADM_PATH_COMPRESSED_TX;
2008 else
2009 path_type = ADM_PATH_LIVE_REC;
2010 }
2011 is_lsm = (val >= MSM_FRONTEND_DAI_LSM1) &&
2012 (val <= MSM_FRONTEND_DAI_LSM8);
2013
2014 mutex_lock(&routing_lock);
2015 if (set) {
2016 if (!test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
2017 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
2018 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
2019 voc_start_playback(set, msm_bedais[reg].port_id);
2020
2021 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302022 if (msm_bedais[reg].active && fdai->strm_id !=
2023 INVALID_SESSION) {
2024 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05302025 int port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302026 /*
2027 * check if ADM needs to be configured with different
2028 * channel mapping than backend
2029 */
2030 if (!msm_bedais[reg].adm_override_ch)
2031 channels = msm_bedais[reg].channel;
2032 else
2033 channels = msm_bedais[reg].adm_override_ch;
2034 if (session_type == SESSION_TYPE_TX &&
2035 fdai->be_srate &&
2036 (fdai->be_srate != msm_bedais[reg].sample_rate)) {
2037 pr_debug("%s: flush strm %d diff BE rates\n",
2038 __func__, fdai->strm_id);
2039
2040 if (fdai->event_info.event_func)
2041 fdai->event_info.event_func(
2042 MSM_PCM_RT_EVT_BUF_RECFG,
2043 fdai->event_info.priv_data);
2044 fdai->be_srate = 0; /* might not need it */
2045 }
2046
2047 bits_per_sample = msm_routing_get_bit_width(
2048 msm_bedais[reg].format);
2049
2050 app_type =
2051 fe_dai_app_type_cfg[val][session_type][reg].app_type;
2052 if (app_type && is_lsm) {
2053 app_type_idx =
2054 msm_pcm_routing_get_lsm_app_type_idx(app_type);
2055 sample_rate =
2056 fe_dai_app_type_cfg[val][session_type][reg]
2057 .sample_rate;
2058 bits_per_sample =
2059 lsm_app_type_cfg[app_type_idx].bit_width;
2060 } else if (app_type) {
2061 app_type_idx =
2062 msm_pcm_routing_get_app_type_idx(app_type);
2063 sample_rate =
2064 fe_dai_app_type_cfg[val][session_type][reg]
2065 .sample_rate;
2066 bits_per_sample =
2067 app_type_cfg[app_type_idx].bit_width;
2068 } else
2069 sample_rate = msm_bedais[reg].sample_rate;
2070
2071 topology = msm_routing_get_adm_topology(val,
2072 session_type,
2073 reg);
2074 acdb_dev_id =
2075 fe_dai_app_type_cfg[val][session_type][reg].acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05302076 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302077 sample_rate, channels, topology,
2078 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +05302079 app_type, acdb_dev_id,
2080 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302081 if ((copp_idx < 0) ||
2082 (copp_idx >= MAX_COPPS_PER_PORT)) {
2083 pr_err("%s: adm open failed\n", __func__);
2084 mutex_unlock(&routing_lock);
2085 return;
2086 }
2087 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
2088 __func__, val, session_type, reg);
2089 set_bit(copp_idx,
2090 &session_copp_map[val][session_type][reg]);
2091
2092 if (msm_is_resample_needed(
2093 sample_rate,
2094 msm_bedais[reg].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05302095 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302096 msm_bedais[reg].sample_rate);
2097
2098 if (session_type == SESSION_TYPE_RX &&
2099 fdai->event_info.event_func)
2100 fdai->event_info.event_func(
2101 MSM_PCM_RT_EVT_DEVSWITCH,
2102 fdai->event_info.priv_data);
2103
2104 msm_pcm_routing_build_matrix(val, session_type,
2105 path_type,
2106 fdai->perf_mode,
2107 passthr_mode);
2108 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
2109 (passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05302110 msm_pcm_routing_cfg_pp(port_id, copp_idx,
2111 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302112 }
2113 } else {
2114 if (test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
2115 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
2116 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
2117 voc_start_playback(set, msm_bedais[reg].port_id);
2118 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302119 if (msm_bedais[reg].active && fdai->strm_id !=
2120 INVALID_SESSION) {
2121 int idx;
2122 int port_id;
2123 unsigned long copp =
2124 session_copp_map[val][session_type][reg];
2125 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
2126 if (test_bit(idx, &copp))
2127 break;
2128
Vignesh Kulothungane59d3152018-10-10 14:19:59 -07002129 if (idx >= MAX_COPPS_PER_PORT) {
2130 pr_debug("%s: copp idx is invalid, exiting\n",
2131 __func__);
2132 mutex_unlock(&routing_lock);
2133 return;
2134 }
Surendar Karkae7507512018-07-20 15:46:54 +05302135 port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302136 topology = adm_get_topology_for_port_copp_idx(port_id,
2137 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07002138 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +05302139 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302140 pr_debug("%s: copp: %ld, reset idx bit fe:%d, type: %d, be:%d topology=0x%x\n",
2141 __func__, copp, val, session_type, reg,
2142 topology);
2143 clear_bit(idx,
2144 &session_copp_map[val][session_type][reg]);
2145 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
2146 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
2147 (fdai->perf_mode == LEGACY_PCM_MODE) &&
2148 (passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05302149 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302150 msm_pcm_routing_build_matrix(val, session_type,
2151 path_type,
2152 fdai->perf_mode,
2153 passthr_mode);
2154 }
2155 }
2156 if ((msm_bedais[reg].port_id == VOICE_RECORD_RX)
2157 || (msm_bedais[reg].port_id == VOICE_RECORD_TX))
2158 voc_start_record(msm_bedais[reg].port_id, set, voc_session_id);
2159
2160 mutex_unlock(&routing_lock);
2161}
2162
2163static int msm_routing_get_audio_mixer(struct snd_kcontrol *kcontrol,
2164 struct snd_ctl_elem_value *ucontrol)
2165{
2166 struct soc_mixer_control *mc =
2167 (struct soc_mixer_control *)kcontrol->private_value;
2168
Meng Wang05d5e9a2018-03-28 16:45:03 +08002169 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302170 ucontrol->value.integer.value[0] = 1;
2171 else
2172 ucontrol->value.integer.value[0] = 0;
2173
Meng Wang05d5e9a2018-03-28 16:45:03 +08002174 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302175 ucontrol->value.integer.value[0]);
2176
2177 return 0;
2178}
2179
2180static int msm_routing_put_audio_mixer(struct snd_kcontrol *kcontrol,
2181 struct snd_ctl_elem_value *ucontrol)
2182{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302183 struct snd_soc_dapm_widget *widget =
2184 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302185 struct soc_mixer_control *mc =
2186 (struct soc_mixer_control *)kcontrol->private_value;
2187 struct snd_soc_dapm_update *update = NULL;
2188
2189 if (ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08002190 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false) {
2191 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302192 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2193 update);
2194 } else if (!ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08002195 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true) {
2196 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302197 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2198 update);
2199 }
2200
2201 return 1;
2202}
2203
2204static int msm_routing_get_listen_mixer(struct snd_kcontrol *kcontrol,
2205 struct snd_ctl_elem_value *ucontrol)
2206{
2207 struct soc_mixer_control *mc =
2208 (struct soc_mixer_control *)kcontrol->private_value;
2209
Meng Wang05d5e9a2018-03-28 16:45:03 +08002210 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302211 ucontrol->value.integer.value[0] = 1;
2212 else
2213 ucontrol->value.integer.value[0] = 0;
2214
Meng Wang05d5e9a2018-03-28 16:45:03 +08002215 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302216 ucontrol->value.integer.value[0]);
2217
2218 return 0;
2219}
2220
2221static int msm_routing_put_listen_mixer(struct snd_kcontrol *kcontrol,
2222 struct snd_ctl_elem_value *ucontrol)
2223{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302224 struct snd_soc_dapm_widget *widget =
2225 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302226 struct soc_mixer_control *mc =
2227 (struct soc_mixer_control *)kcontrol->private_value;
2228 struct snd_soc_dapm_update *update = NULL;
2229
Meng Wang05d5e9a2018-03-28 16:45:03 +08002230 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302231 ucontrol->value.integer.value[0]);
2232
2233 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002234 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false)
2235 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302236 snd_soc_dapm_mixer_update_power(widget->dapm,
2237 kcontrol, 1, update);
2238 } else if (!ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002239 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true)
2240 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302241 snd_soc_dapm_mixer_update_power(widget->dapm,
2242 kcontrol, 0, update);
2243 }
2244
2245 return 1;
2246}
2247
2248static void msm_pcm_routing_process_voice(u16 reg, u16 val, int set)
2249{
2250 u32 session_id = 0;
2251 u16 path_type;
2252 struct media_format_info voc_be_media_format;
2253
2254 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
2255
2256 session_id = msm_pcm_routing_get_voc_sessionid(val);
2257
2258 pr_debug("%s: FE DAI 0x%x session_id 0x%x\n",
2259 __func__, val, session_id);
2260
2261 mutex_lock(&routing_lock);
2262
2263 if (set)
2264 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2265 else
2266 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
2267
2268 if (val == MSM_FRONTEND_DAI_DTMF_RX &&
2269 afe_get_port_type(msm_bedais[reg].port_id) ==
2270 MSM_AFE_PORT_TYPE_RX) {
2271 pr_debug("%s(): set=%d port id=0x%x for dtmf generation\n",
2272 __func__, set, msm_bedais[reg].port_id);
2273 afe_set_dtmf_gen_rx_portid(msm_bedais[reg].port_id, set);
2274 }
2275
2276 if (afe_get_port_type(msm_bedais[reg].port_id) ==
2277 MSM_AFE_PORT_TYPE_RX)
2278 path_type = RX_PATH;
2279 else
2280 path_type = TX_PATH;
2281
2282 if (set) {
2283 if (msm_bedais[reg].active) {
2284 voc_set_route_flag(session_id, path_type, 1);
2285
2286 memset(&voc_be_media_format, 0,
2287 sizeof(struct media_format_info));
2288
2289 voc_be_media_format.port_id = msm_bedais[reg].port_id;
2290 voc_be_media_format.num_channels =
2291 msm_bedais[reg].channel;
2292 voc_be_media_format.sample_rate =
2293 msm_bedais[reg].sample_rate;
2294 voc_be_media_format.bits_per_sample =
2295 msm_bedais[reg].format;
2296 /* Defaulting this to 1 for voice call usecases */
2297 voc_be_media_format.channel_mapping[0] = 1;
2298
2299 voc_set_device_config(session_id, path_type,
2300 &voc_be_media_format);
2301
2302 if (voc_get_route_flag(session_id, TX_PATH) &&
2303 voc_get_route_flag(session_id, RX_PATH))
2304 voc_enable_device(session_id);
2305 } else {
2306 pr_debug("%s BE is not active\n", __func__);
2307 }
2308 } else {
2309 voc_set_route_flag(session_id, path_type, 0);
2310 voc_disable_device(session_id);
2311 }
2312
2313 mutex_unlock(&routing_lock);
2314
2315}
2316
2317static int msm_routing_get_voice_mixer(struct snd_kcontrol *kcontrol,
2318 struct snd_ctl_elem_value *ucontrol)
2319{
2320 struct soc_mixer_control *mc =
2321 (struct soc_mixer_control *)kcontrol->private_value;
2322
2323 mutex_lock(&routing_lock);
2324
Meng Wang05d5e9a2018-03-28 16:45:03 +08002325 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302326 ucontrol->value.integer.value[0] = 1;
2327 else
2328 ucontrol->value.integer.value[0] = 0;
2329
2330 mutex_unlock(&routing_lock);
2331
Meng Wang05d5e9a2018-03-28 16:45:03 +08002332 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302333 ucontrol->value.integer.value[0]);
2334
2335 return 0;
2336}
2337
2338static int msm_routing_put_voice_mixer(struct snd_kcontrol *kcontrol,
2339 struct snd_ctl_elem_value *ucontrol)
2340{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302341 struct snd_soc_dapm_widget *widget =
2342 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302343 struct soc_mixer_control *mc =
2344 (struct soc_mixer_control *)kcontrol->private_value;
2345 struct snd_soc_dapm_update *update = NULL;
2346
2347 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002348 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302349 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2350 update);
2351 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002352 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302353 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2354 update);
2355 }
2356
2357 return 1;
2358}
2359
2360static int msm_routing_get_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2361 struct snd_ctl_elem_value *ucontrol)
2362{
2363 struct soc_mixer_control *mc =
2364 (struct soc_mixer_control *)kcontrol->private_value;
2365
2366 mutex_lock(&routing_lock);
2367
Meng Wang05d5e9a2018-03-28 16:45:03 +08002368 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302369 ucontrol->value.integer.value[0] = 1;
2370 else
2371 ucontrol->value.integer.value[0] = 0;
2372
2373 mutex_unlock(&routing_lock);
2374
Meng Wang05d5e9a2018-03-28 16:45:03 +08002375 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302376 ucontrol->value.integer.value[0]);
2377
2378 return 0;
2379}
2380
2381static int msm_routing_put_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2382 struct snd_ctl_elem_value *ucontrol)
2383{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302384 struct snd_soc_dapm_widget *widget =
2385 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302386 struct soc_mixer_control *mc =
2387 (struct soc_mixer_control *)kcontrol->private_value;
2388 struct snd_soc_dapm_update *update = NULL;
2389
2390 if (ucontrol->value.integer.value[0]) {
2391 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002392 set_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302393 mutex_unlock(&routing_lock);
2394
2395 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2396 update);
2397 } else {
2398 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002399 clear_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302400 mutex_unlock(&routing_lock);
2401
2402 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2403 update);
2404 }
2405
Meng Wang05d5e9a2018-03-28 16:45:03 +08002406 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302407 ucontrol->value.integer.value[0]);
2408
2409 return 1;
2410}
2411
2412/*
2413 * Return the mapping between port ID and backend ID to enable the AFE callback
2414 * to determine the acdb_dev_id from the port id
2415 */
2416int msm_pcm_get_be_id_from_port_id(int port_id)
2417{
2418 int i;
2419 int be_id = -EINVAL;
2420
2421 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
2422 if (msm_bedais[i].port_id == port_id) {
2423 be_id = i;
2424 break;
2425 }
2426 }
2427
2428 return be_id;
2429}
2430
2431/*
2432 * Return the registered dev_acdb_id given a port ID to enable identifying the
2433 * correct AFE calibration information by comparing the header information.
2434 */
2435static int msm_pcm_get_dev_acdb_id_by_port_id(int port_id)
2436{
2437 int acdb_id = -EINVAL;
2438 int i = 0;
2439 int session;
2440 int port_type = afe_get_port_type(port_id);
2441 int be_id = msm_pcm_get_be_id_from_port_id(port_id);
2442
2443 pr_debug("%s:port_id %d be_id %d, port_type 0x%x\n",
2444 __func__, port_id, be_id, port_type);
2445
2446 if (port_type == MSM_AFE_PORT_TYPE_TX) {
2447 session = SESSION_TYPE_TX;
2448 } else if (port_type == MSM_AFE_PORT_TYPE_RX) {
2449 session = SESSION_TYPE_RX;
2450 } else {
2451 pr_err("%s: Invalid port type %d\n", __func__, port_type);
2452 acdb_id = -EINVAL;
2453 goto exit;
2454 }
2455
2456 if (be_id < 0) {
2457 pr_err("%s: Error getting backend id %d\n", __func__, be_id);
2458 goto exit;
2459 }
2460
2461 mutex_lock(&routing_lock);
2462 i = find_first_bit(&msm_bedais[be_id].fe_sessions[0],
2463 MSM_FRONTEND_DAI_MAX);
2464 if (i < MSM_FRONTEND_DAI_MAX)
2465 acdb_id = fe_dai_app_type_cfg[i][session][be_id].acdb_dev_id;
2466
2467 pr_debug("%s: FE[%d] session[%d] BE[%d] acdb_id(%d)\n",
2468 __func__, i, session, be_id, acdb_id);
2469 mutex_unlock(&routing_lock);
2470exit:
2471 return acdb_id;
2472}
2473
2474static int msm_routing_get_switch_mixer(struct snd_kcontrol *kcontrol,
2475 struct snd_ctl_elem_value *ucontrol)
2476{
2477 ucontrol->value.integer.value[0] = fm_switch_enable;
2478 pr_debug("%s: FM Switch enable %ld\n", __func__,
2479 ucontrol->value.integer.value[0]);
2480 return 0;
2481}
2482
2483static int msm_routing_put_switch_mixer(struct snd_kcontrol *kcontrol,
2484 struct snd_ctl_elem_value *ucontrol)
2485{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302486 struct snd_soc_dapm_widget *widget =
2487 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302488 struct snd_soc_dapm_update *update = NULL;
2489
2490 pr_debug("%s: FM Switch enable %ld\n", __func__,
2491 ucontrol->value.integer.value[0]);
2492 if (ucontrol->value.integer.value[0])
2493 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2494 update);
2495 else
2496 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2497 update);
2498 fm_switch_enable = ucontrol->value.integer.value[0];
2499 return 1;
2500}
2501
2502static int msm_routing_get_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2503 struct snd_ctl_elem_value *ucontrol)
2504{
2505 ucontrol->value.integer.value[0] = hfp_switch_enable;
2506 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2507 ucontrol->value.integer.value[0]);
2508 return 0;
2509}
2510
2511static int msm_routing_put_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2512 struct snd_ctl_elem_value *ucontrol)
2513{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302514 struct snd_soc_dapm_widget *widget =
2515 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302516 struct snd_soc_dapm_update *update = NULL;
2517
2518 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2519 ucontrol->value.integer.value[0]);
2520 if (ucontrol->value.integer.value[0])
2521 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2522 1, update);
2523 else
2524 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2525 0, update);
2526 hfp_switch_enable = ucontrol->value.integer.value[0];
2527 return 1;
2528}
2529
Aniket Kumar Latac0c31472018-02-22 14:46:09 -08002530static int msm_routing_a2dp_switch_mixer_get(struct snd_kcontrol *kcontrol,
2531 struct snd_ctl_elem_value *ucontrol)
2532{
2533 ucontrol->value.integer.value[0] = a2dp_switch_enable;
2534 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2535 ucontrol->value.integer.value[0]);
2536 return 0;
2537}
2538
2539static int msm_routing_a2dp_switch_mixer_put(struct snd_kcontrol *kcontrol,
2540 struct snd_ctl_elem_value *ucontrol)
2541{
2542 struct snd_soc_dapm_widget *widget =
2543 snd_soc_dapm_kcontrol_widget(kcontrol);
2544 struct snd_soc_dapm_update *update = NULL;
2545
2546 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2547 ucontrol->value.integer.value[0]);
2548 a2dp_switch_enable = ucontrol->value.integer.value[0];
2549 if (a2dp_switch_enable)
2550 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2551 1, update);
2552 else
2553 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2554 0, update);
2555 return 1;
2556}
2557
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302558static int msm_routing_get_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2559 struct snd_ctl_elem_value *ucontrol)
2560{
2561 ucontrol->value.integer.value[0] = int0_mi2s_switch_enable;
2562 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2563 ucontrol->value.integer.value[0]);
2564 return 0;
2565}
2566
2567static int msm_routing_put_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2568 struct snd_ctl_elem_value *ucontrol)
2569{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302570 struct snd_soc_dapm_widget *widget =
2571 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302572 struct snd_soc_dapm_update *update = NULL;
2573
2574 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2575 ucontrol->value.integer.value[0]);
2576 if (ucontrol->value.integer.value[0])
2577 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2578 update);
2579 else
2580 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2581 update);
2582 int0_mi2s_switch_enable = ucontrol->value.integer.value[0];
2583 return 1;
2584}
2585
2586static int msm_routing_get_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2587 struct snd_ctl_elem_value *ucontrol)
2588{
2589 ucontrol->value.integer.value[0] = int4_mi2s_switch_enable;
2590 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2591 ucontrol->value.integer.value[0]);
2592 return 0;
2593}
2594
2595static int msm_routing_put_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2596 struct snd_ctl_elem_value *ucontrol)
2597{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302598 struct snd_soc_dapm_widget *widget =
2599 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302600 struct snd_soc_dapm_update *update = NULL;
2601
2602 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2603 ucontrol->value.integer.value[0]);
2604 if (ucontrol->value.integer.value[0])
2605 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2606 update);
2607 else
2608 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2609 update);
2610 int4_mi2s_switch_enable = ucontrol->value.integer.value[0];
2611 return 1;
2612}
2613
2614static int msm_routing_get_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2615 struct snd_ctl_elem_value *ucontrol)
2616{
2617 ucontrol->value.integer.value[0] = usb_switch_enable;
2618 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2619 ucontrol->value.integer.value[0]);
2620 return 0;
2621}
2622
2623static int msm_routing_put_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2624 struct snd_ctl_elem_value *ucontrol)
2625{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302626 struct snd_soc_dapm_widget *widget =
2627 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302628 struct snd_soc_dapm_update *update = NULL;
2629
2630 pr_debug("%s: USB Switch enable %ld\n", __func__,
2631 ucontrol->value.integer.value[0]);
2632 if (ucontrol->value.integer.value[0])
2633 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2634 1, update);
2635 else
2636 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2637 0, update);
2638 usb_switch_enable = ucontrol->value.integer.value[0];
2639 return 1;
2640}
2641
2642static int msm_routing_get_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2643 struct snd_ctl_elem_value *ucontrol)
2644{
2645 ucontrol->value.integer.value[0] = pri_mi2s_switch_enable;
2646 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2647 ucontrol->value.integer.value[0]);
2648 return 0;
2649}
2650
2651static int msm_routing_put_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2652 struct snd_ctl_elem_value *ucontrol)
2653{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302654 struct snd_soc_dapm_widget *widget =
2655 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302656 struct snd_soc_dapm_update *update = NULL;
2657
2658 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2659 ucontrol->value.integer.value[0]);
2660 if (ucontrol->value.integer.value[0])
2661 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2662 update);
2663 else
2664 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2665 update);
2666 pri_mi2s_switch_enable = ucontrol->value.integer.value[0];
2667 return 1;
2668}
2669
2670static int msm_routing_get_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2671 struct snd_ctl_elem_value *ucontrol)
2672{
2673 ucontrol->value.integer.value[0] = sec_mi2s_switch_enable;
2674 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2675 ucontrol->value.integer.value[0]);
2676 return 0;
2677}
2678
2679static int msm_routing_put_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2680 struct snd_ctl_elem_value *ucontrol)
2681{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302682 struct snd_soc_dapm_widget *widget =
2683 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302684 struct snd_soc_dapm_update *update = NULL;
2685
2686 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2687 ucontrol->value.integer.value[0]);
2688 if (ucontrol->value.integer.value[0])
2689 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2690 update);
2691 else
2692 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2693 update);
2694 sec_mi2s_switch_enable = ucontrol->value.integer.value[0];
2695 return 1;
2696}
2697
2698static int msm_routing_get_tert_mi2s_switch_mixer(
2699 struct snd_kcontrol *kcontrol,
2700 struct snd_ctl_elem_value *ucontrol)
2701{
2702 ucontrol->value.integer.value[0] = tert_mi2s_switch_enable;
2703 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2704 ucontrol->value.integer.value[0]);
2705 return 0;
2706}
2707
2708static int msm_routing_put_tert_mi2s_switch_mixer(
2709 struct snd_kcontrol *kcontrol,
2710 struct snd_ctl_elem_value *ucontrol)
2711{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302712 struct snd_soc_dapm_widget *widget =
2713 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302714 struct snd_soc_dapm_update *update = NULL;
2715
2716 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2717 ucontrol->value.integer.value[0]);
2718 if (ucontrol->value.integer.value[0])
2719 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2720 update);
2721 else
2722 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2723 update);
2724 tert_mi2s_switch_enable = ucontrol->value.integer.value[0];
2725 return 1;
2726}
2727
2728static int msm_routing_get_quat_mi2s_switch_mixer(
2729 struct snd_kcontrol *kcontrol,
2730 struct snd_ctl_elem_value *ucontrol)
2731{
2732 ucontrol->value.integer.value[0] = quat_mi2s_switch_enable;
2733 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2734 ucontrol->value.integer.value[0]);
2735 return 0;
2736}
2737
2738static int msm_routing_put_quat_mi2s_switch_mixer(
2739 struct snd_kcontrol *kcontrol,
2740 struct snd_ctl_elem_value *ucontrol)
2741{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302742 struct snd_soc_dapm_widget *widget =
2743 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302744 struct snd_soc_dapm_update *update = NULL;
2745
2746 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2747 ucontrol->value.integer.value[0]);
2748 if (ucontrol->value.integer.value[0])
2749 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2750 update);
2751 else
2752 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2753 update);
2754 quat_mi2s_switch_enable = ucontrol->value.integer.value[0];
2755 return 1;
2756}
2757
Rohit Kumara5077932017-09-10 22:05:05 +05302758static int msm_routing_get_quin_mi2s_switch_mixer(
2759 struct snd_kcontrol *kcontrol,
2760 struct snd_ctl_elem_value *ucontrol)
2761{
2762 ucontrol->value.integer.value[0] = quin_mi2s_switch_enable;
2763 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2764 ucontrol->value.integer.value[0]);
2765 return 0;
2766}
2767
2768static int msm_routing_put_quin_mi2s_switch_mixer(
2769 struct snd_kcontrol *kcontrol,
2770 struct snd_ctl_elem_value *ucontrol)
2771{
2772 struct snd_soc_dapm_widget *widget =
2773 snd_soc_dapm_kcontrol_widget(kcontrol);
2774 struct snd_soc_dapm_update *update = NULL;
2775
2776 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2777 ucontrol->value.integer.value[0]);
2778 if (ucontrol->value.integer.value[0])
2779 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2780 update);
2781 else
2782 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2783 update);
2784 quin_mi2s_switch_enable = ucontrol->value.integer.value[0];
2785 return 1;
2786}
2787
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302788static int msm_routing_get_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2789 struct snd_ctl_elem_value *ucontrol)
2790{
2791 ucontrol->value.integer.value[0] = fm_pcmrx_switch_enable;
2792 pr_debug("%s: FM Switch enable %ld\n", __func__,
2793 ucontrol->value.integer.value[0]);
2794 return 0;
2795}
2796
2797static int msm_routing_put_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2798 struct snd_ctl_elem_value *ucontrol)
2799{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302800 struct snd_soc_dapm_widget *widget =
2801 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302802 struct snd_soc_dapm_update *update = NULL;
2803
2804 pr_debug("%s: FM Switch enable %ld\n", __func__,
2805 ucontrol->value.integer.value[0]);
2806 if (ucontrol->value.integer.value[0])
2807 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2808 update);
2809 else
2810 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2811 update);
2812 fm_pcmrx_switch_enable = ucontrol->value.integer.value[0];
2813 return 1;
2814}
2815
2816static int msm_routing_lsm_port_get(struct snd_kcontrol *kcontrol,
2817 struct snd_ctl_elem_value *ucontrol)
2818{
2819 ucontrol->value.integer.value[0] = lsm_port_index;
2820 return 0;
2821}
2822
2823static int msm_routing_lsm_port_put(struct snd_kcontrol *kcontrol,
2824 struct snd_ctl_elem_value *ucontrol)
2825{
2826 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
2827 int mux = ucontrol->value.enumerated.item[0];
2828 int lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2829
2830 if (mux >= e->items) {
2831 pr_err("%s: Invalid mux value %d\n", __func__, mux);
2832 return -EINVAL;
2833 }
2834
2835 pr_debug("%s: LSM enable %ld\n", __func__,
2836 ucontrol->value.integer.value[0]);
2837 switch (ucontrol->value.integer.value[0]) {
2838 case 1:
2839 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_0_TX;
2840 break;
2841 case 2:
2842 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_1_TX;
2843 break;
2844 case 3:
2845 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_2_TX;
2846 break;
2847 case 4:
2848 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_3_TX;
2849 break;
2850 case 5:
2851 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_4_TX;
2852 break;
2853 case 6:
2854 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2855 break;
2856 case 7:
2857 lsm_port = AFE_PORT_ID_TERTIARY_MI2S_TX;
2858 break;
2859 case 8:
2860 lsm_port = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2861 break;
2862 case 9:
2863 lsm_port = ADM_LSM_PORT_ID;
2864 break;
2865 case 10:
2866 lsm_port = AFE_PORT_ID_INT3_MI2S_TX;
2867 break;
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +05302868 case 11:
2869 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
2870 break;
2871 case 12:
2872 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_1;
2873 break;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302874 case 13:
Xiaoyu Yef439aed2019-01-02 16:40:01 -08002875 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_2;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302876 break;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302877 case 14:
Xiaoyu Yef439aed2019-01-02 16:40:01 -08002878 lsm_port = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2879 break;
2880 case 15:
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302881 lsm_port = AFE_PORT_ID_QUINARY_TDM_TX;
2882 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302883 default:
2884 pr_err("Default lsm port");
2885 break;
2886 }
2887 set_lsm_port(lsm_port);
2888 lsm_port_index = ucontrol->value.integer.value[0];
2889
2890 return 0;
2891}
2892
2893static int msm_routing_lsm_func_get(struct snd_kcontrol *kcontrol,
2894 struct snd_ctl_elem_value *ucontrol)
2895{
2896 int i;
2897 u16 port_id;
2898 enum afe_mad_type mad_type;
2899
2900 pr_debug("%s: enter\n", __func__);
2901 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2902 if (!strnstr(kcontrol->id.name, lsm_port_text[i],
2903 strlen(lsm_port_text[i])))
2904 break;
2905
2906 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002907 pr_warn("%s: Invalid id name %s\n", __func__,
2908 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302909 return -EINVAL;
2910 }
2911
2912 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2913
2914 /*Check for Tertiary/Quaternary/INT3 TX port*/
2915 if (strnstr(kcontrol->id.name, lsm_port_text[7],
2916 strlen(lsm_port_text[7])))
2917 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
2918
2919 if (strnstr(kcontrol->id.name, lsm_port_text[8],
2920 strlen(lsm_port_text[8])))
2921 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2922
2923 if (strnstr(kcontrol->id.name, lsm_port_text[10],
2924 strlen(lsm_port_text[10])))
2925 port_id = AFE_PORT_ID_INT3_MI2S_TX;
2926
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302927 if (strnstr(kcontrol->id.name, lsm_port_text[13],
2928 strlen(lsm_port_text[13])))
2929 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2930
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302931 if (strnstr(kcontrol->id.name, lsm_port_text[14],
2932 strlen(lsm_port_text[14])))
2933 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
2934
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302935 mad_type = afe_port_get_mad_type(port_id);
2936 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
2937 mad_type);
2938 switch (mad_type) {
2939 case MAD_HW_NONE:
2940 ucontrol->value.integer.value[0] = MADNONE;
2941 break;
2942 case MAD_HW_AUDIO:
2943 ucontrol->value.integer.value[0] = MADAUDIO;
2944 break;
2945 case MAD_HW_BEACON:
2946 ucontrol->value.integer.value[0] = MADBEACON;
2947 break;
2948 case MAD_HW_ULTRASOUND:
2949 ucontrol->value.integer.value[0] = MADULTRASOUND;
2950 break;
2951 case MAD_SW_AUDIO:
2952 ucontrol->value.integer.value[0] = MADSWAUDIO;
2953 break;
2954 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002955 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302956 return -EINVAL;
2957 }
2958 return 0;
2959}
2960
2961static int msm_routing_lsm_func_put(struct snd_kcontrol *kcontrol,
2962 struct snd_ctl_elem_value *ucontrol)
2963{
2964 int i;
2965 u16 port_id;
2966 enum afe_mad_type mad_type;
2967
2968 pr_debug("%s: enter\n", __func__);
2969 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2970 if (strnstr(kcontrol->id.name, lsm_port_text[i],
2971 strlen(lsm_port_text[i])))
2972 break;
2973
2974 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002975 pr_warn("%s: Invalid id name %s\n", __func__,
2976 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302977 return -EINVAL;
2978 }
2979
2980 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2981 switch (ucontrol->value.integer.value[0]) {
2982 case MADNONE:
2983 mad_type = MAD_HW_NONE;
2984 break;
2985 case MADAUDIO:
2986 mad_type = MAD_HW_AUDIO;
2987 break;
2988 case MADBEACON:
2989 mad_type = MAD_HW_BEACON;
2990 break;
2991 case MADULTRASOUND:
2992 mad_type = MAD_HW_ULTRASOUND;
2993 break;
2994 case MADSWAUDIO:
2995 mad_type = MAD_SW_AUDIO;
2996 break;
2997 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002998 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302999 return -EINVAL;
3000 }
3001
3002 /*Check for Tertiary/Quaternary/INT3 TX port*/
3003 if (strnstr(kcontrol->id.name, lsm_port_text[7],
3004 strlen(lsm_port_text[7])))
3005 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3006
3007 if (strnstr(kcontrol->id.name, lsm_port_text[8],
3008 strlen(lsm_port_text[8])))
3009 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3010
3011 if (strnstr(kcontrol->id.name, lsm_port_text[10],
3012 strlen(lsm_port_text[10])))
3013 port_id = AFE_PORT_ID_INT3_MI2S_TX;
3014
Aditya Bavanarie9454c62018-08-23 23:45:20 +05303015 if (strnstr(kcontrol->id.name, lsm_port_text[13],
3016 strlen(lsm_port_text[13])))
3017 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
3018
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303019 if (strnstr(kcontrol->id.name, lsm_port_text[14],
3020 strlen(lsm_port_text[14])))
3021 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
3022
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303023 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
3024 mad_type);
3025 return afe_port_set_mad_type(port_id, mad_type);
3026}
3027
3028static const char *const adm_override_chs_text[] = {"Zero", "One", "Two"};
3029
3030static SOC_ENUM_SINGLE_EXT_DECL(slim_7_rx_adm_override_chs,
3031 adm_override_chs_text);
3032
3033static int msm_routing_adm_get_backend_idx(struct snd_kcontrol *kcontrol)
3034{
3035 int backend_id;
3036
3037 if (strnstr(kcontrol->id.name, "SLIM7_RX", sizeof("SLIM7_RX"))) {
3038 backend_id = MSM_BACKEND_DAI_SLIMBUS_7_RX;
3039 } else {
3040 pr_err("%s: unsupported backend id: %s",
3041 __func__, kcontrol->id.name);
3042 return -EINVAL;
3043 }
3044
3045 return backend_id;
3046}
3047static int msm_routing_adm_channel_config_get(
3048 struct snd_kcontrol *kcontrol,
3049 struct snd_ctl_elem_value *ucontrol)
3050{
3051 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
3052
3053 if (backend_id >= 0) {
3054 mutex_lock(&routing_lock);
3055 ucontrol->value.integer.value[0] =
3056 msm_bedais[backend_id].adm_override_ch;
3057 pr_debug("%s: adm channel count %ld for BE:%d\n", __func__,
3058 ucontrol->value.integer.value[0], backend_id);
3059 mutex_unlock(&routing_lock);
3060 }
3061
3062 return 0;
3063}
3064
3065static int msm_routing_adm_channel_config_put(
3066 struct snd_kcontrol *kcontrol,
3067 struct snd_ctl_elem_value *ucontrol)
3068{
3069 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
3070
3071 if (backend_id >= 0) {
3072 mutex_lock(&routing_lock);
3073 msm_bedais[backend_id].adm_override_ch =
3074 ucontrol->value.integer.value[0];
3075 pr_debug("%s:updating BE :%d adm channels: %d\n",
3076 __func__, backend_id,
3077 msm_bedais[backend_id].adm_override_ch);
3078 mutex_unlock(&routing_lock);
3079 }
3080
3081 return 0;
3082}
3083
3084static const struct snd_kcontrol_new adm_channel_config_controls[] = {
3085 SOC_ENUM_EXT("SLIM7_RX ADM Channels", slim_7_rx_adm_override_chs,
3086 msm_routing_adm_channel_config_get,
3087 msm_routing_adm_channel_config_put),
3088};
3089
3090static int msm_routing_slim_0_rx_aanc_mux_get(struct snd_kcontrol *kcontrol,
3091 struct snd_ctl_elem_value *ucontrol)
3092{
3093
3094 mutex_lock(&routing_lock);
3095 ucontrol->value.integer.value[0] = slim0_rx_aanc_fb_port;
3096 mutex_unlock(&routing_lock);
3097 pr_debug("%s: AANC Mux Port %ld\n", __func__,
3098 ucontrol->value.integer.value[0]);
3099 return 0;
3100};
3101
3102static int msm_routing_slim_0_rx_aanc_mux_put(struct snd_kcontrol *kcontrol,
3103 struct snd_ctl_elem_value *ucontrol)
3104{
3105 struct aanc_data aanc_info;
3106
3107 mutex_lock(&routing_lock);
3108 memset(&aanc_info, 0x00, sizeof(aanc_info));
3109 pr_debug("%s: AANC Mux Port %ld\n", __func__,
3110 ucontrol->value.integer.value[0]);
3111 slim0_rx_aanc_fb_port = ucontrol->value.integer.value[0];
3112 if (ucontrol->value.integer.value[0] == 0) {
3113 aanc_info.aanc_active = false;
3114 aanc_info.aanc_tx_port = 0;
3115 aanc_info.aanc_rx_port = 0;
3116 } else {
3117 aanc_info.aanc_active = true;
3118 aanc_info.aanc_rx_port = SLIMBUS_0_RX;
3119 aanc_info.aanc_tx_port =
3120 (SLIMBUS_0_RX - 1 + (slim0_rx_aanc_fb_port * 2));
3121 }
3122 afe_set_aanc_info(&aanc_info);
3123 mutex_unlock(&routing_lock);
3124 return 0;
3125};
3126static int msm_routing_get_port_mixer(struct snd_kcontrol *kcontrol,
3127 struct snd_ctl_elem_value *ucontrol)
3128{
3129 int idx = 0, shift = 0;
3130 struct soc_mixer_control *mc =
3131 (struct soc_mixer_control *)kcontrol->private_value;
3132
Meng Wang05d5e9a2018-03-28 16:45:03 +08003133 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
3134 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303135
3136 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
3137 pr_err("%s: Invalid idx = %d\n", __func__, idx);
3138 return -EINVAL;
3139 }
3140
3141 if (test_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003142 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303143 ucontrol->value.integer.value[0] = 1;
3144 else
3145 ucontrol->value.integer.value[0] = 0;
3146
Meng Wang05d5e9a2018-03-28 16:45:03 +08003147 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303148 ucontrol->value.integer.value[0]);
3149
3150 return 0;
3151}
3152
3153static int msm_routing_put_port_mixer(struct snd_kcontrol *kcontrol,
3154 struct snd_ctl_elem_value *ucontrol)
3155{
3156 int idx = 0, shift = 0;
3157 struct soc_mixer_control *mc =
3158 (struct soc_mixer_control *)kcontrol->private_value;
3159
Meng Wang05d5e9a2018-03-28 16:45:03 +08003160 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
3161 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303162
3163 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
3164 pr_err("%s: Invalid idx = %d\n", __func__, idx);
3165 return -EINVAL;
3166 }
3167
Meng Wang05d5e9a2018-03-28 16:45:03 +08003168 pr_debug("%s: shift 0x%x rshift 0x%x val %ld idx %d reminder shift %d\n",
3169 __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303170 ucontrol->value.integer.value[0], idx, shift);
3171
3172 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08003173 afe_loopback(1, msm_bedais[mc->shift].port_id,
3174 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303175 set_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003176 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303177 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08003178 afe_loopback(0, msm_bedais[mc->shift].port_id,
3179 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303180 clear_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003181 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303182 }
3183
3184 return 1;
3185}
3186
3187static int msm_pcm_get_channel_rule_index(struct snd_kcontrol *kcontrol,
3188 struct snd_ctl_elem_value *ucontrol)
3189{
3190 u16 fe_id = 0;
3191
3192 fe_id = ((struct soc_mixer_control *)
3193 kcontrol->private_value)->shift;
3194 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3195 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3196 return -EINVAL;
3197 }
3198
3199 ucontrol->value.integer.value[0] = channel_mixer[fe_id].rule;
3200
3201 return 0;
3202}
3203
3204static int msm_pcm_put_channel_rule_index(struct snd_kcontrol *kcontrol,
3205 struct snd_ctl_elem_value *ucontrol)
3206{
3207 u16 fe_id = 0;
3208
3209 fe_id = ((struct soc_mixer_control *)
3210 kcontrol->private_value)->shift;
3211 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3212 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3213 return -EINVAL;
3214 }
3215
3216 channel_mixer[fe_id].rule = ucontrol->value.integer.value[0];
3217
3218 return 1;
3219}
3220
3221static int msm_pcm_get_out_chs(struct snd_kcontrol *kcontrol,
3222 struct snd_ctl_elem_value *ucontrol)
3223{
3224 u16 fe_id = 0;
3225
3226 fe_id = ((struct soc_multi_mixer_control *)
3227 kcontrol->private_value)->shift;
3228 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3229 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3230 return -EINVAL;
3231 }
3232
3233 ucontrol->value.integer.value[0] =
3234 channel_mixer[fe_id].output_channel;
3235 return 0;
3236}
3237
3238static int msm_pcm_put_out_chs(struct snd_kcontrol *kcontrol,
3239 struct snd_ctl_elem_value *ucontrol)
3240{
3241 u16 fe_id = 0;
3242
3243 fe_id = ((struct soc_multi_mixer_control *)
3244 kcontrol->private_value)->shift;
3245 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3246 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3247 return -EINVAL;
3248 }
3249
3250 pr_debug("%s: fe_id is %d, output channels = %d\n", __func__,
3251 fe_id,
3252 (unsigned int)(ucontrol->value.integer.value[0]));
3253 channel_mixer[fe_id].output_channel =
3254 (unsigned int)(ucontrol->value.integer.value[0]);
3255
3256 return 1;
3257}
3258
3259static const char *const ch_mixer[] = {"Disable", "Enable"};
3260
3261/* If new backend is added, need update this array */
3262static const char *const be_name[] = {
3263"ZERO", "PRI_I2S_RX", "PRI_I2S_TX", "SLIM_0_RX",
3264"SLIM_0_TX", "HDMI_RX", "INT_BT_SCO_RX", "INT_BT_SCO_TX",
3265"INT_FM_RX", "INT_FM_TX", "AFE_PCM_RX", "AFE_PCM_TX",
3266"AUXPCM_RX", "AUXPCM_TX", "VOICE_PLAYBACK_TX", "VOICE2_PLAYBACK_TX",
3267"INCALL_RECORD_RX", "INCALL_RECORD_TX", "MI2S_RX", "MI2S_TX",
3268"SEC_I2S_RX", "SLIM_1_RX", "SLIM_1_TX", "SLIM_2_RX",
3269"SLIM_2_TX", "SLIM_3_RX", "SLIM_3_TX", "SLIM_4_RX",
3270"SLIM_4_TX", "SLIM_5_RX", "SLIM_5_TX", "SLIM_6_RX",
3271"SLIM_6_TX", "SLIM_7_RX", "SLIM_7_TX", "SLIM_8_RX",
3272"SLIM_8_TX", "EXTPROC_RX", "EXTPROC_TX", "EXPROC_EC_TX",
3273"QUAT_MI2S_RX", "QUAT_MI2S_TX", "SECOND_MI2S_RX", "SECOND_MI2S_TX",
3274"PRI_MI2S_RX", "PRI_MI2S_TX", "TERT_MI2S_RX", "TERT_MI2S_TX",
Ralf Herzc8701f72018-06-20 11:37:35 +02003275"AUDIO_I2S_RX", "SEC_AUXPCM_RX", "SEC_AUXPCM_TX", "PRI_SPDIF_RX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303276"SECOND_MI2S_RX_SD1", "QUIN_MI2S_RX", "QUIN_MI2S_TX", "SENARY_MI2S_TX",
3277"PRI_TDM_RX_0", "PRI_TDM_TX_0", "PRI_TDM_RX_1", "PRI_TDM_TX_1",
3278"PRI_TDM_RX_2", "PRI_TDM_TX_2", "PRI_TDM_RX_3", "PRI_TDM_TX_3",
3279"PRI_TDM_RX_4", "PRI_TDM_TX_4", "PRI_TDM_RX_5", "PRI_TDM_TX_5",
3280"PRI_TDM_RX_6", "PRI_TDM_TX_6", "PRI_TDM_RX_7", "PRI_TDM_TX_7",
3281"SEC_TDM_RX_0", "SEC_TDM_TX_0", "SEC_TDM_RX_1", "SEC_TDM_TX_1",
3282"SEC_TDM_RX_2", "SEC_TDM_TX_2", "SEC_TDM_RX_3", "SEC_TDM_TX_3",
3283"SEC_TDM_RX_4", "SEC_TDM_TX_4", "SEC_TDM_RX_5", "SEC_TDM_TX_5",
3284"SEC_TDM_RX_6", "SEC_TDM_TX_6", "SEC_TDM_RX_7", "SEC_TDM_TX_7",
3285"TERT_TDM_RX_0", "TERT_TDM_TX_0", "TERT_TDM_RX_1", "TERT_TDM_TX_1",
3286"TERT_TDM_RX_2", "TERT_TDM_TX_2", "TERT_TDM_RX_3", "TERT_TDM_TX_3",
3287"TERT_TDM_RX_4", "TERT_TDM_TX_4", "TERT_TDM_RX_5", "TERT_TDM_TX_5",
3288"TERT_TDM_RX_6", "TERT_TDM_TX_6", "TERT_TDM_RX_7", "TERT_TDM_TX_7",
3289"QUAT_TDM_RX_0", "QUAT_TDM_TX_0", "QUAT_TDM_RX_1", "QUAT_TDM_TX_1",
3290"QUAT_TDM_RX_2", "QUAT_TDM_TX_2", "QUAT_TDM_RX_3", "QUAT_TDM_TX_3",
3291"QUAT_TDM_RX_4", "QUAT_TDM_TX_4", "QUAT_TDM_RX_5", "QUAT_TDM_TX_5",
3292"QUAT_TDM_RX_6", "QUAT_TDM_TX_6", "QUAT_TDM_RX_7", "QUAT_TDM_TX_7",
Rohit Kumara5077932017-09-10 22:05:05 +05303293"QUIN_TDM_RX_0", "QUIN_TDM_TX_0", "QUIN_TDM_RX_1", "QUIN_TDM_TX_1",
3294"QUIN_TDM_RX_2", "QUIN_TDM_TX_2", "QUIN_TDM_RX_3", "QUIN_TDM_TX_3",
3295"QUIN_TDM_RX_4", "QUIN_TDM_TX_4", "QUIN_TDM_RX_5", "QUIN_TDM_TX_5",
3296"QUIN_TDM_RX_6", "QUIN_TDM_TX_6", "QUIN_TDM_RX_7", "QUIN_TDM_TX_7",
Meng Wangf016d302019-01-21 10:35:53 +08003297"INT_BT_A2DP_RX", "USB_RX", "USB_TX", "DISPLAY_PORT_RX",
3298"DISPLAY_PORT_RX1", "TERT_AUXPCM_RX", "TERT_AUXPCM_TX", "QUAT_AUXPCM_RX",
3299"QUAT_AUXPCM_TX", "QUIN_AUXPCM_RX", "QUIN_AUXPCM_TX", "INT0_MI2S_RX",
3300"INT0_MI2S_TX", "INT1_MI2S_RX", "INT1_MI2S_TX", "INT2_MI2S_RX",
3301"INT2_MI2S_TX", "INT3_MI2S_RX", "INT3_MI2S_TX", "INT4_MI2S_RX",
3302"INT4_MI2S_TX", "INT5_MI2S_RX", "INT5_MI2S_TX", "INT6_MI2S_RX",
3303"INT6_MI2S_TX", "SEN_AUXPCM_RX", "SEN_AUXPCM_TX", "SENARY_MI2S_RX",
3304"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 -08003305"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 +05303306"RX_CDC_DMA_RX_0", "TX_CDC_DMA_TX_0", "RX_CDC_DMA_RX_1", "TX_CDC_DMA_TX_1",
3307"RX_CDC_DMA_RX_2", "TX_CDC_DMA_TX_2", "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_3",
3308"RX_CDC_DMA_RX_4", "TX_CDC_DMA_TX_4", "RX_CDC_DMA_RX_5", "TX_CDC_DMA_TX_5",
3309"RX_CDC_DMA_RX_6", "RX_CDC_DMA_RX_7",
3310"PRI_SPDIF_TX", "SEC_SPDIF_RX", "SEC_SPDIF_TX",
Meng Wangf016d302019-01-21 10:35:53 +08003311"SLIM_9_RX", "SLIM_9_TX", "AFE_LOOPBACK_TX"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303312};
3313
3314static SOC_ENUM_SINGLE_DECL(mm1_channel_mux,
3315 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, ch_mixer);
3316static SOC_ENUM_SINGLE_DECL(mm2_channel_mux,
3317 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA2, ch_mixer);
3318static SOC_ENUM_SINGLE_DECL(mm3_channel_mux,
3319 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA3, ch_mixer);
3320static SOC_ENUM_SINGLE_DECL(mm4_channel_mux,
3321 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA4, ch_mixer);
3322
3323static SOC_ENUM_DOUBLE_DECL(mm1_ch1_enum,
3324 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 0, be_name);
3325static SOC_ENUM_DOUBLE_DECL(mm1_ch2_enum,
3326 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 1, be_name);
3327static SOC_ENUM_DOUBLE_DECL(mm1_ch3_enum,
3328 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 2, be_name);
3329static SOC_ENUM_DOUBLE_DECL(mm1_ch4_enum,
3330 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 3, be_name);
3331static SOC_ENUM_DOUBLE_DECL(mm1_ch5_enum,
3332 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 4, be_name);
3333static SOC_ENUM_DOUBLE_DECL(mm1_ch6_enum,
3334 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 5, be_name);
3335static SOC_ENUM_DOUBLE_DECL(mm1_ch7_enum,
3336 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 6, be_name);
3337static SOC_ENUM_DOUBLE_DECL(mm1_ch8_enum,
3338 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 7, be_name);
3339
3340static int msm_pcm_get_ctl_enum_info(struct snd_ctl_elem_info *uinfo,
3341 unsigned int channels,
3342 unsigned int items, const char *const names[])
3343{
3344 if (uinfo->value.enumerated.item >= items)
3345 uinfo->value.enumerated.item = items - 1;
3346
3347 WARN(strlen(names[uinfo->value.enumerated.item]) >=
3348 sizeof(uinfo->value.enumerated.name),
3349 "ALSA: too long item name '%s'\n",
3350 names[uinfo->value.enumerated.item]);
3351 strlcpy(uinfo->value.enumerated.name,
3352 names[uinfo->value.enumerated.item],
3353 sizeof(uinfo->value.enumerated.name));
3354 return 0;
3355}
3356
3357static int msm_pcm_channel_mixer_info(struct snd_kcontrol *kcontrol,
3358 struct snd_ctl_elem_info *uinfo)
3359{
3360 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3361
3362 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3363 uinfo->count = 1;
3364
3365 uinfo->value.enumerated.items = ARRAY_SIZE(ch_mixer);
3366 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3367
3368 return 0;
3369}
3370static int msm_pcm_channel_mixer_get(struct snd_kcontrol *kcontrol,
3371 struct snd_ctl_elem_value *ucontrol)
3372{
3373 u16 fe_id = 0;
3374
3375 fe_id = ((struct soc_enum *)
3376 kcontrol->private_value)->shift_l;
3377 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3378 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3379 return -EINVAL;
3380 }
3381
3382 pr_debug("%s: FE %d %s\n", __func__,
3383 fe_id,
3384 channel_mixer[fe_id].enable ? "Enabled" : "Disabled");
3385 ucontrol->value.enumerated.item[0] = channel_mixer[fe_id].enable;
3386 return 0;
3387}
3388
3389static int msm_pcm_channel_mixer_put(struct snd_kcontrol *kcontrol,
3390 struct snd_ctl_elem_value *ucontrol)
3391{
3392 u16 fe_id = 0;
3393
3394 fe_id = ((struct soc_enum *)
3395 kcontrol->private_value)->shift_l;
3396 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3397 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3398 return -EINVAL;
3399 }
3400
3401 channel_mixer[fe_id].enable = ucontrol->value.enumerated.item[0];
3402 pr_debug("%s: %s FE %d\n", __func__,
3403 channel_mixer[fe_id].enable ? "Enable" : "Disable",
3404 fe_id);
3405 return 0;
3406}
3407
3408static int msm_pcm_channel_input_be_info(struct snd_kcontrol *kcontrol,
3409 struct snd_ctl_elem_info *uinfo)
3410{
3411 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3412
3413 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3414 uinfo->count = 1;
3415
3416 uinfo->value.enumerated.items = ARRAY_SIZE(be_name);
3417 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3418
3419 return 0;
3420}
3421
3422static int msm_pcm_channel_input_be_put(struct snd_kcontrol *kcontrol,
3423 struct snd_ctl_elem_value *ucontrol)
3424{
3425 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3426 u16 fe_id = 0, in_ch = 0;
3427
3428 fe_id = e->shift_l;
3429 in_ch = e->shift_r;
3430 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3431 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3432 return -EINVAL;
3433 }
3434 if (in_ch >= ADM_MAX_CHANNELS) {
3435 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3436 return -EINVAL;
3437 }
3438
3439 channel_input[fe_id][in_ch] = ucontrol->value.enumerated.item[0];
3440 return 1;
3441}
3442
3443static int msm_pcm_channel_input_be_get(struct snd_kcontrol *kcontrol,
3444 struct snd_ctl_elem_value *ucontrol)
3445{
3446 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3447 u16 fe_id = 0, in_ch = 0;
3448
3449 fe_id = e->shift_l;
3450 in_ch = e->shift_r;
3451 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3452 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3453 return -EINVAL;
3454 }
3455 if (in_ch >= ADM_MAX_CHANNELS) {
3456 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3457 return -EINVAL;
3458 }
3459
3460 ucontrol->value.enumerated.item[0] = channel_input[fe_id][in_ch];
3461 return 1;
3462}
3463
3464
3465static int msm_pcm_channel_weight_info(struct snd_kcontrol *kcontrol,
3466 struct snd_ctl_elem_info *uinfo)
3467{
3468 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3469 uinfo->count = ADM_MAX_CHANNELS;
3470 uinfo->value.integer.min = 0;
3471 uinfo->value.integer.max = WEIGHT_0_DB;
3472
3473 return 0;
3474}
3475
3476static int msm_pcm_channel_weight_put(struct snd_kcontrol *kcontrol,
3477 struct snd_ctl_elem_value *ucontrol)
3478{
3479 u16 fe_id = 0, out_ch = 0;
3480 int i, weight;
3481
3482 fe_id = ((struct soc_multi_mixer_control *)
3483 kcontrol->private_value)->shift;
3484 out_ch = ((struct soc_multi_mixer_control *)
3485 kcontrol->private_value)->rshift;
3486 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3487 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3488 return -EINVAL;
3489 }
3490 if (out_ch >= ADM_MAX_CHANNELS) {
3491 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3492 return -EINVAL;
3493 }
3494
3495 pr_debug("%s: FE_ID: %d, channel weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld\n",
3496 __func__, fe_id,
3497 ucontrol->value.integer.value[0],
3498 ucontrol->value.integer.value[1],
3499 ucontrol->value.integer.value[2],
3500 ucontrol->value.integer.value[3],
3501 ucontrol->value.integer.value[4],
3502 ucontrol->value.integer.value[5],
3503 ucontrol->value.integer.value[6],
3504 ucontrol->value.integer.value[7]);
3505
3506 for (i = 0; i < ADM_MAX_CHANNELS; ++i) {
3507 weight = ucontrol->value.integer.value[i];
3508 channel_mixer[fe_id].channel_weight[out_ch][i] = weight;
3509 pr_debug("%s: FE_ID %d, output %d input %d weight %d\n",
3510 __func__, fe_id, out_ch, i,
3511 channel_mixer[fe_id].channel_weight[out_ch][i]);
3512 }
3513
3514 return 0;
3515}
3516
3517static int msm_pcm_channel_weight_get(struct snd_kcontrol *kcontrol,
3518 struct snd_ctl_elem_value *ucontrol)
3519{
3520 u16 fe_id = 0, out_ch = 0;
3521 int i;
3522
3523 fe_id = ((struct soc_multi_mixer_control *)
3524 kcontrol->private_value)->shift;
3525 out_ch = ((struct soc_multi_mixer_control *)
3526 kcontrol->private_value)->rshift;
3527 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3528 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3529 return -EINVAL;
3530 }
3531 if (out_ch >= ADM_MAX_CHANNELS) {
3532 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3533 return -EINVAL;
3534 }
3535
3536 for (i = 0; i < ADM_MAX_CHANNELS; ++i)
3537 ucontrol->value.integer.value[i] =
3538 channel_mixer[fe_id].channel_weight[out_ch][i];
3539
3540 pr_debug("%s: FE_ID: %d, weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld",
3541 __func__, fe_id,
3542 ucontrol->value.integer.value[0],
3543 ucontrol->value.integer.value[1],
3544 ucontrol->value.integer.value[2],
3545 ucontrol->value.integer.value[3],
3546 ucontrol->value.integer.value[4],
3547 ucontrol->value.integer.value[5],
3548 ucontrol->value.integer.value[6],
3549 ucontrol->value.integer.value[7]);
3550
3551 return 0;
3552}
3553
3554static const struct snd_kcontrol_new channel_mixer_controls[] = {
3555 SOC_SINGLE_EXT("MultiMedia1 Channel Rule", SND_SOC_NOPM,
3556 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3557 msm_pcm_get_channel_rule_index,
3558 msm_pcm_put_channel_rule_index),
3559 SOC_SINGLE_EXT("MultiMedia2 Channel Rule", SND_SOC_NOPM,
3560 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3561 msm_pcm_get_channel_rule_index,
3562 msm_pcm_put_channel_rule_index),
3563 SOC_SINGLE_EXT("MultiMedia3 Channel Rule", SND_SOC_NOPM,
3564 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3565 msm_pcm_get_channel_rule_index,
3566 msm_pcm_put_channel_rule_index),
3567 SOC_SINGLE_EXT("MultiMedia4 Channel Rule", SND_SOC_NOPM,
3568 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3569 msm_pcm_get_channel_rule_index,
3570 msm_pcm_put_channel_rule_index),
3571 SOC_SINGLE_EXT("MultiMedia5 Channel Rule", SND_SOC_NOPM,
3572 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3573 msm_pcm_get_channel_rule_index,
3574 msm_pcm_put_channel_rule_index),
3575 SOC_SINGLE_EXT("MultiMedia6 Channel Rule", SND_SOC_NOPM,
3576 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3577 msm_pcm_get_channel_rule_index,
3578 msm_pcm_put_channel_rule_index),
3579
3580 SOC_SINGLE_EXT("MultiMedia1 Channels", SND_SOC_NOPM,
3581 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3582 msm_pcm_get_out_chs,
3583 msm_pcm_put_out_chs),
3584 SOC_SINGLE_EXT("MultiMedia2 Channels", SND_SOC_NOPM,
3585 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3586 msm_pcm_get_out_chs,
3587 msm_pcm_put_out_chs),
3588 SOC_SINGLE_EXT("MultiMedia3 Channels", SND_SOC_NOPM,
3589 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3590 msm_pcm_get_out_chs,
3591 msm_pcm_put_out_chs),
3592 SOC_SINGLE_EXT("MultiMedia4 Channels", SND_SOC_NOPM,
3593 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3594 msm_pcm_get_out_chs,
3595 msm_pcm_put_out_chs),
3596 SOC_SINGLE_EXT("MultiMedia5 Channels", SND_SOC_NOPM,
3597 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3598 msm_pcm_get_out_chs,
3599 msm_pcm_put_out_chs),
3600 SOC_SINGLE_EXT("MultiMedia6 Channels", SND_SOC_NOPM,
3601 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3602 msm_pcm_get_out_chs,
3603 msm_pcm_put_out_chs),
3604 {
3605 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3606 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3607 .name = "MultiMedia1 Channel Mixer",
3608 .info = msm_pcm_channel_mixer_info,
3609 .get = msm_pcm_channel_mixer_get,
3610 .put = msm_pcm_channel_mixer_put,
3611 .private_value = (unsigned long)&(mm1_channel_mux)
3612 },
3613 {
3614 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3615 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3616 .name = "MultiMedia2 Channel Mixer",
3617 .info = msm_pcm_channel_mixer_info,
3618 .get = msm_pcm_channel_mixer_get,
3619 .put = msm_pcm_channel_mixer_put,
3620 .private_value = (unsigned long)&(mm2_channel_mux)
3621 },
3622 {
3623 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3624 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3625 .name = "MultiMedia3 Channel Mixer",
3626 .info = msm_pcm_channel_mixer_info,
3627 .get = msm_pcm_channel_mixer_get,
3628 .put = msm_pcm_channel_mixer_put,
3629 .private_value = (unsigned long)&(mm3_channel_mux)
3630 },
3631 {
3632 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3633 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3634 .name = "MultiMedia4 Channel Mixer",
3635 .info = msm_pcm_channel_mixer_info,
3636 .get = msm_pcm_channel_mixer_get,
3637 .put = msm_pcm_channel_mixer_put,
3638 .private_value = (unsigned long)&(mm4_channel_mux)
3639 },
3640 {
3641 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3642 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3643 .name = "MultiMedia1 Output Channel1",
3644 .info = msm_pcm_channel_weight_info,
3645 .get = msm_pcm_channel_weight_get,
3646 .put = msm_pcm_channel_weight_put,
3647 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3648 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 0,}
3649 },
3650 {
3651 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3652 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3653 .name = "MultiMedia1 Output Channel2",
3654 .info = msm_pcm_channel_weight_info,
3655 .get = msm_pcm_channel_weight_get,
3656 .put = msm_pcm_channel_weight_put,
3657 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3658 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 1, }
3659 },
3660 {
3661 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3662 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3663 .name = "MultiMedia1 Output Channel3",
3664 .info = msm_pcm_channel_weight_info,
3665 .get = msm_pcm_channel_weight_get,
3666 .put = msm_pcm_channel_weight_put,
3667 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3668 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 2,}
3669 },
3670 {
3671 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3672 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3673 .name = "MultiMedia1 Output Channel4",
3674 .info = msm_pcm_channel_weight_info,
3675 .get = msm_pcm_channel_weight_get,
3676 .put = msm_pcm_channel_weight_put,
3677 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3678 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 3,}
3679 },
3680 {
3681 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3682 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3683 .name = "MultiMedia1 Output Channel5",
3684 .info = msm_pcm_channel_weight_info,
3685 .get = msm_pcm_channel_weight_get,
3686 .put = msm_pcm_channel_weight_put,
3687 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3688 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 4,}
3689 },
3690 {
3691 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3692 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3693 .name = "MultiMedia1 Output Channel6",
3694 .info = msm_pcm_channel_weight_info,
3695 .get = msm_pcm_channel_weight_get,
3696 .put = msm_pcm_channel_weight_put,
3697 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3698 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 5,}
3699 },
3700 {
3701 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3702 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3703 .name = "MultiMedia1 Output Channel7",
3704 .info = msm_pcm_channel_weight_info,
3705 .get = msm_pcm_channel_weight_get,
3706 .put = msm_pcm_channel_weight_put,
3707 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3708 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 6,}
3709 },
3710 {
3711 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3712 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3713 .name = "MultiMedia1 Output Channel8",
3714 .info = msm_pcm_channel_weight_info,
3715 .get = msm_pcm_channel_weight_get,
3716 .put = msm_pcm_channel_weight_put,
3717 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3718 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 7,}
3719 },
3720 {
3721 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3722 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3723 .name = "MultiMedia2 Output Channel1",
3724 .info = msm_pcm_channel_weight_info,
3725 .get = msm_pcm_channel_weight_get,
3726 .put = msm_pcm_channel_weight_put,
3727 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3728 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 0,}
3729 },
3730 {
3731 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3732 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3733 .name = "MultiMedia2 Output Channel2",
3734 .info = msm_pcm_channel_weight_info,
3735 .get = msm_pcm_channel_weight_get,
3736 .put = msm_pcm_channel_weight_put,
3737 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3738 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 1,}
3739 },
3740 {
3741 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3742 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3743 .name = "MultiMedia2 Output Channel3",
3744 .info = msm_pcm_channel_weight_info,
3745 .get = msm_pcm_channel_weight_get,
3746 .put = msm_pcm_channel_weight_put,
3747 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3748 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 2,}
3749 },
3750 {
3751 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3752 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3753 .name = "MultiMedia3 Output Channel1",
3754 .info = msm_pcm_channel_weight_info,
3755 .get = msm_pcm_channel_weight_get,
3756 .put = msm_pcm_channel_weight_put,
3757 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3758 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 0,}
3759 },
3760 {
3761 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3762 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3763 .name = "MultiMedia3 Output Channel2",
3764 .info = msm_pcm_channel_weight_info,
3765 .get = msm_pcm_channel_weight_get,
3766 .put = msm_pcm_channel_weight_put,
3767 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3768 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 1,}
3769 },
3770 {
3771 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3772 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3773 .name = "MultiMedia1 Channel1",
3774 .info = msm_pcm_channel_input_be_info,
3775 .get = msm_pcm_channel_input_be_get,
3776 .put = msm_pcm_channel_input_be_put,
3777 .private_value = (unsigned long)&(mm1_ch1_enum)
3778 },
3779 {
3780 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3781 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3782 .name = "MultiMedia1 Channel2",
3783 .info = msm_pcm_channel_input_be_info,
3784 .get = msm_pcm_channel_input_be_get,
3785 .put = msm_pcm_channel_input_be_put,
3786 .private_value = (unsigned long)&(mm1_ch2_enum)
3787 },
3788 {
3789 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3790 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3791 .name = "MultiMedia1 Channel3",
3792 .info = msm_pcm_channel_input_be_info,
3793 .get = msm_pcm_channel_input_be_get,
3794 .put = msm_pcm_channel_input_be_put,
3795 .private_value = (unsigned long)&(mm1_ch3_enum)
3796 },
3797 {
3798 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3799 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3800 .name = "MultiMedia1 Channel4",
3801 .info = msm_pcm_channel_input_be_info,
3802 .get = msm_pcm_channel_input_be_get,
3803 .put = msm_pcm_channel_input_be_put,
3804 .private_value = (unsigned long)&(mm1_ch4_enum)
3805 },
3806 {
3807 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3808 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3809 .name = "MultiMedia1 Channel5",
3810 .info = msm_pcm_channel_input_be_info,
3811 .get = msm_pcm_channel_input_be_get,
3812 .put = msm_pcm_channel_input_be_put,
3813 .private_value = (unsigned long)&(mm1_ch5_enum)
3814 },
3815 {
3816 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3817 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3818 .name = "MultiMedia1 Channel6",
3819 .info = msm_pcm_channel_input_be_info,
3820 .get = msm_pcm_channel_input_be_get,
3821 .put = msm_pcm_channel_input_be_put,
3822 .private_value = (unsigned long)&(mm1_ch6_enum)
3823 },
3824 {
3825 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3826 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3827 .name = "MultiMedia1 Channel7",
3828 .info = msm_pcm_channel_input_be_info,
3829 .get = msm_pcm_channel_input_be_get,
3830 .put = msm_pcm_channel_input_be_put,
3831 .private_value = (unsigned long)&(mm1_ch7_enum)
3832 },
3833 {
3834 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3835 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3836 .name = "MultiMedia1 Channel8",
3837 .info = msm_pcm_channel_input_be_info,
3838 .get = msm_pcm_channel_input_be_get,
3839 .put = msm_pcm_channel_input_be_put,
3840 .private_value = (unsigned long)&(mm1_ch8_enum)
3841 },
3842};
3843static int msm_ec_ref_ch_get(struct snd_kcontrol *kcontrol,
3844 struct snd_ctl_elem_value *ucontrol)
3845{
3846 ucontrol->value.integer.value[0] = msm_ec_ref_ch;
3847 pr_debug("%s: msm_ec_ref_ch = %ld\n", __func__,
3848 ucontrol->value.integer.value[0]);
3849 return 0;
3850}
3851
3852static int msm_ec_ref_ch_put(struct snd_kcontrol *kcontrol,
3853 struct snd_ctl_elem_value *ucontrol)
3854{
3855 msm_ec_ref_ch = ucontrol->value.integer.value[0];
3856 pr_debug("%s: msm_ec_ref_ch = %d\n", __func__, msm_ec_ref_ch);
3857 adm_num_ec_ref_rx_chans(msm_ec_ref_ch);
3858 return 0;
3859}
3860
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05303861static int msm_ec_ref_ch_downmixed_get(struct snd_kcontrol *kcontrol,
3862 struct snd_ctl_elem_value *ucontrol)
3863{
3864 ucontrol->value.integer.value[0] = msm_ec_ref_ch_downmixed;
3865 pr_debug("%s: msm_ec_ref_downmixed_ch = %ld\n", __func__,
3866 ucontrol->value.integer.value[0]);
3867 return 0;
3868}
3869
3870static int msm_ec_ref_ch_downmixed_put(struct snd_kcontrol *kcontrol,
3871 struct snd_ctl_elem_value *ucontrol)
3872{
3873 msm_ec_ref_ch_downmixed = ucontrol->value.integer.value[0];
3874 pr_debug("%s: msm_ec_ref_downmixed_ch = %d\n",
3875 __func__, msm_ec_ref_ch_downmixed);
3876 adm_num_ec_ref_rx_chans_downmixed(msm_ec_ref_ch_downmixed);
3877 return 0;
3878}
3879
3880static int msm_ec_ref_chmixer_weights_put(struct snd_kcontrol *kcontrol,
3881 struct snd_ctl_elem_value *ucontrol)
3882{
3883 int i = 0, ret = 0;
3884 uint16_t weights[PCM_FORMAT_MAX_NUM_CHANNEL_V8] = {0};
3885 int out_channel_idx = ((struct soc_multi_mixer_control *)
3886 kcontrol->private_value)->shift;
3887
3888 for (; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; i++)
3889 weights[i] = ucontrol->value.integer.value[i];
3890
3891 ret = adm_ec_ref_chmixer_weights(out_channel_idx,
3892 weights, PCM_FORMAT_MAX_NUM_CHANNEL_V8);
3893 pr_debug("%s: ch_index = %d, ret = %d\n", __func__, out_channel_idx, ret);
3894 return ret;
3895}
3896
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303897static const char *const ec_ref_ch_text[] = {"Zero", "One", "Two", "Three",
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05303898 "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven",
3899 "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303900
3901static int msm_ec_ref_bit_format_get(struct snd_kcontrol *kcontrol,
3902 struct snd_ctl_elem_value *ucontrol)
3903{
3904 switch (msm_ec_ref_bit_format) {
3905 case SNDRV_PCM_FORMAT_S24_LE:
3906 ucontrol->value.integer.value[0] = 2;
3907 break;
3908 case SNDRV_PCM_FORMAT_S16_LE:
3909 ucontrol->value.integer.value[0] = 1;
3910 break;
3911 default:
3912 ucontrol->value.integer.value[0] = 0;
3913 break;
3914 }
3915 pr_debug("%s: msm_ec_ref_bit_format = %ld\n",
3916 __func__, ucontrol->value.integer.value[0]);
3917 return 0;
3918}
3919
3920static int msm_ec_ref_bit_format_put(struct snd_kcontrol *kcontrol,
3921 struct snd_ctl_elem_value *ucontrol)
3922{
3923 u16 bit_width = 0;
3924
3925 switch (ucontrol->value.integer.value[0]) {
3926 case 2:
3927 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S24_LE;
3928 break;
3929 case 1:
3930 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
3931 break;
3932 default:
3933 msm_ec_ref_bit_format = 0;
3934 break;
3935 }
3936
3937 if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S16_LE)
3938 bit_width = 16;
3939 else if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S24_LE)
3940 bit_width = 24;
3941
3942 pr_debug("%s: msm_ec_ref_bit_format = %d\n",
3943 __func__, msm_ec_ref_bit_format);
3944 adm_ec_ref_rx_bit_width(bit_width);
3945 return 0;
3946}
3947
3948static char const *ec_ref_bit_format_text[] = {"0", "S16_LE", "S24_LE"};
3949
3950static int msm_ec_ref_rate_get(struct snd_kcontrol *kcontrol,
3951 struct snd_ctl_elem_value *ucontrol)
3952{
3953 ucontrol->value.integer.value[0] = msm_ec_ref_sampling_rate;
3954 pr_debug("%s: msm_ec_ref_sampling_rate = %ld\n",
3955 __func__, ucontrol->value.integer.value[0]);
3956 return 0;
3957}
3958
3959static int msm_ec_ref_rate_put(struct snd_kcontrol *kcontrol,
3960 struct snd_ctl_elem_value *ucontrol)
3961{
3962 switch (ucontrol->value.integer.value[0]) {
3963 case 0:
3964 msm_ec_ref_sampling_rate = 0;
3965 break;
3966 case 1:
3967 msm_ec_ref_sampling_rate = 8000;
3968 break;
3969 case 2:
3970 msm_ec_ref_sampling_rate = 16000;
3971 break;
3972 case 3:
3973 msm_ec_ref_sampling_rate = 32000;
3974 break;
3975 case 4:
3976 msm_ec_ref_sampling_rate = 44100;
3977 break;
3978 case 5:
3979 msm_ec_ref_sampling_rate = 48000;
3980 break;
3981 case 6:
3982 msm_ec_ref_sampling_rate = 96000;
3983 break;
3984 case 7:
3985 msm_ec_ref_sampling_rate = 192000;
3986 break;
3987 case 8:
3988 msm_ec_ref_sampling_rate = 384000;
3989 break;
3990 default:
3991 msm_ec_ref_sampling_rate = 48000;
3992 break;
3993 }
3994 pr_debug("%s: msm_ec_ref_sampling_rate = %d\n",
3995 __func__, msm_ec_ref_sampling_rate);
3996 adm_ec_ref_rx_sampling_rate(msm_ec_ref_sampling_rate);
3997 return 0;
3998}
3999
4000static const char *const ec_ref_rate_text[] = {"0", "8000", "16000",
4001 "32000", "44100", "48000", "96000", "192000", "384000"};
4002
4003static const struct soc_enum msm_route_ec_ref_params_enum[] = {
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05304004 SOC_ENUM_SINGLE_EXT(17, ec_ref_ch_text),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304005 SOC_ENUM_SINGLE_EXT(3, ec_ref_bit_format_text),
4006 SOC_ENUM_SINGLE_EXT(9, ec_ref_rate_text),
4007};
4008
4009static const struct snd_kcontrol_new ec_ref_param_controls[] = {
4010 SOC_ENUM_EXT("EC Reference Channels", msm_route_ec_ref_params_enum[0],
4011 msm_ec_ref_ch_get, msm_ec_ref_ch_put),
4012 SOC_ENUM_EXT("EC Reference Bit Format", msm_route_ec_ref_params_enum[1],
4013 msm_ec_ref_bit_format_get, msm_ec_ref_bit_format_put),
4014 SOC_ENUM_EXT("EC Reference SampleRate", msm_route_ec_ref_params_enum[2],
4015 msm_ec_ref_rate_get, msm_ec_ref_rate_put),
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05304016 SOC_ENUM_EXT("EC Reference Downmixed Channels", msm_route_ec_ref_params_enum[0],
4017 msm_ec_ref_ch_downmixed_get, msm_ec_ref_ch_downmixed_put),
4018 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch1", SND_SOC_NOPM, 0,
4019 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8,
4020 NULL, msm_ec_ref_chmixer_weights_put),
4021 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch2", SND_SOC_NOPM, 1,
4022 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8,
4023 NULL, msm_ec_ref_chmixer_weights_put),
4024 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch3", SND_SOC_NOPM, 2,
4025 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8,
4026 NULL, msm_ec_ref_chmixer_weights_put),
4027 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch4", SND_SOC_NOPM, 3,
4028 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8,
4029 NULL, msm_ec_ref_chmixer_weights_put),
4030 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch5", SND_SOC_NOPM, 4,
4031 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8,
4032 NULL, msm_ec_ref_chmixer_weights_put),
4033 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch6", SND_SOC_NOPM, 5,
4034 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8,
4035 NULL, msm_ec_ref_chmixer_weights_put),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304036};
4037
4038static int msm_routing_ec_ref_rx_get(struct snd_kcontrol *kcontrol,
4039 struct snd_ctl_elem_value *ucontrol)
4040{
4041 pr_debug("%s: ec_ref_rx = %d", __func__, msm_route_ec_ref_rx);
4042 mutex_lock(&routing_lock);
4043 ucontrol->value.integer.value[0] = msm_route_ec_ref_rx;
4044 mutex_unlock(&routing_lock);
4045 return 0;
4046}
4047
4048static int msm_routing_ec_ref_rx_put(struct snd_kcontrol *kcontrol,
4049 struct snd_ctl_elem_value *ucontrol)
4050{
4051 int ec_ref_port_id;
Asish Bhattacharya34504582017-08-08 12:55:01 +05304052 struct snd_soc_dapm_widget *widget =
4053 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304054 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
4055 struct snd_soc_dapm_update *update = NULL;
4056
4057
4058 mutex_lock(&routing_lock);
4059 switch (ucontrol->value.integer.value[0]) {
4060 case 0:
4061 msm_route_ec_ref_rx = 0;
4062 ec_ref_port_id = AFE_PORT_INVALID;
4063 break;
4064 case 1:
4065 msm_route_ec_ref_rx = 1;
4066 ec_ref_port_id = SLIMBUS_0_RX;
4067 break;
4068 case 2:
4069 msm_route_ec_ref_rx = 2;
4070 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_RX;
4071 break;
4072 case 3:
4073 msm_route_ec_ref_rx = 3;
4074 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
4075 break;
4076 case 4:
4077 msm_route_ec_ref_rx = 4;
4078 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
4079 break;
4080 case 5:
4081 msm_route_ec_ref_rx = 5;
4082 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
4083 break;
4084 case 6:
4085 msm_route_ec_ref_rx = 6;
4086 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
4087 break;
4088 case 7:
4089 msm_route_ec_ref_rx = 7;
4090 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_RX;
4091 break;
4092 case 9:
4093 msm_route_ec_ref_rx = 9;
4094 ec_ref_port_id = SLIMBUS_5_RX;
4095 break;
4096 case 10:
4097 msm_route_ec_ref_rx = 10;
4098 ec_ref_port_id = SLIMBUS_1_TX;
4099 break;
4100 case 11:
4101 msm_route_ec_ref_rx = 11;
4102 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_TX_1;
4103 break;
4104 case 12:
4105 msm_route_ec_ref_rx = 12;
4106 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX;
4107 break;
4108 case 13:
4109 msm_route_ec_ref_rx = 13;
4110 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_1;
4111 break;
4112 case 14:
4113 msm_route_ec_ref_rx = 14;
4114 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_2;
4115 break;
4116 case 15:
4117 msm_route_ec_ref_rx = 15;
4118 ec_ref_port_id = SLIMBUS_6_RX;
4119 break;
4120 case 16:
4121 msm_route_ec_ref_rx = 16;
4122 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_RX;
4123 break;
4124 case 17:
4125 msm_route_ec_ref_rx = 17;
4126 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_RX;
4127 break;
4128 case 18:
4129 msm_route_ec_ref_rx = 18;
4130 ec_ref_port_id = AFE_PORT_ID_TERTIARY_TDM_TX;
4131 break;
4132 case 19:
4133 msm_route_ec_ref_rx = 19;
4134 ec_ref_port_id = AFE_PORT_ID_USB_RX;
4135 break;
4136 case 20:
4137 msm_route_ec_ref_rx = 20;
4138 ec_ref_port_id = AFE_PORT_ID_INT0_MI2S_RX;
4139 break;
4140 case 21:
4141 msm_route_ec_ref_rx = 21;
4142 ec_ref_port_id = AFE_PORT_ID_INT4_MI2S_RX;
4143 break;
4144 case 22:
4145 msm_route_ec_ref_rx = 22;
4146 ec_ref_port_id = AFE_PORT_ID_INT3_MI2S_TX;
4147 break;
Aalique Grahamee4fd7d52017-11-28 13:24:13 -08004148 case 23:
4149 msm_route_ec_ref_rx = 23;
4150 ec_ref_port_id = AFE_PORT_ID_HDMI_OVER_DP_RX;
4151 break;
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05304152 case 24:
4153 msm_route_ec_ref_rx = 24;
4154 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_0;
4155 break;
4156 case 25:
4157 msm_route_ec_ref_rx = 25;
4158 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_1;
4159 break;
4160 case 26:
4161 msm_route_ec_ref_rx = 26;
4162 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_0;
4163 break;
4164 case 27:
4165 msm_route_ec_ref_rx = 27;
4166 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_1;
4167 break;
4168 case 28:
4169 msm_route_ec_ref_rx = 28;
4170 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_2;
4171 break;
Zhou Songb167db12018-07-02 17:14:00 +08004172 case 29:
4173 msm_route_ec_ref_rx = 29;
4174 ec_ref_port_id = SLIMBUS_7_RX;
4175 break;
Aditya Bavanari1e84a932018-06-18 19:40:08 +05304176 case 30:
4177 msm_route_ec_ref_rx = 30;
4178 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_0;
4179 break;
4180 case 31:
4181 msm_route_ec_ref_rx = 31;
4182 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_1;
4183 break;
4184 case 32:
4185 msm_route_ec_ref_rx = 32;
4186 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_2;
4187 break;
4188 case 33:
4189 msm_route_ec_ref_rx = 33;
4190 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_3;
4191 break;
4192 case 34:
4193 msm_route_ec_ref_rx = 34;
4194 ec_ref_port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_0;
4195 break;
Derek Chen2bb55772018-10-24 00:17:15 -07004196 case 35:
4197 msm_route_ec_ref_rx = 35;
4198 ec_ref_port_id = AFE_PORT_ID_TERTIARY_TDM_RX_2;
4199 break;
4200 case 36:
4201 msm_route_ec_ref_rx = 36;
4202 ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
4203 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304204 default:
4205 msm_route_ec_ref_rx = 0; /* NONE */
4206 pr_err("%s EC ref rx %ld not valid\n",
4207 __func__, ucontrol->value.integer.value[0]);
4208 ec_ref_port_id = AFE_PORT_INVALID;
4209 break;
4210 }
Surendar Karkae7507512018-07-20 15:46:54 +05304211 msm_ec_ref_port_id = ec_ref_port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304212 adm_ec_ref_rx_id(ec_ref_port_id);
4213 pr_debug("%s: msm_route_ec_ref_rx = %d\n",
4214 __func__, msm_route_ec_ref_rx);
4215 mutex_unlock(&routing_lock);
4216 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol,
4217 msm_route_ec_ref_rx, e, update);
4218 return 0;
4219}
4220
4221static const char *const ec_ref_rx[] = { "None", "SLIM_RX", "I2S_RX",
4222 "PRI_MI2S_TX", "SEC_MI2S_TX",
4223 "TERT_MI2S_TX", "QUAT_MI2S_TX", "SEC_I2S_RX", "PROXY_RX",
4224 "SLIM_5_RX", "SLIM_1_TX", "QUAT_TDM_TX_1",
4225 "QUAT_TDM_RX_0", "QUAT_TDM_RX_1", "QUAT_TDM_RX_2", "SLIM_6_RX",
4226 "TERT_MI2S_RX", "QUAT_MI2S_RX", "TERT_TDM_TX_0", "USB_AUDIO_RX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05304227 "INT0_MI2S_RX", "INT4_MI2S_RX", "INT3_MI2S_TX", "DISPLAY_PORT",
4228 "WSA_CDC_DMA_RX_0", "WSA_CDC_DMA_RX_1",
Zhou Songb167db12018-07-02 17:14:00 +08004229 "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_2",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05304230 "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 -07004231 "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 +05304232};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304233
4234static const struct soc_enum msm_route_ec_ref_rx_enum[] = {
4235 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rx), ec_ref_rx),
4236};
4237
4238static const struct snd_kcontrol_new ext_ec_ref_mux_ul1 =
4239 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL1 MUX Mux",
4240 msm_route_ec_ref_rx_enum[0],
4241 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4242
4243static const struct snd_kcontrol_new ext_ec_ref_mux_ul2 =
4244 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL2 MUX Mux",
4245 msm_route_ec_ref_rx_enum[0],
4246 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4247
4248static const struct snd_kcontrol_new ext_ec_ref_mux_ul3 =
4249 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL3 MUX Mux",
4250 msm_route_ec_ref_rx_enum[0],
4251 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4252
4253static const struct snd_kcontrol_new ext_ec_ref_mux_ul4 =
4254 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL4 MUX Mux",
4255 msm_route_ec_ref_rx_enum[0],
4256 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4257
4258static const struct snd_kcontrol_new ext_ec_ref_mux_ul5 =
4259 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL5 MUX Mux",
4260 msm_route_ec_ref_rx_enum[0],
4261 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4262
4263static const struct snd_kcontrol_new ext_ec_ref_mux_ul6 =
4264 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL6 MUX Mux",
4265 msm_route_ec_ref_rx_enum[0],
4266 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4267
4268static const struct snd_kcontrol_new ext_ec_ref_mux_ul8 =
4269 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL8 MUX Mux",
4270 msm_route_ec_ref_rx_enum[0],
4271 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4272
4273static const struct snd_kcontrol_new ext_ec_ref_mux_ul9 =
4274 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL9 MUX Mux",
4275 msm_route_ec_ref_rx_enum[0],
4276 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4277
Asish Bhattacharya34504582017-08-08 12:55:01 +05304278static const struct snd_kcontrol_new ext_ec_ref_mux_ul16 =
4279 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL16 MUX Mux",
4280 msm_route_ec_ref_rx_enum[0],
4281 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4282
Laxminath Kasam38070be2017-08-17 18:21:59 +05304283static const struct snd_kcontrol_new ext_ec_ref_mux_ul10 =
4284 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL10 MUX Mux",
4285 msm_route_ec_ref_rx_enum[0],
4286 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4287
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304288static const struct snd_kcontrol_new ext_ec_ref_mux_ul17 =
4289 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL17 MUX Mux",
4290 msm_route_ec_ref_rx_enum[0],
4291 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4292
4293static const struct snd_kcontrol_new ext_ec_ref_mux_ul18 =
4294 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL18 MUX Mux",
4295 msm_route_ec_ref_rx_enum[0],
4296 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4297
4298static const struct snd_kcontrol_new ext_ec_ref_mux_ul19 =
4299 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL19 MUX Mux",
4300 msm_route_ec_ref_rx_enum[0],
4301 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4302
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304303static const struct snd_kcontrol_new ext_ec_ref_mux_ul28 =
4304 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL28 MUX Mux",
4305 msm_route_ec_ref_rx_enum[0],
4306 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4307
4308static const struct snd_kcontrol_new ext_ec_ref_mux_ul29 =
4309 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL29 MUX Mux",
4310 msm_route_ec_ref_rx_enum[0],
4311 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4312
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304313static int msm_routing_ext_ec_get(struct snd_kcontrol *kcontrol,
4314 struct snd_ctl_elem_value *ucontrol)
4315{
4316 pr_debug("%s: ext_ec_ref_rx = %x\n", __func__, msm_route_ext_ec_ref);
4317
4318 mutex_lock(&routing_lock);
4319 ucontrol->value.integer.value[0] = msm_route_ext_ec_ref;
4320 mutex_unlock(&routing_lock);
4321 return 0;
4322}
4323
4324static int msm_routing_ext_ec_put(struct snd_kcontrol *kcontrol,
4325 struct snd_ctl_elem_value *ucontrol)
4326{
Asish Bhattacharya34504582017-08-08 12:55:01 +05304327 struct snd_soc_dapm_widget *widget =
4328 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304329 int mux = ucontrol->value.enumerated.item[0];
4330 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
4331 int ret = 1;
4332 bool state = true;
4333 uint16_t ext_ec_ref_port_id;
4334 struct snd_soc_dapm_update *update = NULL;
4335
4336 if (mux >= e->items) {
4337 pr_err("%s: Invalid mux value %d\n", __func__, mux);
4338 return -EINVAL;
4339 }
4340
4341 mutex_lock(&routing_lock);
4342 msm_route_ext_ec_ref = ucontrol->value.integer.value[0];
4343
4344 switch (msm_route_ext_ec_ref) {
4345 case EXT_EC_REF_PRI_MI2S_TX:
4346 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
4347 break;
4348 case EXT_EC_REF_SEC_MI2S_TX:
4349 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
4350 break;
4351 case EXT_EC_REF_TERT_MI2S_TX:
4352 ext_ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
4353 break;
4354 case EXT_EC_REF_QUAT_MI2S_TX:
4355 ext_ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
4356 break;
4357 case EXT_EC_REF_QUIN_MI2S_TX:
4358 ext_ec_ref_port_id = AFE_PORT_ID_QUINARY_MI2S_TX;
4359 break;
4360 case EXT_EC_REF_SLIM_1_TX:
4361 ext_ec_ref_port_id = SLIMBUS_1_TX;
4362 break;
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004363 case EXT_EC_REF_SEC_TDM_TX:
4364 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
4365 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304366 case EXT_EC_REF_NONE:
4367 default:
4368 ext_ec_ref_port_id = AFE_PORT_INVALID;
4369 state = false;
4370 break;
4371 }
4372
4373 pr_debug("%s: val = %d ext_ec_ref_port_id = 0x%0x state = %d\n",
4374 __func__, msm_route_ext_ec_ref, ext_ec_ref_port_id, state);
4375
4376 if (!voc_set_ext_ec_ref_port_id(ext_ec_ref_port_id, state)) {
4377 mutex_unlock(&routing_lock);
4378 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol, mux, e,
4379 update);
4380 } else {
4381 ret = -EINVAL;
4382 mutex_unlock(&routing_lock);
4383 }
4384 return ret;
4385}
4386
4387static const char * const ext_ec_ref_rx[] = {"NONE", "PRI_MI2S_TX",
4388 "SEC_MI2S_TX", "TERT_MI2S_TX",
4389 "QUAT_MI2S_TX", "QUIN_MI2S_TX",
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004390 "SLIM_1_TX", "SEC_TDM_TX"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304391
4392static const struct soc_enum msm_route_ext_ec_ref_rx_enum[] = {
4393 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ext_ec_ref_rx), ext_ec_ref_rx),
4394};
4395
4396static const struct snd_kcontrol_new voc_ext_ec_mux =
4397 SOC_DAPM_ENUM_EXT("VOC_EXT_EC MUX Mux", msm_route_ext_ec_ref_rx_enum[0],
4398 msm_routing_ext_ec_get, msm_routing_ext_ec_put);
4399
4400
4401static const struct snd_kcontrol_new pri_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004402 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4403 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304404 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4405 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004406 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4407 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304408 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004410 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4411 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304412 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004414 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4415 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304416 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4417 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004418 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4419 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304420 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004422 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4423 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304424 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4425 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004426 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4427 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304428 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4429 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004430 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4431 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304432 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4433 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004434 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4435 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304436 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004438 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4439 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304440 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004442 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4443 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304444 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004446 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4447 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304448 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004450 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4451 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304452 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004454 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4455 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304456 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004458 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4459 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304460 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004462 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4463 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304464 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004466 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4467 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304468 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004470 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4471 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304472 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004474 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4475 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304476 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4477 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304478 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4479 MSM_BACKEND_DAI_PRI_I2S_RX,
4480 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004482 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4483 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304484 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004486 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4487 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304488 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4489 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304490};
4491
4492static const struct snd_kcontrol_new sec_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004493 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4494 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304495 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004497 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4498 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304499 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004501 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4502 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304503 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004505 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4506 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304507 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004509 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4510 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304511 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004513 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4514 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304515 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004517 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4518 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304519 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004521 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4522 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304523 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004525 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4526 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304527 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004529 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4530 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304531 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004533 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4534 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304535 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004537 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4538 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304539 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004541 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4542 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304543 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004545 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4546 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304547 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004549 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4550 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304551 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004553 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4554 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304555 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004557 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4558 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304559 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004561 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4562 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304563 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004565 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4566 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304567 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4568 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304569 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4570 MSM_BACKEND_DAI_SEC_I2S_RX,
4571 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004573 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4574 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304575 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004577 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4578 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304579 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4580 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304581};
4582
Ralf Herzc8701f72018-06-20 11:37:35 +02004583static const struct snd_kcontrol_new pri_spdif_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004584 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004585 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304586 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004588 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004589 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304590 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004592 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004593 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304594 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004596 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004597 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304598 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004600 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004601 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304602 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004604 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004605 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304606 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004608 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004609 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304610 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004612 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004613 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304614 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4615 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004616 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004617 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304618 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4619 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004620 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004621 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304622 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4623 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004624 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004625 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304626 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4627 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004628 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004629 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304630 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4631 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004632 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004633 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304634 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4635 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004636 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004637 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304638 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4639 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004640 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004641 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304642 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4643 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004644 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004645 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304646 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4647 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004648 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004649 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304650 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4651 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004652 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004653 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304654 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4655 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004656 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004657 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304658 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4659 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304660 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4661 MSM_BACKEND_DAI_PRI_SPDIF_RX,
4662 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4663 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004664 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004665 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304666 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4667 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004668 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004669 MSM_BACKEND_DAI_PRI_SPDIF_RX,
4670 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4671 msm_routing_put_audio_mixer),
4672};
4673
4674static const struct snd_kcontrol_new sec_spdif_rx_mixer_controls[] = {
4675 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4676 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4677 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4678 msm_routing_put_audio_mixer),
4679 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4680 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4681 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4682 msm_routing_put_audio_mixer),
4683 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4684 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4685 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4686 msm_routing_put_audio_mixer),
4687 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4688 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4689 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4690 msm_routing_put_audio_mixer),
4691 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4692 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4693 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4694 msm_routing_put_audio_mixer),
4695 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4696 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4697 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4698 msm_routing_put_audio_mixer),
4699 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4700 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4701 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4702 msm_routing_put_audio_mixer),
4703 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4704 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4705 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4706 msm_routing_put_audio_mixer),
4707 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4708 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4709 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4710 msm_routing_put_audio_mixer),
4711 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4712 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4713 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4714 msm_routing_put_audio_mixer),
4715 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4716 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4717 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4718 msm_routing_put_audio_mixer),
4719 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4720 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4721 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4722 msm_routing_put_audio_mixer),
4723 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4724 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4725 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4726 msm_routing_put_audio_mixer),
4727 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4728 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4729 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4730 msm_routing_put_audio_mixer),
4731 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4732 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4733 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4734 msm_routing_put_audio_mixer),
4735 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4736 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4737 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4738 msm_routing_put_audio_mixer),
4739 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4740 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4741 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4742 msm_routing_put_audio_mixer),
4743 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4744 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4745 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4746 msm_routing_put_audio_mixer),
4747 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4748 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4749 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4750 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304751 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4752 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4753 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4754 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02004755 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4756 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4757 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4758 msm_routing_put_audio_mixer),
4759 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4760 MSM_BACKEND_DAI_SEC_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304761 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4762 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304763};
4764
4765static const struct snd_kcontrol_new slimbus_2_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004766 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4767 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304768 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004770 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4771 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304772 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004774 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4775 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304776 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004778 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4779 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304780 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004782 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4783 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304784 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4785 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004786 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4787 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304788 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004790 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4791 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304792 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004794 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4795 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304796 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004798 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4799 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304800 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004802 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4803 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304804 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004806 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4807 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304808 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004810 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4811 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304812 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4813 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004814 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4815 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304816 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4817 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004818 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4819 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304820 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4821 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004822 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4823 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304824 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4825 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004826 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4827 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304828 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4829 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304830 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4831 MSM_BACKEND_DAI_SLIMBUS_2_RX,
4832 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4833 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304834};
4835
4836static const struct snd_kcontrol_new slimbus_5_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004837 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4838 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304839 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004841 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4842 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304843 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004845 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4846 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304847 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004849 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4850 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304851 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004853 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4854 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304855 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004857 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4858 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304859 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004861 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4862 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304863 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004865 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4866 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304867 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4868 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004869 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4870 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304871 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004873 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4874 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304875 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004877 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4878 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304879 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004881 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4882 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304883 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4884 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004885 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4886 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304887 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4888 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004889 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4890 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304891 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4892 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004893 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4894 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304895 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4896 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004897 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4898 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304899 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4900 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004901 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4902 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304903 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4904 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004905 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4906 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304907 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4908 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004909 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4910 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304911 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4912 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304913 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4914 MSM_BACKEND_DAI_SLIMBUS_5_RX,
4915 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4916 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004917 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4918 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304919 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004921 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4922 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304923 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4924 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304925};
4926
4927static const struct snd_kcontrol_new slimbus_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004928 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4929 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304930 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4931 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004932 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4933 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304934 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004936 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4937 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304938 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004940 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4941 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304942 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004944 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4945 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304946 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4947 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004948 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4949 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304950 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4951 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004952 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4953 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304954 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004956 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4957 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304958 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004960 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4961 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304962 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4963 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004964 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4965 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304966 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4967 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004968 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4969 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304970 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4971 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004972 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4973 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304974 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004976 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4977 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304978 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004980 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4981 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304982 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004984 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4985 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304986 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004988 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4989 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304990 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004992 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4993 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304994 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004996 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4997 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304998 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005000 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5001 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305002 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5003 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305004 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5005 MSM_BACKEND_DAI_SLIMBUS_0_RX,
5006 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005008 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5009 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305010 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005012 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5013 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305014 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5015 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305016};
5017
5018static const struct snd_kcontrol_new mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005019 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5020 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305021 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5022 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005023 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5024 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305025 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5026 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005027 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5028 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305029 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5030 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005031 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5032 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305033 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5034 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005035 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5036 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305037 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5038 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005039 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5040 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305041 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5042 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005043 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5044 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305045 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5046 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005047 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5048 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305049 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5050 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005051 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5052 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305053 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5054 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005055 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5056 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305057 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5058 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005059 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5060 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305061 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005063 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5064 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305065 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5066 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005067 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5068 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305069 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5070 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005071 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5072 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305073 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5074 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005075 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5076 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305077 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5078 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005079 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5080 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305081 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005083 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5084 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305085 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005087 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5088 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305089 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005091 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5092 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305093 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5094 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305095 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5096 MSM_BACKEND_DAI_MI2S_RX,
5097 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005099 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5100 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305101 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005103 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5104 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305105 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5106 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305107};
5108
5109static const struct snd_kcontrol_new quaternary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005110 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5111 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305112 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5113 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005114 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5115 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305116 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005118 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5119 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305120 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005122 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5123 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305124 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005126 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5127 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305128 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005130 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5131 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305132 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005134 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5135 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305136 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5137 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005138 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5139 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305140 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5141 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005142 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5143 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305144 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5145 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005146 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5147 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305148 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5149 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005150 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5151 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305152 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5153 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005154 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5155 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305156 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005158 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5159 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305160 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005162 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5163 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305164 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005166 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5167 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305168 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005170 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5171 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305172 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005174 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5175 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305176 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005178 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5179 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305180 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005182 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5183 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305184 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5185 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305186 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5187 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
5188 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005190 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5191 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305192 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005194 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5195 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305196 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5197 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305198};
5199
5200static const struct snd_kcontrol_new quinary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005201 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5202 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305203 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005205 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5206 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305207 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005209 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5210 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305211 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005213 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5214 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305215 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005217 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5218 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305219 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005221 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5222 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305223 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005225 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5226 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305227 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005229 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5230 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305231 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005233 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5234 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305235 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005237 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5238 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305239 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005241 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5242 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305243 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5244 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005245 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5246 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305247 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5248 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005249 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5250 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305251 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5252 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005253 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5254 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305255 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5256 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005257 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5258 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305259 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005261 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5262 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305263 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005265 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5266 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305267 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005269 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5270 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305271 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5272 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005273 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5274 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305275 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5276 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305277 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5278 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
5279 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005281 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5282 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305283 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5284 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005285 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5286 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305287 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5288 msm_routing_put_audio_mixer),
5289
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305290};
5291
5292static const struct snd_kcontrol_new tertiary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005293 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5294 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305295 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005297 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5298 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305299 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5300 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005301 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5302 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305303 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5304 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005305 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5306 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305307 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005309 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5310 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305311 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005313 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5314 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305315 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005317 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5318 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305319 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005321 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5322 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305323 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5324 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005325 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5326 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305327 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005329 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5330 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305331 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5332 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005333 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5334 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305335 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005337 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5338 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305339 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5340 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005341 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5342 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305343 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5344 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005345 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5346 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305347 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005349 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5350 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305351 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005353 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5354 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305355 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005357 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5358 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305359 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5360 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305361 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5362 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
5363 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005365 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5366 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305367 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005369 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5370 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305371 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5372 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305373};
5374
5375static const struct snd_kcontrol_new secondary_mi2s_rx2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005376 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5377 MSM_BACKEND_DAI_SECONDARY_MI2S_RX_SD1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305378 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5379 msm_routing_put_audio_mixer),
5380};
5381
5382static const struct snd_kcontrol_new secondary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005383 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5384 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305385 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005387 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5388 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305389 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005391 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5392 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305393 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005395 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5396 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305397 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005399 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5400 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305401 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005403 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5404 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305405 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005407 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5408 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305409 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005411 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5412 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305413 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5414 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005415 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5416 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305417 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5418 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005419 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5420 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305421 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5422 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005423 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5424 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305425 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5426 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005427 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5428 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305429 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5430 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005431 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5432 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305433 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5434 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005435 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5436 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305437 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5438 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005439 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5440 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305441 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5442 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005443 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5444 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305445 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5446 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005447 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5448 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305449 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5450 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005451 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5452 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305453 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5454 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005455 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5456 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305457 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5458 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305459 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5460 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
5461 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5462 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005463 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5464 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305465 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5466 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005467 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5468 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305469 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5470 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305471};
5472
5473static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005474 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5475 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305476 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005478 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5479 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305480 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005482 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5483 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305484 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005486 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5487 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305488 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005490 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5491 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305492 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005494 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5495 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305496 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5497 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005498 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5499 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305500 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5501 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005502 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5503 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305504 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5505 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005506 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5507 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305508 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5509 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005510 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5511 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305512 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5513 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005514 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5515 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305516 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5517 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005518 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5519 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305520 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5521 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005522 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5523 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305524 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5525 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005526 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5527 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305528 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005530 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5531 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305532 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5533 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005534 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5535 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305536 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5537 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005538 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5539 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305540 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5541 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005542 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5543 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305544 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5545 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005546 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5547 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305548 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5549 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305550 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5551 MSM_BACKEND_DAI_PRI_MI2S_RX,
5552 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5553 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005554 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5555 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305556 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5557 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005558 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5559 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305560 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5561 msm_routing_put_audio_mixer),
5562
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305563};
5564
5565static const struct snd_kcontrol_new int0_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005566 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5567 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305568 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005570 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5571 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305572 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005574 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5575 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305576 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005578 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5579 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305580 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005582 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5583 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305584 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005586 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5587 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305588 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5589 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005590 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5591 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305592 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005594 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5595 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305596 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005598 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5599 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305600 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005602 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5603 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305604 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5605 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005606 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5607 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305608 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005610 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5611 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305612 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5613 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005614 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5615 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305616 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5617 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005618 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5619 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305620 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005622 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5623 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305624 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005626 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5627 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305628 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5629 msm_routing_put_audio_mixer),
5630};
5631
5632static const struct snd_kcontrol_new int4_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005633 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5634 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305635 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005637 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5638 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305639 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005641 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5642 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305643 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005645 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5646 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305647 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005649 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5650 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305651 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005653 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5654 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305655 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005657 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5658 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305659 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005661 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5662 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305663 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5664 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005665 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5666 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305667 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5668 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005669 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5670 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305671 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005673 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5674 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305675 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005677 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5678 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305679 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005681 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5682 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305683 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005685 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5686 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305687 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005689 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5690 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305691 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005693 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5694 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305695 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5696 msm_routing_put_audio_mixer),
5697};
5698
5699static const struct snd_kcontrol_new hdmi_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005700 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5701 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305702 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5703 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005704 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5705 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305706 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5707 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005708 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5709 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305710 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5711 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005712 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5713 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305714 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5715 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005716 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5717 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305718 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5719 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005720 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5721 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305722 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5723 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005724 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5725 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305726 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5727 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005728 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5729 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305730 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5731 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005732 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5733 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305734 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5735 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005736 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5737 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305738 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5739 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005740 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5741 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305742 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5743 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005744 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5745 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305746 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5747 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005748 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5749 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305750 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5751 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005752 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5753 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305754 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5755 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005756 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5757 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305758 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5759 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005760 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5761 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305762 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5763 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005764 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5765 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305766 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5767 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005768 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5769 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305770 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5771 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005772 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5773 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305774 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5775 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305776 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5777 MSM_BACKEND_DAI_HDMI_RX,
5778 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005780 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5781 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305782 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005784 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5785 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305786 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5787 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305788};
5789
5790static const struct snd_kcontrol_new display_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005791 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5792 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305793 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005795 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5796 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305797 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005799 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5800 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305801 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005803 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5804 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305805 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005807 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5808 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305809 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005811 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5812 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305813 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005815 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5816 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305817 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005819 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5820 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305821 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005823 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5824 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305825 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005827 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5828 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305829 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005831 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5832 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305833 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5834 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005835 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5836 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305837 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005839 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5840 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305841 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005843 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5844 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305845 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005847 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5848 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305849 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005851 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5852 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305853 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5854 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305855 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5856 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
5857 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5858 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305859};
5860
Karthikeyan Mani57550082018-05-03 18:43:58 -07005861static const struct snd_kcontrol_new display_port1_mixer_controls[] = {
5862 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5863 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5864 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5865 msm_routing_put_audio_mixer),
5866 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5867 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5868 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5869 msm_routing_put_audio_mixer),
5870 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5871 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5872 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5873 msm_routing_put_audio_mixer),
5874 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5875 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5876 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5877 msm_routing_put_audio_mixer),
5878 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5879 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5880 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5881 msm_routing_put_audio_mixer),
5882 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5883 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5884 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5885 msm_routing_put_audio_mixer),
5886 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5887 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5888 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5889 msm_routing_put_audio_mixer),
5890 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5891 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5892 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5893 msm_routing_put_audio_mixer),
5894 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5895 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5896 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5897 msm_routing_put_audio_mixer),
5898 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5899 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5900 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5901 msm_routing_put_audio_mixer),
5902 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5903 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5904 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5905 msm_routing_put_audio_mixer),
5906 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5907 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5908 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5909 msm_routing_put_audio_mixer),
5910 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5911 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5912 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5913 msm_routing_put_audio_mixer),
5914 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5915 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5916 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5917 msm_routing_put_audio_mixer),
5918 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5919 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5920 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5921 msm_routing_put_audio_mixer),
5922 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5923 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5924 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5925 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305926 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5927 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5928 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5929 msm_routing_put_audio_mixer),
Karthikeyan Mani57550082018-05-03 18:43:58 -07005930};
5931
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305932 /* incall music delivery mixer */
5933static const struct snd_kcontrol_new incall_music_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005934 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5935 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305936 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5937 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005938 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5939 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305940 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5941 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005942 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5943 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305944 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005946 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5947 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305948 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5949 msm_routing_put_audio_mixer),
5950};
5951
5952static const struct snd_kcontrol_new incall_music2_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005953 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5954 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305955 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5956 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005957 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5958 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305959 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5960 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005961 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5962 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305963 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5964 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005965 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5966 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305967 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5968 msm_routing_put_audio_mixer),
5969};
5970
5971static const struct snd_kcontrol_new slimbus_4_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005972 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5973 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305974 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005976 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5977 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305978 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005980 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5981 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305982 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005984 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5985 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305986 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5987 msm_routing_put_audio_mixer),
5988};
5989
5990static const struct snd_kcontrol_new slimbus_6_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005991 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5992 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305993 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005995 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5996 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305997 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005999 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6000 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306001 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006003 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6004 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306005 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6006 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006007 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6008 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306009 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6010 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006011 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6012 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306013 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6014 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006015 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6016 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306017 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6018 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006019 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6020 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306021 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6022 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006023 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6024 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306025 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6026 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006027 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6028 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306029 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6030 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006031 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6032 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306033 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6034 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006035 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6036 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306037 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6038 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006039 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6040 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306041 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6042 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006043 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6044 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306045 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6046 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006047 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6048 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306049 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6050 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006051 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6052 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306053 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6054 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306055 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6056 MSM_BACKEND_DAI_SLIMBUS_6_RX,
6057 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6058 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306059};
6060
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05306061static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_mixer_controls[] = {
6062 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6063 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6064 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6065 msm_routing_put_audio_mixer),
6066 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6067 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6068 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6069 msm_routing_put_audio_mixer),
6070 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6071 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6072 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6073 msm_routing_put_audio_mixer),
6074 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6075 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6076 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6077 msm_routing_put_audio_mixer),
6078 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6079 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6080 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6081 msm_routing_put_audio_mixer),
6082 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6083 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6084 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6085 msm_routing_put_audio_mixer),
6086 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6087 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6088 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6089 msm_routing_put_audio_mixer),
6090 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6091 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6092 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6093 msm_routing_put_audio_mixer),
6094 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6095 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6096 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6097 msm_routing_put_audio_mixer),
6098 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6099 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6100 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6101 msm_routing_put_audio_mixer),
6102 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6103 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6104 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6105 msm_routing_put_audio_mixer),
6106 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6107 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6108 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6109 msm_routing_put_audio_mixer),
6110 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6111 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6112 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6113 msm_routing_put_audio_mixer),
6114 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6115 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6116 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6117 msm_routing_put_audio_mixer),
6118 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6119 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6120 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6121 msm_routing_put_audio_mixer),
6122 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6123 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6124 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6125 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306126 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6127 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6128 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6129 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05306130};
6131
6132static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_mixer_controls[] = {
6133 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6134 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6135 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6136 msm_routing_put_audio_mixer),
6137 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6138 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6139 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6140 msm_routing_put_audio_mixer),
6141 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6142 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6143 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6144 msm_routing_put_audio_mixer),
6145 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6146 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6147 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6148 msm_routing_put_audio_mixer),
6149 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6150 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6151 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6152 msm_routing_put_audio_mixer),
6153 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6154 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6155 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6156 msm_routing_put_audio_mixer),
6157 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6158 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6159 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6160 msm_routing_put_audio_mixer),
6161 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6162 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6163 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6164 msm_routing_put_audio_mixer),
6165 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6166 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6167 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6168 msm_routing_put_audio_mixer),
6169 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6170 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6171 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6172 msm_routing_put_audio_mixer),
6173 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6174 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6175 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6176 msm_routing_put_audio_mixer),
6177 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6178 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6179 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6180 msm_routing_put_audio_mixer),
6181 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6182 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6183 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6184 msm_routing_put_audio_mixer),
6185 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6186 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6187 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6188 msm_routing_put_audio_mixer),
6189 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6190 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6191 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6192 msm_routing_put_audio_mixer),
6193 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6194 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6195 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6196 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306197 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6198 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6199 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6200 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05306201};
6202
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306203static const struct snd_kcontrol_new rx_cdc_dma_rx_0_mixer_controls[] = {
6204 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6205 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6206 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6207 msm_routing_put_audio_mixer),
6208 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6209 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6210 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6211 msm_routing_put_audio_mixer),
6212 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6213 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6214 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6215 msm_routing_put_audio_mixer),
6216 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6217 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6218 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6219 msm_routing_put_audio_mixer),
6220 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6221 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6222 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6223 msm_routing_put_audio_mixer),
6224 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6225 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6226 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6227 msm_routing_put_audio_mixer),
6228 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6229 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6230 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6231 msm_routing_put_audio_mixer),
6232 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6233 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6234 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6235 msm_routing_put_audio_mixer),
6236 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6237 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6238 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6239 msm_routing_put_audio_mixer),
6240 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6241 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6242 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6243 msm_routing_put_audio_mixer),
6244 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6245 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6246 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6247 msm_routing_put_audio_mixer),
6248 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6249 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6250 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6251 msm_routing_put_audio_mixer),
6252 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6253 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6254 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6255 msm_routing_put_audio_mixer),
6256 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6257 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6258 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6259 msm_routing_put_audio_mixer),
6260 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6261 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6262 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6263 msm_routing_put_audio_mixer),
6264 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6265 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6266 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6267 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306268 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6269 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6270 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6271 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306272};
6273
6274static const struct snd_kcontrol_new rx_cdc_dma_rx_1_mixer_controls[] = {
6275 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6276 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6277 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6278 msm_routing_put_audio_mixer),
6279 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6280 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6281 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6282 msm_routing_put_audio_mixer),
6283 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6284 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6285 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6286 msm_routing_put_audio_mixer),
6287 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6288 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6289 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6290 msm_routing_put_audio_mixer),
6291 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6292 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6293 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6294 msm_routing_put_audio_mixer),
6295 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6296 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6297 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6298 msm_routing_put_audio_mixer),
6299 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6300 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6301 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6302 msm_routing_put_audio_mixer),
6303 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6304 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6305 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6306 msm_routing_put_audio_mixer),
6307 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6308 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6309 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6310 msm_routing_put_audio_mixer),
6311 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6312 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6313 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6314 msm_routing_put_audio_mixer),
6315 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6316 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6317 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6318 msm_routing_put_audio_mixer),
6319 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6320 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6321 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6322 msm_routing_put_audio_mixer),
6323 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6324 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6325 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6326 msm_routing_put_audio_mixer),
6327 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6328 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6329 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6330 msm_routing_put_audio_mixer),
6331 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6332 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6333 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6334 msm_routing_put_audio_mixer),
6335 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6336 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6337 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6338 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306339 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6340 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6341 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6342 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306343};
6344
6345static const struct snd_kcontrol_new rx_cdc_dma_rx_2_mixer_controls[] = {
6346 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6347 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6348 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6349 msm_routing_put_audio_mixer),
6350 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6351 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6352 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6353 msm_routing_put_audio_mixer),
6354 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6355 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6356 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6357 msm_routing_put_audio_mixer),
6358 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6359 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6360 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6361 msm_routing_put_audio_mixer),
6362 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6363 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6364 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6365 msm_routing_put_audio_mixer),
6366 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6367 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6368 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6369 msm_routing_put_audio_mixer),
6370 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6371 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6372 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6373 msm_routing_put_audio_mixer),
6374 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6375 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6376 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6377 msm_routing_put_audio_mixer),
6378 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6379 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6380 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6381 msm_routing_put_audio_mixer),
6382 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6383 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6384 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6385 msm_routing_put_audio_mixer),
6386 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6387 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6388 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6389 msm_routing_put_audio_mixer),
6390 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6391 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6392 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6393 msm_routing_put_audio_mixer),
6394 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6395 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6396 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6397 msm_routing_put_audio_mixer),
6398 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6399 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6400 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6401 msm_routing_put_audio_mixer),
6402 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6403 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6404 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6405 msm_routing_put_audio_mixer),
6406 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6407 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6408 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6409 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306410 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6411 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6412 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6413 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306414};
6415
6416static const struct snd_kcontrol_new rx_cdc_dma_rx_3_mixer_controls[] = {
6417 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6418 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6419 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6420 msm_routing_put_audio_mixer),
6421 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6422 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6423 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6424 msm_routing_put_audio_mixer),
6425 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6426 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6427 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6428 msm_routing_put_audio_mixer),
6429 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6430 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6431 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6432 msm_routing_put_audio_mixer),
6433 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6434 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6435 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6436 msm_routing_put_audio_mixer),
6437 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6438 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6439 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6440 msm_routing_put_audio_mixer),
6441 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6442 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6443 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6444 msm_routing_put_audio_mixer),
6445 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6446 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6447 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6448 msm_routing_put_audio_mixer),
6449 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6450 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6451 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6452 msm_routing_put_audio_mixer),
6453 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6454 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6455 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6456 msm_routing_put_audio_mixer),
6457 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6458 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6459 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6460 msm_routing_put_audio_mixer),
6461 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6462 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6463 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6464 msm_routing_put_audio_mixer),
6465 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6466 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6467 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6468 msm_routing_put_audio_mixer),
6469 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6470 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6471 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6472 msm_routing_put_audio_mixer),
6473 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6474 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6475 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6476 msm_routing_put_audio_mixer),
6477 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6478 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6479 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6480 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306481 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6482 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6483 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6484 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306485};
6486
6487static const struct snd_kcontrol_new rx_cdc_dma_rx_4_mixer_controls[] = {
6488 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6489 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6490 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6491 msm_routing_put_audio_mixer),
6492 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6493 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6494 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6495 msm_routing_put_audio_mixer),
6496 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6497 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6498 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6499 msm_routing_put_audio_mixer),
6500 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6501 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6502 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6503 msm_routing_put_audio_mixer),
6504 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6505 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6506 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6507 msm_routing_put_audio_mixer),
6508 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6509 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6510 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6511 msm_routing_put_audio_mixer),
6512 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6513 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6514 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6515 msm_routing_put_audio_mixer),
6516 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6517 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6518 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6519 msm_routing_put_audio_mixer),
6520 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6521 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6522 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6523 msm_routing_put_audio_mixer),
6524 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6525 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6526 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6527 msm_routing_put_audio_mixer),
6528 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6529 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6530 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6531 msm_routing_put_audio_mixer),
6532 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6533 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6534 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6535 msm_routing_put_audio_mixer),
6536 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6537 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6538 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6539 msm_routing_put_audio_mixer),
6540 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6541 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6542 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6543 msm_routing_put_audio_mixer),
6544 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6545 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6546 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6547 msm_routing_put_audio_mixer),
6548 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6549 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6550 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6551 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306552 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6553 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6554 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6555 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306556};
6557
6558static const struct snd_kcontrol_new rx_cdc_dma_rx_5_mixer_controls[] = {
6559 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6560 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6561 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6562 msm_routing_put_audio_mixer),
6563 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6564 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6565 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6566 msm_routing_put_audio_mixer),
6567 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6568 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6569 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6570 msm_routing_put_audio_mixer),
6571 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6572 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6573 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6574 msm_routing_put_audio_mixer),
6575 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6576 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6577 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6578 msm_routing_put_audio_mixer),
6579 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6580 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6581 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6582 msm_routing_put_audio_mixer),
6583 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6584 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6585 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6586 msm_routing_put_audio_mixer),
6587 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6588 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6589 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6590 msm_routing_put_audio_mixer),
6591 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6592 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6593 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6594 msm_routing_put_audio_mixer),
6595 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6596 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6597 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6598 msm_routing_put_audio_mixer),
6599 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6600 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6601 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6602 msm_routing_put_audio_mixer),
6603 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6604 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6605 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6606 msm_routing_put_audio_mixer),
6607 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6608 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6609 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6610 msm_routing_put_audio_mixer),
6611 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6612 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6613 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6614 msm_routing_put_audio_mixer),
6615 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6616 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6617 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6618 msm_routing_put_audio_mixer),
6619 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6620 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6621 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6622 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306623 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6624 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6625 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6626 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306627};
6628
6629static const struct snd_kcontrol_new rx_cdc_dma_rx_6_mixer_controls[] = {
6630 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6631 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6632 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6633 msm_routing_put_audio_mixer),
6634 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6635 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6636 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6637 msm_routing_put_audio_mixer),
6638 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6639 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6640 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6641 msm_routing_put_audio_mixer),
6642 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6643 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6644 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6645 msm_routing_put_audio_mixer),
6646 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6647 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6648 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6649 msm_routing_put_audio_mixer),
6650 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6651 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6652 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6653 msm_routing_put_audio_mixer),
6654 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6655 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6656 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6657 msm_routing_put_audio_mixer),
6658 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6659 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6660 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6661 msm_routing_put_audio_mixer),
6662 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6663 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6664 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6665 msm_routing_put_audio_mixer),
6666 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6667 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6668 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6669 msm_routing_put_audio_mixer),
6670 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6671 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6672 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6673 msm_routing_put_audio_mixer),
6674 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6675 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6676 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6677 msm_routing_put_audio_mixer),
6678 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6679 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6680 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6681 msm_routing_put_audio_mixer),
6682 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6683 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6684 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6685 msm_routing_put_audio_mixer),
6686 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6687 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6688 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6689 msm_routing_put_audio_mixer),
6690 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6691 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6692 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6693 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306694 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6695 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6696 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6697 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306698};
6699
6700static const struct snd_kcontrol_new rx_cdc_dma_rx_7_mixer_controls[] = {
6701 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6702 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6703 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6704 msm_routing_put_audio_mixer),
6705 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6706 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6707 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6708 msm_routing_put_audio_mixer),
6709 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6710 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6711 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6712 msm_routing_put_audio_mixer),
6713 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6714 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6715 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6716 msm_routing_put_audio_mixer),
6717 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6718 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6719 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6720 msm_routing_put_audio_mixer),
6721 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6722 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6723 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6724 msm_routing_put_audio_mixer),
6725 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6726 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6727 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6728 msm_routing_put_audio_mixer),
6729 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6730 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6731 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6732 msm_routing_put_audio_mixer),
6733 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6734 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6735 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6736 msm_routing_put_audio_mixer),
6737 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6738 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6739 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6740 msm_routing_put_audio_mixer),
6741 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6742 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6743 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6744 msm_routing_put_audio_mixer),
6745 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6746 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6747 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6748 msm_routing_put_audio_mixer),
6749 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6750 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6751 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6752 msm_routing_put_audio_mixer),
6753 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6754 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6755 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6756 msm_routing_put_audio_mixer),
6757 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6758 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6759 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6760 msm_routing_put_audio_mixer),
6761 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6762 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6763 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6764 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306765 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6766 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6767 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6768 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306769};
6770
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306771static const struct snd_kcontrol_new slimbus_7_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006772 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6773 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306774 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6775 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006776 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6777 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306778 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006780 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6781 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306782 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006784 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6785 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306786 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006788 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6789 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306790 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006792 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6793 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306794 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6795 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006796 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6797 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306798 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6799 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006800 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6801 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306802 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006804 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6805 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306806 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006808 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6809 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306810 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006812 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6813 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306814 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006816 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6817 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306818 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6819 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006820 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6821 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306822 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6823 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006824 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6825 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306826 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006828 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6829 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306830 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006832 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6833 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306834 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6835 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306836 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6837 MSM_BACKEND_DAI_SLIMBUS_7_RX,
6838 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6839 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306840};
6841
Surendar Karka3ef3d812018-09-28 18:52:35 +05306842static const struct snd_kcontrol_new slimbus_9_rx_mixer_controls[] = {
6843 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6844 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6845 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6846 msm_routing_put_audio_mixer),
6847 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6848 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6849 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6850 msm_routing_put_audio_mixer),
6851 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6852 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6853 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6854 msm_routing_put_audio_mixer),
6855 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6856 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6857 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6858 msm_routing_put_audio_mixer),
6859 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6860 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6861 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6862 msm_routing_put_audio_mixer),
6863 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6864 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6865 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6866 msm_routing_put_audio_mixer),
6867 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6868 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6869 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6870 msm_routing_put_audio_mixer),
6871 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6872 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6873 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6874 msm_routing_put_audio_mixer),
6875 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6876 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6877 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6878 msm_routing_put_audio_mixer),
6879 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6880 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6881 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6882 msm_routing_put_audio_mixer),
6883 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6884 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6885 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6886 msm_routing_put_audio_mixer),
6887 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6888 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6889 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6890 msm_routing_put_audio_mixer),
6891 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6892 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6893 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6894 msm_routing_put_audio_mixer),
6895 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6896 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6897 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6898 msm_routing_put_audio_mixer),
6899 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6900 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6901 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6902 msm_routing_put_audio_mixer),
6903 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6904 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6905 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6906 msm_routing_put_audio_mixer),
6907 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6908 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6909 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6910 msm_routing_put_audio_mixer),
6911};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306912static const struct snd_kcontrol_new usb_audio_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006913 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6914 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306915 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6916 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006917 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6918 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306919 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006921 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6922 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306923 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6924 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006925 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6926 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306927 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6928 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006929 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6930 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306931 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6932 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006933 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6934 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306935 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6936 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006937 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6938 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306939 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6940 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006941 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6942 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306943 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6944 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006945 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6946 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306947 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6948 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006949 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6950 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306951 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6952 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006953 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6954 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306955 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6956 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006957 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6958 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306959 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6960 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006961 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6962 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306963 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6964 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006965 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6966 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306967 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006969 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6970 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306971 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6972 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006973 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6974 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306975 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6976 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306977 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6978 MSM_BACKEND_DAI_USB_RX,
6979 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6980 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306981};
6982
6983static const struct snd_kcontrol_new int_bt_sco_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006984 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6985 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306986 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006988 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6989 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306990 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006992 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6993 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306994 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006996 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6997 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306998 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007000 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7001 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307002 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007004 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7005 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307006 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007008 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7009 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307010 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007012 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7013 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307014 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007016 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7017 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307018 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007020 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7021 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307022 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007024 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7025 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307026 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007028 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7029 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307030 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007032 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7033 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307034 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007036 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7037 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307038 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007040 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7041 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307042 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7043 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007044 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7045 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307046 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7047 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007048 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7049 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307050 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007052 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7053 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307054 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007056 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7057 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307058 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7059 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307060 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7061 MSM_BACKEND_DAI_INT_BT_SCO_RX,
7062 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007064 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7065 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307066 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007068 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7069 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307070 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7071 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307072};
7073
7074static const struct snd_kcontrol_new int_bt_a2dp_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007075 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7076 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307077 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7078 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007079 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7080 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307081 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007083 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7084 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307085 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007087 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7088 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307089 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007091 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7092 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307093 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007095 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7096 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307097 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007099 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7100 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307101 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007103 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7104 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307105 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007107 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7108 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307109 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7110 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007111 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7112 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307113 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7114 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007115 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7116 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307117 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7118 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007119 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7120 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307121 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7122 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007123 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7124 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307125 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7126 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007127 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7128 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307129 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007131 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7132 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307133 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007135 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7136 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307137 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7138 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307139 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7140 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
7141 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7142 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307143};
7144
7145static const struct snd_kcontrol_new int_fm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007146 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7147 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307148 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7149 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007150 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7151 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307152 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7153 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007154 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7155 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307156 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007158 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7159 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307160 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007162 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7163 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307164 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007166 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7167 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307168 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007170 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7171 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307172 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007174 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7175 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307176 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007178 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7179 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307180 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007182 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7183 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307184 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007186 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7187 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307188 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007190 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7191 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307192 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007194 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7195 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307196 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007198 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7199 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307200 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007202 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7203 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307204 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007206 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7207 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307208 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7209 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007210 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7211 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307212 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7213 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007214 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7215 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307216 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7217 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007218 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7219 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307220 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7221 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307222 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7223 MSM_BACKEND_DAI_INT_FM_RX,
7224 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007226 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7227 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307228 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007230 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7231 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307232 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7233 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307234};
7235
7236static const struct snd_kcontrol_new afe_pcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007237 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7238 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307239 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007241 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7242 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307243 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7244 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007245 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7246 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307247 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7248 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007249 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7250 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307251 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7252 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007253 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7254 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307255 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7256 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007257 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7258 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307259 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007261 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7262 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307263 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007265 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7266 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307267 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007269 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7270 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307271 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7272 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007273 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7274 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307275 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7276 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007277 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7278 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307279 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007281 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7282 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307283 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7284 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007285 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7286 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307287 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7288 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007289 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7290 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307291 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7292 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007293 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7294 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307295 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007297 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7298 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307299 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7300 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007301 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7302 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307303 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7304 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007305 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7306 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307307 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007309 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7310 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307311 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7312 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307313 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7314 MSM_BACKEND_DAI_AFE_PCM_RX,
7315 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007317 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7318 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307319 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007321 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7322 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307323 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7324 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307325};
7326
7327static const struct snd_kcontrol_new auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007328 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7329 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307330 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7331 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007332 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7333 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307334 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7335 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007336 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7337 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307338 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7339 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007340 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7341 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307342 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7343 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007344 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7345 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307346 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7347 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007348 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7349 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307350 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7351 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007352 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7353 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307354 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7355 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007356 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7357 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307358 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7359 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007360 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7361 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307362 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7363 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007364 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7365 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307366 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7367 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007368 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7369 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307370 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7371 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007372 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7373 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307374 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7375 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007376 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7377 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307378 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7379 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007380 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7381 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307382 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7383 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007384 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7385 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307386 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7387 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007388 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7389 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307390 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7391 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007392 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7393 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307394 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7395 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007396 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7397 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307398 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7399 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007400 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7401 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307402 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7403 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007404 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7405 MSM_BACKEND_DAI_AUXPCM_RX,
7406 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7407 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307408 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7409 MSM_BACKEND_DAI_AUXPCM_RX,
7410 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7411 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007412 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7413 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307414 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7415 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007416 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7417 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307418 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7419 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307420};
7421
7422static const struct snd_kcontrol_new sec_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007423 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7424 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307425 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7426 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007427 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7428 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307429 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7430 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007431 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7432 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307433 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7434 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007435 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7436 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307437 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7438 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007439 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7440 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307441 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7442 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007443 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7444 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307445 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7446 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007447 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7448 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307449 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7450 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007451 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7452 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307453 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7454 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007455 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7456 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307457 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7458 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007459 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7460 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307461 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7462 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007463 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7464 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307465 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7466 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007467 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7468 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307469 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7470 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007471 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7472 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307473 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7474 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007475 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7476 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307477 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7478 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007479 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7480 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307481 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007483 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7484 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307485 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007487 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7488 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307489 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7490 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007491 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7492 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307493 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007495 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7496 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307497 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7498 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007499 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7500 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
7501 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7502 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307503 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7504 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
7505 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007507 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7508 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307509 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007511 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7512 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307513 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7514 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307515};
7516
7517static const struct snd_kcontrol_new tert_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007518 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7519 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307520 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7521 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007522 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7523 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307524 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7525 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007526 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7527 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307528 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007530 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7531 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307532 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7533 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007534 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7535 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307536 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7537 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007538 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7539 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307540 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7541 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007542 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7543 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307544 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7545 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007546 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7547 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307548 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7549 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007550 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7551 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307552 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7553 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007554 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7555 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307556 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7557 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007558 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7559 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307560 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007562 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7563 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307564 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007566 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7567 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307568 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007570 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7571 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307572 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007574 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7575 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307576 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007578 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7579 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307580 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7581 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307582 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7583 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
7584 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7585 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307586};
7587
7588static const struct snd_kcontrol_new quat_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007589 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7590 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307591 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7592 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007593 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7594 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307595 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7596 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007597 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7598 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307599 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7600 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007601 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7602 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307603 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7604 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007605 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7606 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307607 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7608 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007609 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7610 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307611 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7612 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007613 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7614 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307615 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7616 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007617 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7618 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307619 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7620 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007621 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7622 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307623 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7624 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007625 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7626 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307627 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7628 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007629 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7630 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307631 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007633 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7634 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307635 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007637 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7638 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307639 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007641 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7642 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307643 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007645 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7646 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307647 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007649 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7650 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307651 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7652 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307653 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7654 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
7655 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7656 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307657};
7658
Rohit Kumara5077932017-09-10 22:05:05 +05307659static const struct snd_kcontrol_new quin_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007660 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7661 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307662 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7663 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007664 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7665 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307666 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7667 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007668 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7669 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307670 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7671 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007672 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7673 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307674 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7675 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007676 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7677 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307678 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7679 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007680 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7681 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307682 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7683 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007684 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7685 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307686 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7687 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007688 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7689 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307690 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7691 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007692 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7693 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307694 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7695 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007696 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7697 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307698 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7699 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007700 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7701 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307702 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7703 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007704 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7705 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307706 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7707 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007708 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7709 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307710 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7711 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007712 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7713 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307714 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7715 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007716 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7717 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307718 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7719 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007720 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7721 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307722 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7723 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307724 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7725 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
7726 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7727 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05307728};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307729static const struct snd_kcontrol_new pri_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007730 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7731 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307732 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007734 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7735 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307736 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007738 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7739 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307740 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007742 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7743 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307744 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007746 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7747 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307748 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007750 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7751 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307752 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007754 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7755 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307756 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007758 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7759 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307760 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007762 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7763 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307764 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007766 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7767 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307768 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007770 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7771 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307772 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007774 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7775 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307776 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007778 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7779 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307780 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007782 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7783 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307784 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7785 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007786 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7787 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307788 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007790 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7791 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307792 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7793 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007794 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7795 MSM_BACKEND_DAI_PRI_TDM_RX_0,
7796 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7797 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307798};
7799
7800static const struct snd_kcontrol_new pri_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007801 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7802 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307803 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007805 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7806 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307807 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007809 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7810 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307811 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007813 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7814 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307815 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007817 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7818 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307819 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007821 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7822 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307823 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007825 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7826 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307827 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007829 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7830 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307831 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007833 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7834 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307835 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007837 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7838 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307839 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007841 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7842 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307843 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007845 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7846 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307847 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007849 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7850 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307851 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007853 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7854 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307855 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007857 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7858 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307859 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007861 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7862 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307863 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7864 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007865 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7866 MSM_BACKEND_DAI_PRI_TDM_RX_1,
7867 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7868 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307869};
7870
7871static const struct snd_kcontrol_new pri_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007872 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7873 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307874 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007876 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7877 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307878 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007880 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7881 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307882 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007884 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7885 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307886 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007888 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7889 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307890 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007892 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7893 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307894 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007896 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7897 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307898 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007900 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7901 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307902 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007904 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7905 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307906 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007908 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7909 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307910 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007912 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7913 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307914 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007916 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7917 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307918 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007920 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7921 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307922 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007924 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7925 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307926 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007928 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7929 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307930 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7931 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007932 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7933 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307934 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7935 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007936 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7937 MSM_BACKEND_DAI_PRI_TDM_RX_2,
7938 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7939 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307940};
7941
7942static const struct snd_kcontrol_new pri_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007943 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7944 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307945 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7946 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007947 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7948 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307949 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7950 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007951 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7952 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307953 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7954 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007955 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7956 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307957 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7958 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007959 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7960 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307961 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7962 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007963 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7964 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307965 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7966 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007967 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7968 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307969 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7970 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007971 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7972 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307973 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7974 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007975 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7976 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307977 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7978 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007979 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7980 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307981 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7982 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007983 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7984 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307985 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7986 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007987 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7988 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307989 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7990 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007991 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7992 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307993 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007995 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7996 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307997 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007999 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8000 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308001 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008003 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8004 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308005 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8006 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008007 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8008 MSM_BACKEND_DAI_PRI_TDM_RX_3,
8009 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8010 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308011};
8012
8013static const struct snd_kcontrol_new pri_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008014 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8015 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308016 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8017 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008018 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8019 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308020 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8021 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008022 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8023 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308024 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8025 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008026 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8027 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308028 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8029 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008030 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8031 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308032 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8033 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008034 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8035 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308036 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8037 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008038 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8039 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308040 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8041 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008042 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8043 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308044 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8045 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008046 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8047 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308048 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8049 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008050 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8051 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308052 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8053 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008054 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8055 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308056 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8057 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008058 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8059 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308060 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8061 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008062 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8063 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308064 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8065 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008066 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8067 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308068 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8069 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008070 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8071 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308072 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8073 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008074 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8075 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308076 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8077 msm_routing_put_audio_mixer),
8078};
8079
8080static const struct snd_kcontrol_new sec_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008081 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8082 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308083 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008085 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8086 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308087 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008089 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8090 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308091 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008093 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8094 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308095 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008097 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8098 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308099 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8100 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008101 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8102 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308103 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008105 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8106 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308107 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8108 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008109 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8110 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308111 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8112 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008113 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8114 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308115 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8116 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008117 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8118 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308119 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008121 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8122 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308123 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8124 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008125 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8126 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308127 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008129 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8130 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308131 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008133 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8134 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308135 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008137 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8138 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308139 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008141 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8142 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308143 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8144 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008145 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8146 MSM_BACKEND_DAI_SEC_TDM_RX_0,
8147 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8148 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308149};
8150
8151static const struct snd_kcontrol_new sec_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008152 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8153 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308154 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8155 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008156 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8157 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308158 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8159 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008160 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8161 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308162 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008164 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8165 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308166 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8167 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008168 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8169 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308170 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8171 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008172 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8173 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308174 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8175 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008176 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8177 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308178 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8179 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008180 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8181 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308182 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008184 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8185 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308186 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008188 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8189 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308190 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008192 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8193 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308194 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008196 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8197 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308198 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008200 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8201 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308202 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008204 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8205 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308206 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8207 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008208 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8209 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308210 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8211 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008212 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8213 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308214 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8215 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008216 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8217 MSM_BACKEND_DAI_SEC_TDM_RX_1,
8218 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8219 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308220};
8221
8222static const struct snd_kcontrol_new sec_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008223 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8224 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308225 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008227 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8228 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308229 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008231 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8232 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308233 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008235 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8236 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308237 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008239 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8240 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308241 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008243 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8244 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308245 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008247 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8248 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308249 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8250 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008251 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8252 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308253 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8254 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008255 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8256 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308257 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8258 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008259 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8260 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308261 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008263 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8264 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308265 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008267 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8268 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308269 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8270 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008271 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8272 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308273 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008275 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8276 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308277 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008279 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8280 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308281 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008283 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8284 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308285 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8286 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008287 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8288 MSM_BACKEND_DAI_SEC_TDM_RX_2,
8289 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8290 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308291};
8292
8293static const struct snd_kcontrol_new sec_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008294 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8295 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308296 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008298 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8299 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308300 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008302 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8303 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308304 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008306 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8307 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308308 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008310 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8311 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308312 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008314 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8315 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308316 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008318 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8319 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308320 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008322 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8323 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308324 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008326 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8327 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308328 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008330 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8331 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308332 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008334 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8335 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308336 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008338 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8339 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308340 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008342 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8343 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308344 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008346 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8347 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308348 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008350 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8351 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308352 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008354 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8355 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308356 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8357 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008358 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8359 MSM_BACKEND_DAI_SEC_TDM_RX_3,
8360 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8361 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308362};
8363
8364static const struct snd_kcontrol_new sec_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008365 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8366 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308367 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008369 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8370 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308371 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008373 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8374 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308375 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008377 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8378 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308379 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008381 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8382 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308383 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008385 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8386 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308387 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008389 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8390 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308391 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008393 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8394 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308395 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008397 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8398 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308399 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008401 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8402 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308403 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008405 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8406 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308407 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008409 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8410 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308411 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8412 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008413 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8414 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308415 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8416 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008417 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8418 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308419 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8420 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008421 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8422 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308423 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8424 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008425 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8426 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308427 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8428 msm_routing_put_audio_mixer),
8429};
8430
8431static const struct snd_kcontrol_new tert_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008432 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8433 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308434 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8435 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008436 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8437 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308438 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8439 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008440 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8441 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308442 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8443 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008444 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8445 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308446 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008448 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8449 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308450 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008452 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8453 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308454 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008456 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8457 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308458 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8459 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008460 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8461 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308462 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8463 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008464 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8465 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308466 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008468 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8469 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308470 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008472 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8473 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308474 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8475 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008476 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8477 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308478 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008480 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8481 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308482 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8483 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008484 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8485 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308486 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8487 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008488 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8489 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308490 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8491 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008492 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8493 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308494 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8495 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008496 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8497 MSM_BACKEND_DAI_TERT_TDM_RX_0,
8498 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8499 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308500};
8501
8502static const struct snd_kcontrol_new tert_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008503 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8504 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308505 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008507 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8508 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308509 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008511 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8512 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308513 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008515 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8516 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308517 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008519 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8520 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308521 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008523 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8524 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308525 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008527 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8528 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308529 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008531 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8532 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308533 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008535 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8536 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308537 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008539 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8540 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308541 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008543 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8544 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308545 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008547 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8548 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308549 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008551 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8552 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308553 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8554 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008555 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8556 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308557 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008559 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8560 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308561 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008563 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8564 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308565 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8566 msm_routing_put_audio_mixer),
8567};
8568
8569static const struct snd_kcontrol_new tert_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008570 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8571 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308572 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008574 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8575 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308576 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008578 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8579 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308580 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008582 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8583 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308584 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008586 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8587 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308588 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8589 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008590 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8591 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308592 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008594 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8595 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308596 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008598 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8599 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308600 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008602 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8603 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308604 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8605 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008606 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8607 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308608 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008610 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8611 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308612 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8613 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008614 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8615 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308616 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8617 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008618 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8619 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308620 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008622 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8623 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308624 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008626 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8627 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308628 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008630 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8631 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308632 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8633 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008634 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8635 MSM_BACKEND_DAI_TERT_TDM_RX_1,
8636 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8637 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308638};
8639
8640static const struct snd_kcontrol_new tert_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008641 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8642 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308643 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008645 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8646 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308647 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008649 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8650 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308651 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008653 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8654 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308655 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008657 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8658 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308659 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008661 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8662 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308663 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8664 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008665 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8666 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308667 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8668 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008669 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8670 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308671 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008673 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8674 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308675 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008677 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8678 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308679 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008681 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8682 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308683 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008685 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8686 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308687 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008689 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8690 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308691 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008693 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8694 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308695 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008697 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8698 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308699 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008701 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8702 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308703 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8704 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008705 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8706 MSM_BACKEND_DAI_TERT_TDM_RX_2,
8707 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8708 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308709};
8710
8711static const struct snd_kcontrol_new tert_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008712 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8713 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308714 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8715 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008716 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8717 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308718 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8719 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008720 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8721 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308722 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8723 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008724 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8725 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308726 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8727 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008728 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8729 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308730 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8731 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008732 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8733 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308734 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8735 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008736 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8737 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308738 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8739 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008740 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8741 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308742 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8743 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008744 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8745 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308746 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8747 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008748 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8749 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308750 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8751 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008752 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8753 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308754 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8755 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008756 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8757 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308758 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8759 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008760 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8761 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308762 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8763 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008764 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8765 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308766 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8767 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008768 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8769 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308770 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8771 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008772 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8773 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308774 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8775 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008776 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8777 MSM_BACKEND_DAI_TERT_TDM_RX_3,
8778 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8779 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308780};
8781
8782static const struct snd_kcontrol_new tert_tdm_rx_4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008783 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8784 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308785 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008787 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8788 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308789 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008791 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8792 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308793 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008795 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8796 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308797 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008799 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8800 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308801 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008803 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8804 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308805 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008807 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8808 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308809 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008811 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8812 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308813 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008815 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8816 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308817 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008819 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8820 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308821 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008823 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8824 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308825 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008827 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8828 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308829 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008831 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8832 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308833 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8834 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008835 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8836 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308837 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008839 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8840 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308841 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008843 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8844 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308845 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8846 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008847 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8848 MSM_BACKEND_DAI_TERT_TDM_RX_4,
8849 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8850 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308851};
8852
8853static const struct snd_kcontrol_new quat_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008854 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8855 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308856 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8857 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008858 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8859 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308860 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8861 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008862 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8863 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308864 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8865 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008866 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8867 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308868 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8869 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008870 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8871 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308872 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008874 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8875 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308876 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008878 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8879 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308880 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008882 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8883 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308884 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008886 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8887 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308888 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008890 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8891 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308892 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008894 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8895 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308896 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008898 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8899 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308900 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008902 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8903 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308904 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8905 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008906 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8907 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308908 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8909 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008910 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8911 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308912 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8913 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008914 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8915 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308916 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8917 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008918 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8919 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308920 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8921 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008922 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8923 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
8924 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8925 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308926};
8927
8928static const struct snd_kcontrol_new quat_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008929 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8930 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308931 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8932 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008933 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8934 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308935 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8936 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008937 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8938 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308939 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8940 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008941 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8942 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308943 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8944 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008945 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8946 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308947 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8948 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008949 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8950 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308951 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8952 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008953 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8954 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308955 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8956 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008957 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8958 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308959 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8960 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008961 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8962 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308963 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8964 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008965 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8966 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308967 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008969 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8970 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308971 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8972 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008973 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8974 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308975 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8976 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008977 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8978 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308979 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8980 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008981 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8982 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308983 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8984 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008985 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8986 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308987 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8988 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008989 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8990 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308991 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8992 msm_routing_put_audio_mixer),
8993};
8994
8995static const struct snd_kcontrol_new quat_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008996 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8997 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308998 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009000 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9001 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309002 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009004 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9005 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309006 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009008 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9009 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309010 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009012 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9013 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309014 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009016 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9017 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309018 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009020 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9021 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309022 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009024 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9025 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309026 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009028 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9029 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309030 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009032 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9033 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309034 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009036 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9037 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309038 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009040 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9041 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309042 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9043 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009044 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9045 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309046 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9047 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009048 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9049 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309050 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009052 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9053 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309054 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009056 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9057 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309058 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009060 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9061 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309062 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9063 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009064 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9065 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
9066 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9067 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309068};
9069
9070static const struct snd_kcontrol_new quat_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009071 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9072 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309073 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9074 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009075 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9076 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309077 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9078 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009079 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9080 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309081 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009083 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9084 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309085 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009087 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9088 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309089 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009091 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9092 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309093 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009095 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9096 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309097 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009099 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9100 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309101 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009103 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9104 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309105 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009107 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9108 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309109 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9110 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009111 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9112 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309113 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9114 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009115 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9116 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309117 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9118 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009119 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9120 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309121 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9122 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009123 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9124 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309125 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9126 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009127 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9128 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309129 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009131 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9132 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309133 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009135 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9136 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309137 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9138 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009139 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9140 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
9141 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9142 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309143};
9144
9145static const struct snd_kcontrol_new quat_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009146 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9147 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309148 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9149 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009150 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9151 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309152 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9153 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009154 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9155 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309156 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009158 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9159 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309160 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009162 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9163 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309164 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009166 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9167 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309168 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009170 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9171 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309172 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009174 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9175 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309176 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009178 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9179 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309180 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009182 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9183 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309184 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009186 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9187 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309188 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009190 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9191 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309192 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009194 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9195 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309196 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009198 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9199 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309200 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009202 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9203 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309204 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009206 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9207 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309208 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9209 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009210 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9211 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309212 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9213 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009214 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9215 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
9216 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9217 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309218};
9219
Rohit Kumara5077932017-09-10 22:05:05 +05309220static const struct snd_kcontrol_new quin_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009221 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9222 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309223 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009225 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9226 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309227 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009229 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9230 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309231 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009233 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9234 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309235 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009237 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9238 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309239 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009241 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9242 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309243 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9244 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009245 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9246 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309247 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9248 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009249 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9250 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309251 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9252 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009253 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9254 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309255 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9256 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009257 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9258 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309259 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009261 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9262 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309263 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009265 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9266 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309267 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009269 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9270 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309271 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9272 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009273 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9274 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309275 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9276 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009277 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9278 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309279 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009281 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9282 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309283 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9284 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009285 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9286 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309287 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9288 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009289 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9290 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
9291 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9292 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309293};
9294
9295static const struct snd_kcontrol_new quin_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009296 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9297 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309298 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009300 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9301 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309302 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009304 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9305 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309306 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9307 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009308 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9309 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309310 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9311 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009312 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9313 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309314 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009316 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9317 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309318 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009320 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9321 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309322 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9323 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009324 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9325 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309326 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9327 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009328 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9329 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309330 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9331 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009332 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9333 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309334 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9335 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009336 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9337 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309338 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9339 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009340 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9341 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309342 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9343 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009344 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9345 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309346 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9347 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009348 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9349 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309350 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9351 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009352 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9353 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309354 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9355 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009356 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9357 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309358 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9359 msm_routing_put_audio_mixer),
9360};
9361
9362static const struct snd_kcontrol_new quin_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009363 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9364 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309365 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009367 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9368 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309369 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009371 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9372 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309373 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009375 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9376 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309377 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009379 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9380 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309381 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009383 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9384 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309385 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009387 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9388 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309389 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009391 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9392 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309393 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009395 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9396 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309397 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009399 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9400 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309401 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009403 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9404 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309405 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009407 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9408 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309409 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009411 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9412 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309413 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9414 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009415 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9416 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309417 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9418 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009419 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9420 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309421 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9422 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009423 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9424 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309425 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9426 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009427 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9428 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309429 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9430 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009431 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9432 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
9433 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9434 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309435};
9436
9437static const struct snd_kcontrol_new quin_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009438 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9439 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309440 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009442 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9443 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309444 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009446 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9447 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309448 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009450 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9451 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309452 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009454 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9455 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309456 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009458 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9459 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309460 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009462 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9463 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309464 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009466 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9467 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309468 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009470 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9471 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309472 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009474 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9475 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309476 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009478 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9479 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309480 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009482 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9483 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309484 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009486 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9487 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309488 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009490 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9491 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309492 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009494 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9495 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309496 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9497 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009498 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9499 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309500 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9501 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009502 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9503 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309504 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9505 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009506 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9507 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
9508 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9509 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309510};
9511
9512static const struct snd_kcontrol_new quin_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009513 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9514 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309515 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009517 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9518 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309519 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009521 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9522 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309523 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009525 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9526 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309527 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009529 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9530 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309531 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009533 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9534 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309535 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009537 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9538 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309539 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009541 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9542 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309543 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009545 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9546 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309547 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009549 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9550 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309551 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009553 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9554 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309555 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009557 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9558 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309559 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009561 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9562 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309563 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009565 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9566 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309567 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009569 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9570 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309571 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009573 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9574 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309575 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009577 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9578 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309579 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9580 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009581 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9582 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
9583 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9584 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309585};
9586
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309587static const struct snd_kcontrol_new mmul1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009588 SOC_DOUBLE_EXT("PRI_TX", SND_SOC_NOPM,
9589 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309590 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009592 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9593 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309594 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009596 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9597 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309598 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009600 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9601 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309602 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009604 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9605 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309606 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009608 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9609 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309610 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009612 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9613 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309614 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9615 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009616 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9617 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309618 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9619 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009620 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9621 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309622 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9623 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +05309624 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
9625 MSM_BACKEND_DAI_SLIMBUS_1_TX,
9626 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9627 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009628 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
9629 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309630 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9631 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009632 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
9633 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309634 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9635 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009636 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
9637 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309638 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9639 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009640 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
9641 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309642 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9643 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009644 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
9645 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309646 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9647 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009648 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9649 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309650 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9651 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009652 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9653 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309654 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9655 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009656 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9657 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309658 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9659 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009660 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9661 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309662 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9663 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009664 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9665 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309666 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9667 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009668 SOC_DOUBLE_EXT("SLIM_4_TX", SND_SOC_NOPM,
9669 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309670 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9671 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009672 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9673 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309674 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9675 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009676 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9677 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309678 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9679 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009680 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9681 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309682 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9683 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009684 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9685 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309686 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9687 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009688 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9689 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309690 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9691 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009692 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9693 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309694 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9695 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009696 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9697 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309698 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9699 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009700 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9701 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309702 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9703 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009704 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9705 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309706 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9707 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009708 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9709 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309710 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9711 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009712 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9713 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309714 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9715 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009716 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9717 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309718 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9719 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009720 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9721 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309722 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9723 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009724 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9725 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309726 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9727 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009728 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9729 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309730 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9731 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009732 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9733 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309734 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9735 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009736 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9737 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309738 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9739 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009740 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9741 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309742 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9743 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009744 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9745 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309746 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9747 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009748 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9749 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309750 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9751 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009752 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9753 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309754 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9755 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009756 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9757 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309758 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9759 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009760 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
9761 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309762 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9763 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009764 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
9765 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309766 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9767 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009768 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9769 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309770 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9771 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309772 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9773 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9774 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9775 msm_routing_put_audio_mixer),
9776 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9777 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9778 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9779 msm_routing_put_audio_mixer),
9780 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9781 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9782 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9783 msm_routing_put_audio_mixer),
9784 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9785 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9786 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9787 msm_routing_put_audio_mixer),
9788 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9789 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9790 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9791 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -08009792 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
9793 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
9794 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9795 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309796 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9797 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9798 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9799 msm_routing_put_audio_mixer),
9800 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9801 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9802 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9803 msm_routing_put_audio_mixer),
9804 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9805 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9806 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9807 msm_routing_put_audio_mixer),
9808 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9809 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9810 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9811 msm_routing_put_audio_mixer),
9812 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9813 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9814 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9815 msm_routing_put_audio_mixer),
9816 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9817 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9818 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9819 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009820 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9821 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9822 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9823 msm_routing_put_audio_mixer),
9824 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9825 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9826 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9827 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +05309828 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
9829 MSM_BACKEND_DAI_SLIMBUS_9_TX,
9830 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9831 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +05309832 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
9833 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
9834 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9835 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309836};
9837
9838static const struct snd_kcontrol_new mmul2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009839 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9840 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309841 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009843 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9844 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309845 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009847 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9848 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309849 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009851 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9852 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309853 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009855 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9856 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309857 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009859 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9860 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309861 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009863 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9864 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309865 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9866 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009867 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9868 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309869 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009871 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9872 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309873 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009875 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9876 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309877 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009879 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
9880 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309881 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009883 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9884 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309885 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009887 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9888 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309889 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9890 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009891 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9892 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309893 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009895 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9896 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309897 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9898 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009899 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9900 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309901 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9902 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009903 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9904 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309905 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9906 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009907 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9908 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309909 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009911 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9912 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309913 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009915 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9916 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309917 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9918 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009919 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9920 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309921 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9922 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009923 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9924 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309925 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9926 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009927 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9928 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309929 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9930 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009931 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9932 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309933 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9934 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009935 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9936 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309937 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9938 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009939 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9940 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309941 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9942 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009943 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9944 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309945 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9946 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009947 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9948 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309949 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9950 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009951 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9952 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309953 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9954 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009955 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9956 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309957 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9958 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009959 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9960 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309961 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9962 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009963 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9964 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309965 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9966 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009967 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
9968 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309969 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9970 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009971 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9972 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309973 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9974 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309975 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9976 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9977 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9978 msm_routing_put_audio_mixer),
9979 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9980 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9981 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9982 msm_routing_put_audio_mixer),
9983 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9984 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9985 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9986 msm_routing_put_audio_mixer),
9987 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9988 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9989 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9990 msm_routing_put_audio_mixer),
9991 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9992 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9993 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9994 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -08009995 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
9996 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
9997 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9998 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309999 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10000 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10001 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10002 msm_routing_put_audio_mixer),
10003 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10004 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10005 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10006 msm_routing_put_audio_mixer),
10007 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10008 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10009 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10010 msm_routing_put_audio_mixer),
10011 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10012 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10013 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10014 msm_routing_put_audio_mixer),
10015 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10016 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10017 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10018 msm_routing_put_audio_mixer),
10019 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10020 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10021 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10022 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010023 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10024 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10025 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10026 msm_routing_put_audio_mixer),
10027 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10028 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10029 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10030 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053010031 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
10032 MSM_BACKEND_DAI_SLIMBUS_9_TX,
10033 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10034 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010035 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10036 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10037 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10038 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010039};
10040
10041static const struct snd_kcontrol_new mmul3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010042 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10043 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010044 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10045 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053010046 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10047 MSM_BACKEND_DAI_SLIMBUS_1_TX,
10048 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10049 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010050 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10051 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010052 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10053 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010054 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10055 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010056 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10057 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010058 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10059 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010060 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10061 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010062 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10063 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010064 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10065 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010066 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
10067 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010068 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10069 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010070 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10071 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010072 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10073 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010074 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
10075 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010076 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10077 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010078 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
10079 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010080 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10081 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010082 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
10083 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010084 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10085 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010086 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10087 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010088 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10089 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010090 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10091 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010092 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010094 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10095 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010096 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10097 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010098 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10099 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010100 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10101 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010102 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10103 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010104 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10105 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010106 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10107 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010108 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10109 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010110 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10111 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010112 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10113 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010114 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10115 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010116 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010118 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10119 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010120 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010122 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10123 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010124 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010126 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10127 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010128 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010130 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10131 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010132 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010134 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10135 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010136 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10137 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010138 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10139 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010140 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10141 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010142 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10143 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010144 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10145 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010146 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10147 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010148 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10149 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010150 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10151 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010152 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10153 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010154 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10155 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010156 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010158 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10159 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010160 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010162 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10163 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010164 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010166 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10167 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010168 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010170 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10171 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010172 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010174 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10175 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010176 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010178 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10179 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010180 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10181 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010182 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10183 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10184 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10185 msm_routing_put_audio_mixer),
10186 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10187 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10188 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10189 msm_routing_put_audio_mixer),
10190 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10191 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10192 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10193 msm_routing_put_audio_mixer),
10194 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10195 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10196 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10197 msm_routing_put_audio_mixer),
10198 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10199 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10200 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10201 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010202 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10203 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10204 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10205 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010206 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10207 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10208 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10209 msm_routing_put_audio_mixer),
10210 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10211 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10212 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10213 msm_routing_put_audio_mixer),
10214 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10215 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10216 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10217 msm_routing_put_audio_mixer),
10218 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10219 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10220 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10221 msm_routing_put_audio_mixer),
10222 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10223 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10224 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10225 msm_routing_put_audio_mixer),
10226 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10227 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10228 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10229 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010230 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10231 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10232 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10233 msm_routing_put_audio_mixer),
10234 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10235 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10236 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10237 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010238 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10239 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10240 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10241 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010242};
10243
10244static const struct snd_kcontrol_new mmul4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010245 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10246 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010247 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10248 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053010249 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10250 MSM_BACKEND_DAI_SLIMBUS_1_TX,
10251 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10252 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010253 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10254 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010255 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10256 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010257 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10258 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010259 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010261 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10262 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010263 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010265 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10266 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010267 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010269 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10270 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010271 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10272 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010273 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10274 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010275 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10276 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010277 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10278 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010279 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010281 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10282 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010283 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10284 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010285 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10286 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010287 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10288 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010289 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10290 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010291 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10292 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010293 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10294 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010295 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010297 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10298 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010299 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10300 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010301 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10302 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010303 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10304 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010305 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10306 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010307 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010309 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10310 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010311 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010313 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10314 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010315 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010317 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10318 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010319 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010321 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10322 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010323 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10324 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010325 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10326 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010327 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010329 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10330 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010331 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10332 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010333 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10334 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010335 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010337 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10338 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010339 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10340 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010341 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10342 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010343 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10344 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010345 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10346 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010347 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010349 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10350 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010351 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010353 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10354 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010355 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010357 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10358 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010359 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010361 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10362 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010363 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010365 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10366 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010367 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010369 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10370 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010371 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010373 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10374 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010375 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010377 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10378 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010379 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10380 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010381 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10382 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10383 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10384 msm_routing_put_audio_mixer),
10385 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10386 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10387 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10388 msm_routing_put_audio_mixer),
10389 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10390 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10391 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10392 msm_routing_put_audio_mixer),
10393 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10394 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10395 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10396 msm_routing_put_audio_mixer),
10397 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10398 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10399 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10400 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010401 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10402 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10403 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10404 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010405 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10406 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10407 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10408 msm_routing_put_audio_mixer),
10409 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10410 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10411 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10412 msm_routing_put_audio_mixer),
10413 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10414 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10415 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10416 msm_routing_put_audio_mixer),
10417 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10418 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10419 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10420 msm_routing_put_audio_mixer),
10421 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10422 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10423 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10424 msm_routing_put_audio_mixer),
10425 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10426 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10427 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10428 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010429 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10430 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10431 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10432 msm_routing_put_audio_mixer),
10433 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10434 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10435 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10436 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010437 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10438 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10439 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10440 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010441};
10442
10443static const struct snd_kcontrol_new mmul5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010444 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10445 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010446 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10447 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053010448 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10449 MSM_BACKEND_DAI_SLIMBUS_1_TX,
10450 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010452 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10453 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010454 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010456 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10457 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010458 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10459 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010460 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10461 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010462 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10463 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010464 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10465 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010466 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010468 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10469 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010470 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010472 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10473 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010474 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10475 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010476 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
10477 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010478 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010480 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
10481 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010482 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10483 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010484 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
10485 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010486 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10487 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010488 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10489 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010490 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10491 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010492 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10493 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010494 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010496 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10497 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010498 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10499 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010500 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10501 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010502 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10503 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010504 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10505 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010506 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10507 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010508 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10509 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010510 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10511 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010512 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10513 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010514 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10515 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010516 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10517 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010518 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10519 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010520 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10521 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010522 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10523 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010524 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10525 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010526 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10527 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010528 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10529 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010530 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10531 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010532 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10533 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010534 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10535 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010536 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10537 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010538 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10539 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010540 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10541 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010542 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010544 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10545 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010546 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010548 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10549 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010550 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010552 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10553 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010554 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010556 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10557 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010558 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010560 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10561 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010562 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010564 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10565 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010566 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010568 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10569 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010570 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010572 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10573 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010574 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010576 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10577 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010578 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010580 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10581 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010582 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010584 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10585 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010586 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010588 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10589 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010590 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010592 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10593 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010594 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010596 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
10597 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010598 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010600 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10601 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010602 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10603 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010604 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10605 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10606 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10607 msm_routing_put_audio_mixer),
10608 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10609 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10610 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10611 msm_routing_put_audio_mixer),
10612 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10613 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10614 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10615 msm_routing_put_audio_mixer),
10616 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10617 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10618 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10619 msm_routing_put_audio_mixer),
10620 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10621 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10622 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10623 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010624 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10625 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10626 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10627 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010628 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10629 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10630 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10631 msm_routing_put_audio_mixer),
10632 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10633 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10634 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10635 msm_routing_put_audio_mixer),
10636 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10637 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10638 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10639 msm_routing_put_audio_mixer),
10640 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10641 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10642 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10643 msm_routing_put_audio_mixer),
10644 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10645 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10646 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10647 msm_routing_put_audio_mixer),
10648 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10649 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10650 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10651 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010652 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10653 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10654 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10655 msm_routing_put_audio_mixer),
10656 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10657 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10658 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10659 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053010660 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
10661 MSM_BACKEND_DAI_SLIMBUS_9_TX,
10662 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10663 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010664 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10665 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10666 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10667 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010668};
10669
10670static const struct snd_kcontrol_new mmul6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010671 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10672 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010673 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010675 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10676 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010677 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10678 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053010679 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10680 MSM_BACKEND_DAI_SLIMBUS_1_TX,
10681 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010683 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10684 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010685 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010687 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10688 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010689 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10690 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010691 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10692 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010693 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010695 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10696 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010697 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010699 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10700 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010701 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010703 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10704 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010705 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010707 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
10708 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010709 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010711 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10712 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010713 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010715 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
10716 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010717 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010719 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
10720 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010721 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10722 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010723 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
10724 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010725 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10726 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010727 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10728 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010729 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010731 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10732 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010733 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10734 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010735 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10736 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010737 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10738 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010739 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10740 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010741 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10742 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010743 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10744 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010745 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10746 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010747 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10748 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010749 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10750 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010751 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10752 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010753 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10754 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010755 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10756 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010757 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10758 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010759 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10760 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010761 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10762 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010763 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10764 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010765 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10766 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010767 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10768 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010769 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10770 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010771 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10772 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010773 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010775 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10776 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010777 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010779 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10780 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010781 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010783 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10784 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010785 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010787 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10788 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010789 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010791 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10792 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010793 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010795 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10796 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010797 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010799 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10800 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010801 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010803 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10804 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010805 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010807 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10808 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010809 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10810 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010811 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10812 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10813 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10814 msm_routing_put_audio_mixer),
10815 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10816 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10817 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10818 msm_routing_put_audio_mixer),
10819 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10820 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10821 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10822 msm_routing_put_audio_mixer),
10823 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10824 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10825 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10826 msm_routing_put_audio_mixer),
10827 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10828 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10829 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10830 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010831 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10832 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10833 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10834 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010835 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10836 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10837 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10838 msm_routing_put_audio_mixer),
10839 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10840 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10841 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10842 msm_routing_put_audio_mixer),
10843 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10844 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10845 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10846 msm_routing_put_audio_mixer),
10847 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10848 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10849 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10850 msm_routing_put_audio_mixer),
10851 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10852 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10853 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10854 msm_routing_put_audio_mixer),
10855 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10856 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10857 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10858 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010859 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10860 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10861 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10862 msm_routing_put_audio_mixer),
10863 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10864 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10865 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10866 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010867 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10868 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10869 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10870 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010871};
10872
10873static const struct snd_kcontrol_new mmul8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010874 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10875 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010876 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10877 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053010878 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10879 MSM_BACKEND_DAI_SLIMBUS_1_TX,
10880 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010882 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10883 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010884 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010886 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10887 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010888 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010890 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10891 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010892 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010894 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10895 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010896 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010898 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10899 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010900 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010902 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10903 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010904 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10905 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010906 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10907 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010908 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10909 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010910 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10911 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010912 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10913 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010914 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10915 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010916 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10917 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010918 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10919 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010920 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10921 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010922 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10923 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010924 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10925 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010926 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10927 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010928 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010930 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10931 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010932 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10933 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010934 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10935 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010936 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10937 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010938 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10939 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010940 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10941 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010942 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10943 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010944 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010946 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10947 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010948 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010950 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10951 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010952 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010954 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10955 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010956 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10957 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010958 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10959 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010960 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010962 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10963 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010964 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010966 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10967 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010968 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010970 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10971 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010972 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010974 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10975 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010976 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010978 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10979 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010980 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010982 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10983 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010984 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10985 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010986 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10987 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010988 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010990 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10991 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010992 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010994 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10995 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010996 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10997 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010998 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10999 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011000 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11001 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011002 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11003 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011004 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011006 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11007 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011008 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11009 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011010 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11011 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011012 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11013 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011014 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
11015 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011016 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11017 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011018 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11019 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11020 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11021 msm_routing_put_audio_mixer),
11022 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11023 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11024 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11025 msm_routing_put_audio_mixer),
11026 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11027 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11028 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11029 msm_routing_put_audio_mixer),
11030 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11031 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11032 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11033 msm_routing_put_audio_mixer),
11034 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11035 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11036 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11037 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011038 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11039 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11040 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11041 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011042 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11043 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11044 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11045 msm_routing_put_audio_mixer),
11046 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11047 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11048 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11049 msm_routing_put_audio_mixer),
11050 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11051 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11052 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11053 msm_routing_put_audio_mixer),
11054 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11055 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11056 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11057 msm_routing_put_audio_mixer),
11058 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11059 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11060 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11061 msm_routing_put_audio_mixer),
11062 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11063 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11064 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11065 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011066 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11067 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11068 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11069 msm_routing_put_audio_mixer),
11070 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11071 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11072 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11073 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011074 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11075 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11076 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11077 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011078 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11079 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11080 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11081 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011082};
11083
Asish Bhattacharya34504582017-08-08 12:55:01 +053011084static const struct snd_kcontrol_new mmul16_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011085 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11086 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011087 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11088 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011089 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11090 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11091 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011093 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11094 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011095 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011097 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11098 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011099 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11100 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011101 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11102 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011103 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011105 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
11106 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011107 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11108 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011109 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11110 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011111 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11112 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011113 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11114 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011115 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11116 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011117 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11118 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011119 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011121 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11122 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011123 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11124 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011125 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11126 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011127 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011129 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11130 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011131 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011133 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11134 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011135 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011137 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11138 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011139 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011141 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11142 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011143 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011145 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11146 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011147 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011149 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11150 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011151 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011153 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11154 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011155 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011157 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11158 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011159 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011161 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11162 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011163 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011165 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11166 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011167 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011169 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11170 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011171 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011173 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11174 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011175 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011177 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11178 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011179 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011181 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11182 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011183 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011185 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11186 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011187 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011189 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11190 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011191 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011193 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11194 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011195 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011197 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11198 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011199 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011201 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11202 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011203 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011205 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11206 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011207 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011209 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
11210 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011211 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011213 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11214 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011215 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011217 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
11218 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011219 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011221 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
11222 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011223 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011225 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
11226 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011227 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11228 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011229 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11230 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11231 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11232 msm_routing_put_audio_mixer),
11233 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11234 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11235 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11236 msm_routing_put_audio_mixer),
11237 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11238 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11239 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11240 msm_routing_put_audio_mixer),
11241 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11242 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11243 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11244 msm_routing_put_audio_mixer),
11245 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11246 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11247 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11248 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011249 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11250 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11251 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11252 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011253 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11254 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11255 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11256 msm_routing_get_audio_mixer,
11257 msm_routing_put_audio_mixer),
11258 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11259 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11260 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11261 msm_routing_get_audio_mixer,
11262 msm_routing_put_audio_mixer),
11263 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11264 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11265 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11266 msm_routing_get_audio_mixer,
11267 msm_routing_put_audio_mixer),
11268 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11269 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11270 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11271 msm_routing_get_audio_mixer,
11272 msm_routing_put_audio_mixer),
11273 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11274 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11275 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11276 msm_routing_get_audio_mixer,
11277 msm_routing_put_audio_mixer),
11278 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11279 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11280 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11281 msm_routing_get_audio_mixer,
11282 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011283 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11284 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11285 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11286 msm_routing_put_audio_mixer),
11287 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11288 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11289 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11290 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011291 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11292 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11293 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11294 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011295 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11296 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11297 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11298 msm_routing_put_audio_mixer),
Asish Bhattacharya34504582017-08-08 12:55:01 +053011299};
11300
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011301static const struct snd_kcontrol_new mmul9_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011302 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11303 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011304 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11305 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011306 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11307 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11308 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011310 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11311 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011312 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011314 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11315 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011316 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011318 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11319 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011320 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011322 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11323 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011324 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011326 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11327 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011328 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011330 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11331 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011332 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011334 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11335 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011336 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011338 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11339 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011340 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011342 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11343 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011344 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011346 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11347 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011348 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011350 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11351 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011352 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011354 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11355 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011356 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011358 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11359 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011360 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011362 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11363 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011364 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011366 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11367 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011368 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011370 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11371 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011372 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011374 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11375 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011376 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11377 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011378 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11379 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011380 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11381 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011382 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11383 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011384 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11385 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011386 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11387 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11388 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11389 msm_routing_put_audio_mixer),
11390 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11391 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11392 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11393 msm_routing_put_audio_mixer),
11394 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11395 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11396 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11397 msm_routing_put_audio_mixer),
11398 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11399 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11400 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11401 msm_routing_put_audio_mixer),
11402 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11403 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11404 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11405 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011406 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11407 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11408 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11409 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011410 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11411 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11412 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11413 msm_routing_put_audio_mixer),
11414 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11415 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11416 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11417 msm_routing_put_audio_mixer),
11418 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11419 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11420 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11421 msm_routing_put_audio_mixer),
11422 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11423 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11424 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11425 msm_routing_put_audio_mixer),
11426 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11427 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11428 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11429 msm_routing_put_audio_mixer),
11430 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11431 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11432 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11433 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011434 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11435 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11436 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11437 msm_routing_put_audio_mixer),
11438 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11439 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11440 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11441 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011442 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11443 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11444 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11445 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011446};
11447
Laxminath Kasam38070be2017-08-17 18:21:59 +053011448static const struct snd_kcontrol_new mmul10_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011449 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11450 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011451 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11452 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011453 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11454 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11455 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11456 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011457 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11458 MSM_BACKEND_DAI_PRI_MI2S_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011459 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11460 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011461 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11462 MSM_BACKEND_DAI_INT_FM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011463 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11464 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011465 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11466 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011467 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11468 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011469 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11470 MSM_BACKEND_DAI_AFE_PCM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011471 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011473 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11474 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011475 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011477 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11478 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011479 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011481 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11482 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011483 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011485 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11486 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Vikram Panduranga72863152017-09-06 15:47:35 -070011487 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011489 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11490 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011491 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011493 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11494 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011495 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011497 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11498 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011499 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011501 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11502 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011503 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011505 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11506 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011507 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011509 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11510 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011511 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011513 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11514 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011515 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011517 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11518 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011519 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011521 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
11522 MSM_BACKEND_DAI_USB_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011523 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011525 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11526 MSM_BACKEND_DAI_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011527 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011529 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
11530 MSM_BACKEND_DAI_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011531 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011533 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
11534 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011535 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011537 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
11538 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011539 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011541 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
11542 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011543 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011545 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11546 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011547 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011549 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
11550 MSM_BACKEND_DAI_INT2_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011551 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011553 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11554 MSM_BACKEND_DAI_INT3_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011555 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11556 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011557 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11558 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11559 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11560 msm_routing_put_audio_mixer),
11561 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11562 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11563 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11564 msm_routing_put_audio_mixer),
11565 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11566 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11567 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11568 msm_routing_put_audio_mixer),
11569 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11570 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11571 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11572 msm_routing_put_audio_mixer),
11573 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11574 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11575 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11576 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011577 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11578 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11579 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11580 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011581 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11582 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11583 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11584 msm_routing_get_audio_mixer,
11585 msm_routing_put_audio_mixer),
11586 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11587 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11588 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11589 msm_routing_get_audio_mixer,
11590 msm_routing_put_audio_mixer),
11591 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11592 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11593 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11594 msm_routing_get_audio_mixer,
11595 msm_routing_put_audio_mixer),
11596 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11597 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11598 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11599 msm_routing_get_audio_mixer,
11600 msm_routing_put_audio_mixer),
11601 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11602 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11603 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11604 msm_routing_get_audio_mixer,
11605 msm_routing_put_audio_mixer),
11606 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11607 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11608 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11609 msm_routing_get_audio_mixer,
11610 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011611 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11612 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11613 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11614 msm_routing_put_audio_mixer),
11615 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11616 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11617 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11618 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011619 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11620 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11621 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11622 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011623 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11624 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11625 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11626 msm_routing_put_audio_mixer),
Laxminath Kasam38070be2017-08-17 18:21:59 +053011627};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011628static const struct snd_kcontrol_new mmul17_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011629 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11630 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011631 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11632 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011633 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11634 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11635 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011637 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11638 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011639 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011641 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11642 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011643 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011645 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11646 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011647 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011649 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11650 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011651 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011653 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11654 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011655 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011657 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11658 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011659 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011661 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11662 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011663 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11664 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011665 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11666 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11667 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11668 msm_routing_put_audio_mixer),
11669 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11670 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11671 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11672 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011673 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11674 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11675 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11676 msm_routing_put_audio_mixer),
11677 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11678 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11679 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11680 msm_routing_put_audio_mixer),
11681 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11682 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11683 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11684 msm_routing_put_audio_mixer),
11685 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11686 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11687 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11688 msm_routing_put_audio_mixer),
11689 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11690 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11691 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11692 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011693 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11694 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11695 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11696 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011697 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11698 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11699 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11700 msm_routing_get_audio_mixer,
11701 msm_routing_put_audio_mixer),
11702 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11703 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11704 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11705 msm_routing_get_audio_mixer,
11706 msm_routing_put_audio_mixer),
11707 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11708 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11709 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11710 msm_routing_get_audio_mixer,
11711 msm_routing_put_audio_mixer),
11712 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11713 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11714 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11715 msm_routing_get_audio_mixer,
11716 msm_routing_put_audio_mixer),
11717 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11718 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11719 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11720 msm_routing_get_audio_mixer,
11721 msm_routing_put_audio_mixer),
11722 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11723 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11724 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11725 msm_routing_get_audio_mixer,
11726 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011727 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11728 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11729 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11730 msm_routing_put_audio_mixer),
11731 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11732 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11733 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11734 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011735 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11736 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11737 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11738 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011739};
11740
11741static const struct snd_kcontrol_new mmul18_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011742 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11743 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011744 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11745 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011746 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11747 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11748 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011750 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11751 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011752 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011754 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11755 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011756 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11757 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011758 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11759 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
11760 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11761 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011762 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11763 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11764 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011766 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11767 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011768 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011770 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11771 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011772 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011774 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11775 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011776 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011778 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11779 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011780 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011782 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11783 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011784 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11785 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011786 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11787 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011788 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11789 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011790 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11791 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11792 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11793 msm_routing_put_audio_mixer),
11794 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11795 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11796 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11797 msm_routing_put_audio_mixer),
11798 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11799 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11800 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11801 msm_routing_put_audio_mixer),
11802 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11803 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11804 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11805 msm_routing_put_audio_mixer),
11806 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11807 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11808 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11809 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011810 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11811 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11812 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11813 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011814 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11815 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11816 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11817 msm_routing_get_audio_mixer,
11818 msm_routing_put_audio_mixer),
11819 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11820 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11821 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11822 msm_routing_get_audio_mixer,
11823 msm_routing_put_audio_mixer),
11824 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11825 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11826 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11827 msm_routing_get_audio_mixer,
11828 msm_routing_put_audio_mixer),
11829 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11830 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11831 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11832 msm_routing_get_audio_mixer,
11833 msm_routing_put_audio_mixer),
11834 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11835 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11836 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11837 msm_routing_get_audio_mixer,
11838 msm_routing_put_audio_mixer),
11839 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11840 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11841 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11842 msm_routing_get_audio_mixer,
11843 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011844 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11845 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11846 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11847 msm_routing_put_audio_mixer),
11848 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11849 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11850 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11851 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011852 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11853 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11854 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11855 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011856};
11857
11858static const struct snd_kcontrol_new mmul19_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011859 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11860 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011861 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11862 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011863 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11864 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11865 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11866 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011867 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11868 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011869 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011871 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11872 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011873 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011875 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11876 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011877 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011879 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11880 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011881 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011883 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11884 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011885 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011887 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11888 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011889 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11890 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011891 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11892 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011893 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11894 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010011895 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11896 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
11897 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11898 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011899 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11900 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11901 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11902 msm_routing_put_audio_mixer),
11903 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11904 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11905 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11906 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011907 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11908 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11909 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11910 msm_routing_put_audio_mixer),
11911 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11912 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11913 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11914 msm_routing_put_audio_mixer),
11915 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11916 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11917 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11918 msm_routing_put_audio_mixer),
11919 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11920 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11921 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11922 msm_routing_put_audio_mixer),
11923 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11924 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11925 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11926 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011927 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11928 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11929 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11930 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011931 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11932 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11933 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11934 msm_routing_get_audio_mixer,
11935 msm_routing_put_audio_mixer),
11936 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11937 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11938 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11939 msm_routing_get_audio_mixer,
11940 msm_routing_put_audio_mixer),
11941 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11942 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11943 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11944 msm_routing_get_audio_mixer,
11945 msm_routing_put_audio_mixer),
11946 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11947 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11948 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11949 msm_routing_get_audio_mixer,
11950 msm_routing_put_audio_mixer),
11951 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11952 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11953 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11954 msm_routing_get_audio_mixer,
11955 msm_routing_put_audio_mixer),
11956 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11957 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11958 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11959 msm_routing_get_audio_mixer,
11960 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011961 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11962 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11963 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11964 msm_routing_put_audio_mixer),
11965 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11966 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11967 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11968 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011969 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11970 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11971 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11972 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011973};
11974
11975static const struct snd_kcontrol_new mmul20_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011976 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11977 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011978 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011980 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11981 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011982 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011984 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11985 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011986 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011988 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11989 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011990 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011992 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11993 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053011994 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011996 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11997 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011998 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012000 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12001 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012002 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012004 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12005 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012006 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012008 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12009 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012010 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012012 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12013 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012014 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012016 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12017 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012018 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012020 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12021 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012022 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012024 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12025 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012026 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012028 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12029 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012030 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012032 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12033 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012034 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012036 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12037 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012038 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012040 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12041 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012042 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12043 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012044 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12045 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012046 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12047 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012048 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12049 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012050 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012052 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12053 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012054 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012056 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12057 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012058 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012060 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12061 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012062 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012064 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12065 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012066 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012068 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12069 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012070 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012072 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12073 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012074 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12075 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012076 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12077 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12078 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12079 msm_routing_put_audio_mixer),
12080 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12081 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12082 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12083 msm_routing_put_audio_mixer),
12084 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12085 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12086 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12087 msm_routing_put_audio_mixer),
12088 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12089 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12090 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12091 msm_routing_put_audio_mixer),
12092 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12093 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12094 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12095 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012096 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12097 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12098 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12099 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012100 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12101 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12102 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12103 msm_routing_put_audio_mixer),
12104 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12105 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12106 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12107 msm_routing_put_audio_mixer),
12108 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12109 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12110 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12111 msm_routing_put_audio_mixer),
12112 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12113 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12114 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12115 msm_routing_put_audio_mixer),
12116 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12117 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12118 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12119 msm_routing_put_audio_mixer),
12120 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12121 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12122 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12123 msm_routing_put_audio_mixer),
12124 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12125 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12126 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12127 msm_routing_put_audio_mixer),
12128 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12129 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12130 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12131 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012132 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12133 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12134 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12135 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070012136};
12137
12138static const struct snd_kcontrol_new mmul21_mixer_controls[] = {
12139 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12140 MSM_BACKEND_DAI_AUXPCM_TX,
12141 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12142 msm_routing_put_audio_mixer),
12143 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12144 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
12145 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12146 msm_routing_put_audio_mixer),
12147 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12148 MSM_BACKEND_DAI_PRI_TDM_TX_0,
12149 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12150 msm_routing_put_audio_mixer),
12151 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12152 MSM_BACKEND_DAI_PRI_TDM_TX_1,
12153 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12154 msm_routing_put_audio_mixer),
12155 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12156 MSM_BACKEND_DAI_PRI_TDM_TX_2,
12157 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12158 msm_routing_put_audio_mixer),
12159 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12160 MSM_BACKEND_DAI_PRI_TDM_TX_3,
12161 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12162 msm_routing_put_audio_mixer),
12163 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12164 MSM_BACKEND_DAI_SEC_TDM_TX_0,
12165 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12166 msm_routing_put_audio_mixer),
12167 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12168 MSM_BACKEND_DAI_SEC_TDM_TX_1,
12169 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12170 msm_routing_put_audio_mixer),
12171 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12172 MSM_BACKEND_DAI_SEC_TDM_TX_2,
12173 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12174 msm_routing_put_audio_mixer),
12175 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12176 MSM_BACKEND_DAI_SEC_TDM_TX_3,
12177 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12178 msm_routing_put_audio_mixer),
12179 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12180 MSM_BACKEND_DAI_TERT_TDM_TX_0,
12181 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12182 msm_routing_put_audio_mixer),
12183 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12184 MSM_BACKEND_DAI_TERT_TDM_TX_1,
12185 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12186 msm_routing_put_audio_mixer),
12187 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12188 MSM_BACKEND_DAI_TERT_TDM_TX_2,
12189 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12190 msm_routing_put_audio_mixer),
12191 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12192 MSM_BACKEND_DAI_TERT_TDM_TX_3,
12193 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12194 msm_routing_put_audio_mixer),
12195 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12196 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
12197 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12198 msm_routing_put_audio_mixer),
12199 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12200 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
12201 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12202 msm_routing_put_audio_mixer),
12203 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12204 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
12205 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12206 msm_routing_put_audio_mixer),
12207 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12208 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
12209 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12210 msm_routing_put_audio_mixer),
12211 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12212 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
12213 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12214 msm_routing_put_audio_mixer),
12215 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12216 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
12217 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12218 msm_routing_put_audio_mixer),
12219 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12220 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
12221 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12222 msm_routing_put_audio_mixer),
12223 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12224 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
12225 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12226 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012227 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012228 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12229 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012230 msm_routing_put_audio_mixer),
12231 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012232 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12233 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012234 msm_routing_put_audio_mixer),
12235 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012236 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12237 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012238 msm_routing_put_audio_mixer),
12239 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012240 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12241 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012242 msm_routing_put_audio_mixer),
12243 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012244 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12245 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012246 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012247 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12248 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12249 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12250 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012251 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012252 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12253 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12254 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012255 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012256 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12257 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12258 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012259 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012260 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12261 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12262 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012263 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012264 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12265 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12266 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012267 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012268 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12269 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12270 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012271 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012272 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12273 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12274 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012275 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12276 MSM_BACKEND_DAI_PRI_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012277 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020012278 msm_routing_put_audio_mixer),
12279 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12280 MSM_BACKEND_DAI_SEC_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012281 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020012282 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012283 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12284 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12285 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12286 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012287};
12288
Surendar Karkac1cde372018-08-14 18:56:24 +053012289static const struct snd_kcontrol_new mmul27_mixer_controls[] = {
12290 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12291 MSM_BACKEND_DAI_SLIMBUS_0_TX,
12292 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12293 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012294 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12295 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12296 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12297 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053012298 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
12299 MSM_BACKEND_DAI_SLIMBUS_6_TX,
12300 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12301 msm_routing_put_audio_mixer),
12302 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
12303 MSM_BACKEND_DAI_SLIMBUS_7_TX,
12304 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12305 msm_routing_put_audio_mixer),
12306 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12307 MSM_BACKEND_DAI_PRI_MI2S_TX,
12308 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12309 msm_routing_put_audio_mixer),
12310 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12311 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
12312 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12313 msm_routing_put_audio_mixer),
12314 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12315 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
12316 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12317 msm_routing_put_audio_mixer),
12318 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12319 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
12320 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12321 msm_routing_put_audio_mixer),
12322 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
12323 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
12324 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12325 msm_routing_put_audio_mixer),
12326 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12327 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12328 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12329 msm_routing_put_audio_mixer),
12330 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12331 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12332 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12333 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053012334 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
12335 MSM_BACKEND_DAI_SLIMBUS_9_TX,
12336 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12337 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012338 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12339 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12340 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12341 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053012342};
12343
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012344static const struct snd_kcontrol_new mmul28_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012345 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12346 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012347 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12348 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012349 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12350 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12351 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012353 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12354 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012355 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012357 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12358 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012359 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012361 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12362 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012363 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012365 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12366 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012367 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012369 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12370 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012371 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012373 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12374 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012375 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012377 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12378 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012379 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12380 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010012381 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12382 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
12383 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12384 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080012385 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12386 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
12387 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12388 msm_routing_put_audio_mixer),
12389 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12390 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
12391 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12392 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012393 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12394 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12395 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12396 msm_routing_put_audio_mixer),
12397 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12398 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12399 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12400 msm_routing_put_audio_mixer),
12401 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12402 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12403 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12404 msm_routing_put_audio_mixer),
12405 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12406 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12407 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12408 msm_routing_put_audio_mixer),
12409 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12410 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12411 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12412 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012413 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12414 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12415 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12416 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012417 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12418 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12419 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12420 msm_routing_get_audio_mixer,
12421 msm_routing_put_audio_mixer),
12422 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12423 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12424 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12425 msm_routing_get_audio_mixer,
12426 msm_routing_put_audio_mixer),
12427 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12428 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12429 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12430 msm_routing_get_audio_mixer,
12431 msm_routing_put_audio_mixer),
12432 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12433 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12434 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12435 msm_routing_get_audio_mixer,
12436 msm_routing_put_audio_mixer),
12437 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12438 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12439 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12440 msm_routing_get_audio_mixer,
12441 msm_routing_put_audio_mixer),
12442 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12443 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12444 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12445 msm_routing_get_audio_mixer,
12446 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012447 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12448 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12449 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12450 msm_routing_put_audio_mixer),
12451 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12452 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12453 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12454 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012455 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12456 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12457 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12458 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012459};
12460
12461static const struct snd_kcontrol_new mmul29_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012462 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12463 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012464 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12465 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012466 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12467 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12468 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012470 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12471 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012472 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012474 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12475 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012476 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012478 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12479 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012480 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012482 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12483 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012484 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012486 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12487 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012488 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012490 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12491 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012492 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012494 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12495 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012496 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12497 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010012498 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12499 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
12500 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12501 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080012502 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12503 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
12504 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12505 msm_routing_put_audio_mixer),
12506 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12507 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
12508 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12509 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012510 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12511 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12512 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12513 msm_routing_put_audio_mixer),
12514 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12515 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12516 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12517 msm_routing_put_audio_mixer),
12518 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12519 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12520 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12521 msm_routing_put_audio_mixer),
12522 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12523 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12524 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12525 msm_routing_put_audio_mixer),
12526 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12527 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12528 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12529 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012530 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12531 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12532 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12533 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012534 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12535 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12536 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12537 msm_routing_get_audio_mixer,
12538 msm_routing_put_audio_mixer),
12539 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12540 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12541 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12542 msm_routing_get_audio_mixer,
12543 msm_routing_put_audio_mixer),
12544 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12545 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12546 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12547 msm_routing_get_audio_mixer,
12548 msm_routing_put_audio_mixer),
12549 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12550 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12551 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12552 msm_routing_get_audio_mixer,
12553 msm_routing_put_audio_mixer),
12554 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12555 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12556 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12557 msm_routing_get_audio_mixer,
12558 msm_routing_put_audio_mixer),
12559 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12560 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12561 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12562 msm_routing_get_audio_mixer,
12563 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012564 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12565 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12566 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12567 msm_routing_put_audio_mixer),
12568 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12569 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12570 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12571 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012572 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12573 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12574 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12575 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012576};
12577
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012578static const struct snd_kcontrol_new pri_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012579 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12580 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012581 MSM_FRONTEND_DAI_VOIP, 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_PRI_I2S_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_PRI_I2S_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),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012591 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12592 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012593 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12594 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012595 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12596 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012597 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12598 msm_routing_put_voice_mixer),
12599};
12600
12601static const struct snd_kcontrol_new sec_i2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012602 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12603 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012604 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12605 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012606 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12607 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012608 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12609 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012610 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12611 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012612 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12613 msm_routing_put_voice_mixer),
12614};
12615
12616static const struct snd_kcontrol_new sec_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012617 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12618 MSM_BACKEND_DAI_SECONDARY_MI2S_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_SECONDARY_MI2S_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_SECONDARY_MI2S_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_SECONDARY_MI2S_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_SECONDARY_MI2S_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
12639static const struct snd_kcontrol_new slimbus_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012640 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12641 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012642 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,
12645 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012646 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,
12649 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012650 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,
12653 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012654 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,
12657 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012658 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12659 msm_routing_put_voice_mixer),
12660};
12661
12662static const struct snd_kcontrol_new slimbus_6_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012663 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12664MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012665 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12666 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012667 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12668MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012669 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12670 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012671 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12672MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012673 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12674 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012675 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12676MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012677 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12678 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012679 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12680MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012681 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12682 msm_routing_put_voice_mixer),
12683};
12684
12685static const struct snd_kcontrol_new usb_audio_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012686 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12687 MSM_BACKEND_DAI_USB_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_USB_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_USB_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_USB_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_USB_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
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012708static const struct snd_kcontrol_new display_port_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012709 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12710MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012711 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,
12714MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012715 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,
12718MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012719 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,
12722MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012723 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,
12726MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012727 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12728 msm_routing_put_voice_mixer),
12729};
12730
Karthikeyan Mani57550082018-05-03 18:43:58 -070012731static const struct snd_kcontrol_new display_port_rx1_voice_mixer_controls[] = {
12732 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12733 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12734 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12735 msm_routing_put_voice_mixer),
12736 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12737 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12738 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12739 msm_routing_put_voice_mixer),
12740 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12741 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12742 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12743 msm_routing_put_voice_mixer),
12744 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12745 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12746 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12747 msm_routing_put_voice_mixer),
12748 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12749 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12750 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12751 msm_routing_put_voice_mixer),
12752};
12753
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012754static const struct snd_kcontrol_new bt_sco_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012755 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12756 MSM_BACKEND_DAI_INT_BT_SCO_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,
12760 MSM_BACKEND_DAI_INT_BT_SCO_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,
12764 MSM_BACKEND_DAI_INT_BT_SCO_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,
12768 MSM_BACKEND_DAI_INT_BT_SCO_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,
12772 MSM_BACKEND_DAI_INT_BT_SCO_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 mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012778 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12779 MSM_BACKEND_DAI_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_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_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_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_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 pri_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012801 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12802MSM_BACKEND_DAI_PRI_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,
12806MSM_BACKEND_DAI_PRI_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,
12810MSM_BACKEND_DAI_PRI_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,
12814MSM_BACKEND_DAI_PRI_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,
12818MSM_BACKEND_DAI_PRI_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 int0_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012824 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12825MSM_BACKEND_DAI_INT0_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,
12829MSM_BACKEND_DAI_INT0_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,
12833MSM_BACKEND_DAI_INT0_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,
12837MSM_BACKEND_DAI_INT0_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,
12841MSM_BACKEND_DAI_INT0_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 int4_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012847 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12848 MSM_BACKEND_DAI_INT4_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_INT4_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_INT4_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_INT4_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_INT4_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 tert_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012870 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12871 MSM_BACKEND_DAI_TERTIARY_MI2S_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_TERTIARY_MI2S_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_TERTIARY_MI2S_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_TERTIARY_MI2S_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_TERTIARY_MI2S_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 quat_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012893 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12894 MSM_BACKEND_DAI_QUATERNARY_MI2S_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_QUATERNARY_MI2S_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_QUATERNARY_MI2S_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_QUATERNARY_MI2S_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_QUATERNARY_MI2S_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 quin_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012916 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12917 MSM_BACKEND_DAI_QUINARY_MI2S_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,
12921 MSM_BACKEND_DAI_QUINARY_MI2S_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,
12925 MSM_BACKEND_DAI_QUINARY_MI2S_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,
12929 MSM_BACKEND_DAI_QUINARY_MI2S_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,
12933 MSM_BACKEND_DAI_QUINARY_MI2S_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 afe_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012939 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12940 MSM_BACKEND_DAI_AFE_PCM_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,
12944 MSM_BACKEND_DAI_AFE_PCM_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,
12948 MSM_BACKEND_DAI_AFE_PCM_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,
12952 MSM_BACKEND_DAI_AFE_PCM_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,
12956 MSM_BACKEND_DAI_AFE_PCM_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 aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012962 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12963 MSM_BACKEND_DAI_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,
12967 MSM_BACKEND_DAI_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,
12971 MSM_BACKEND_DAI_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,
12975 MSM_BACKEND_DAI_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,
12979 MSM_BACKEND_DAI_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
12984static const struct snd_kcontrol_new sec_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012985 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12986MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013003 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13004 msm_routing_put_voice_mixer),
13005};
13006
13007static const struct snd_kcontrol_new tert_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013008 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13009MSM_BACKEND_DAI_TERT_AUXPCM_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,
13013MSM_BACKEND_DAI_TERT_AUXPCM_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,
13017MSM_BACKEND_DAI_TERT_AUXPCM_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,
13021MSM_BACKEND_DAI_TERT_AUXPCM_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,
13025MSM_BACKEND_DAI_TERT_AUXPCM_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 quat_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013031 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13032MSM_BACKEND_DAI_QUAT_AUXPCM_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_QUAT_AUXPCM_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_QUAT_AUXPCM_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_QUAT_AUXPCM_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_QUAT_AUXPCM_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
Rohit Kumara5077932017-09-10 22:05:05 +053013053static const struct snd_kcontrol_new quin_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013054 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13055MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +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,
13059MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +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,
13063MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +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,
13067MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +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,
13071MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013072 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13073 msm_routing_put_voice_mixer),
13074};
13075
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013076static const struct snd_kcontrol_new hdmi_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013077 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13078 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013079 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13080 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013081 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13082 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013083 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13084 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013085 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13086 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013087 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13088 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013089 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13090 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013091 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13092 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013093 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13094 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013095 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13096 msm_routing_put_voice_mixer),
13097};
13098
13099static const struct snd_kcontrol_new slimbus_7_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013100 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13101MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013102 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13103 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013104 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13105MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013106 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13107 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013108 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13109MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013110 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13111 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013112 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13113MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013114 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13115 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013116 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13117MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013118 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13119 msm_routing_put_voice_mixer),
13120};
13121
13122static const struct snd_kcontrol_new slimbus_8_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013123 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13124 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013125 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13126 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013127 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13128 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013129 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13130 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013131 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13132 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013133 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13134 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013135 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13136 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013137 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13138 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013139 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13140 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013141 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13142 msm_routing_put_voice_mixer),
13143};
13144
13145static const struct snd_kcontrol_new quat_tdm_rx_2_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013146 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13147 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013148 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13149 msm_routing_put_voice_mixer),
13150};
13151
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013152static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_voice_mixer_controls[] = {
13153 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13154 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
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_WSA_CDC_DMA_RX_0,
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_WSA_CDC_DMA_RX_0,
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_WSA_CDC_DMA_RX_0,
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_WSA_CDC_DMA_RX_0,
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 wsa_cdc_dma_rx_1_voice_mixer_controls[] = {
13176 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13177 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
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_WSA_CDC_DMA_RX_1,
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_WSA_CDC_DMA_RX_1,
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_WSA_CDC_DMA_RX_1,
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_WSA_CDC_DMA_RX_1,
13194 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13195 msm_routing_put_voice_mixer),
13196};
13197
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013198static const struct snd_kcontrol_new rx_cdc_dma_rx_0_voice_mixer_controls[] = {
13199 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13200 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
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_0,
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_0,
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_0,
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_0,
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_1_voice_mixer_controls[] = {
13222 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13223 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
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_1,
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_1,
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_1,
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_1,
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_2_voice_mixer_controls[] = {
13245 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13246 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
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_2,
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_2,
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_2,
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_2,
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_3_voice_mixer_controls[] = {
13268 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13269 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
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_3,
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_3,
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_3,
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_3,
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_4_voice_mixer_controls[] = {
13291 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13292 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
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_4,
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_4,
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_4,
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_4,
13309 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13310 msm_routing_put_voice_mixer),
13311};
13312
13313static const struct snd_kcontrol_new rx_cdc_dma_rx_5_voice_mixer_controls[] = {
13314 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13315 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13316 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13317 msm_routing_put_voice_mixer),
13318 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13319 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13320 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13321 msm_routing_put_voice_mixer),
13322 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13323 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13324 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13325 msm_routing_put_voice_mixer),
13326 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13327 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13328 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13329 msm_routing_put_voice_mixer),
13330 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13331 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13332 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13333 msm_routing_put_voice_mixer),
13334};
13335
13336static const struct snd_kcontrol_new rx_cdc_dma_rx_6_voice_mixer_controls[] = {
13337 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13338 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13339 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13340 msm_routing_put_voice_mixer),
13341 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13342 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13343 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13344 msm_routing_put_voice_mixer),
13345 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13346 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13347 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13348 msm_routing_put_voice_mixer),
13349 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13350 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13351 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13352 msm_routing_put_voice_mixer),
13353 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13354 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13355 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13356 msm_routing_put_voice_mixer),
13357};
13358
13359static const struct snd_kcontrol_new rx_cdc_dma_rx_7_voice_mixer_controls[] = {
13360 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13361 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13362 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13363 msm_routing_put_voice_mixer),
13364 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13365 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13366 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13367 msm_routing_put_voice_mixer),
13368 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13369 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13370 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13371 msm_routing_put_voice_mixer),
13372 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13373 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13374 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13375 msm_routing_put_voice_mixer),
13376 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13377 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13378 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13379 msm_routing_put_voice_mixer),
13380};
13381
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013382static const struct snd_kcontrol_new stub_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013383 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13384 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013385 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13386 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013387 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13388 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013389 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13390 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013391};
13392
13393static const struct snd_kcontrol_new slimbus_1_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013394 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13395 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013396 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("VoiceMMode2", SND_SOC_NOPM,
13399 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013400 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13401 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013402};
13403
13404static const struct snd_kcontrol_new slimbus_3_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013405 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13406 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013407 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13408 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013409 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13410 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013411 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13412 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013413};
13414
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013415static const struct snd_kcontrol_new tx_voicemmode1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013416 SOC_DOUBLE_EXT("PRI_TX_MMode1", SND_SOC_NOPM,
13417 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013418 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13419 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013420 SOC_DOUBLE_EXT("MI2S_TX_MMode1", SND_SOC_NOPM,
13421 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013422 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13423 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013424 SOC_DOUBLE_EXT("SLIM_0_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013425 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13426 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013427 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013428 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13429 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013430 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013431 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
13432 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013433 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013434 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
13435 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013436 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013437 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13438 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013439 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013440 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13441 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013442 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013443 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13444 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013445 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053013446 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13447 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013448 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013449 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
13450 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013451 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013452 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
13453 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013454 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013455 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
13456 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013457 SOC_DOUBLE_EXT("SLIM_7_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013458 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13459 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013460 SOC_DOUBLE_EXT("SLIM_8_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013461 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13462 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013463 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode1", SND_SOC_NOPM,
13464 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013465 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13466 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013467 SOC_DOUBLE_EXT("QUAT_TDM_TX_0_MMode1", SND_SOC_NOPM,
13468MSM_BACKEND_DAI_QUAT_TDM_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013469 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013470 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
13471 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
13472 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13473 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
13474 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
13475 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013476 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
13477 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
13478 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013479 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
13480 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
13481 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13482 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
13483 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
13484 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13485 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
13486 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
13487 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13488 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode1", SND_SOC_NOPM,
13489 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
13490 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13491 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode1", SND_SOC_NOPM,
13492 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE1,
13493 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13494 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode1", SND_SOC_NOPM,
13495 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE1,
13496 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013497};
13498
13499static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013500 SOC_DOUBLE_EXT("PRI_TX_MMode2", SND_SOC_NOPM,
13501 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013502 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13503 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013504 SOC_DOUBLE_EXT("MI2S_TX_MMode2", SND_SOC_NOPM,
13505 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013506 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13507 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013508 SOC_DOUBLE_EXT("SLIM_0_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013509 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13510 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013511 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013512 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13513 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013514 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013515 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13516 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013517 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013518 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13519 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013520 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013521 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13522 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013523 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013524 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13525 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013526 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013527 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13528 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013529 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053013530 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13531 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013532 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013533 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13534 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013535 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013536 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
13537 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013538 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013539 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
13540 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013541 SOC_DOUBLE_EXT("SLIM_7_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013542 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13543 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013544 SOC_DOUBLE_EXT("SLIM_8_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013545 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13546 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013547 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013548 MSM_BACKEND_DAI_USB_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13549 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013550 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
13551 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
13552 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13553 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
13554 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
13555 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013556 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
13557 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
13558 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013559 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
13560 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
13561 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13562 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
13563 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
13564 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13565 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
13566 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
13567 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13568 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode2", SND_SOC_NOPM,
13569 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
13570 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13571 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode2", SND_SOC_NOPM,
13572 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE2,
13573 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13574 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode2", SND_SOC_NOPM,
13575 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE2,
13576 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013577};
13578
13579static const struct snd_kcontrol_new tx_voip_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013580 SOC_DOUBLE_EXT("PRI_TX_Voip", SND_SOC_NOPM,
13581 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013582 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13583 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013584 SOC_DOUBLE_EXT("MI2S_TX_Voip", SND_SOC_NOPM,
13585 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013586 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13587 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013588 SOC_DOUBLE_EXT("SLIM_0_TX_Voip", SND_SOC_NOPM,
13589 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013590 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13591 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013592 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_Voip", SND_SOC_NOPM,
13593 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013594 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13595 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013596 SOC_DOUBLE_EXT("AFE_PCM_TX_Voip", SND_SOC_NOPM,
13597 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013598 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13599 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013600 SOC_DOUBLE_EXT("AUX_PCM_TX_Voip", SND_SOC_NOPM,
13601 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013602 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13603 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013604 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13605 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013606 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13607 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013608 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13609 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013610 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13611 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013612 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13613 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013614 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13615 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013616 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13617 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013618 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13619 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013620 SOC_DOUBLE_EXT("PRI_MI2S_TX_Voip", SND_SOC_NOPM,
13621 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013622 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13623 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013624 SOC_DOUBLE_EXT("TERT_MI2S_TX_Voip", SND_SOC_NOPM,
13625 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013626 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13627 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013628 SOC_DOUBLE_EXT("INT3_MI2S_TX_Voip", SND_SOC_NOPM,
13629 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013630 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13631 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013632 SOC_DOUBLE_EXT("SLIM_7_TX_Voip", SND_SOC_NOPM,
13633 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013634 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13635 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013636 SOC_DOUBLE_EXT("SLIM_8_TX_Voip", SND_SOC_NOPM,
13637 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013638 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13639 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013640 SOC_DOUBLE_EXT("USB_AUDIO_TX_Voip", SND_SOC_NOPM,
13641 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013642 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13643 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013644 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
13645 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
13646 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13647 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
13648 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
13649 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013650 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
13651 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
13652 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013653 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
13654 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
13655 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13656 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
13657 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
13658 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13659 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
13660 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
13661 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13662 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_Voip", SND_SOC_NOPM,
13663 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOIP,
13664 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13665 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_Voip", SND_SOC_NOPM,
13666 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOIP,
13667 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13668 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_Voip", SND_SOC_NOPM,
13669 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOIP,
13670 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013671};
13672
13673static const struct snd_kcontrol_new tx_voice_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013674 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13675 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013676 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13677 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013678 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13679 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013680 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13681 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013682 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13683 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013684 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13685 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013686 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13687 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013688 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13689 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013690 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13691 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013692 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13693 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013694 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13695 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013696 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13697 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013698 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13699 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013700 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13701 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013702 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13703 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013704 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13705 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013706 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13707 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013708 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13709 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013710 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13711 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013712 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13713 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013714 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13715 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013716 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13717 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013718 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13719 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013720 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13721 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013722 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13723 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013724 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13725 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013726 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13727 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013728 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13729 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013730 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13731 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013732 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13733 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013734 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13735 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013736 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13737 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013738 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13739 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013740 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13741 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013742 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13743 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013744 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13745 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013746 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13747 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013748 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13749 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013750 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13751 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
13752 1, 0, msm_routing_get_voice_stub_mixer,
13753 msm_routing_put_voice_stub_mixer),
13754 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13755 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
13756 1, 0, msm_routing_get_voice_stub_mixer,
13757 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013758 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13759 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
13760 1, 0, msm_routing_get_voice_stub_mixer,
13761 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013762 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13763 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
13764 1, 0, msm_routing_get_voice_stub_mixer,
13765 msm_routing_put_voice_stub_mixer),
13766 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13767 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
13768 1, 0, msm_routing_get_voice_stub_mixer,
13769 msm_routing_put_voice_stub_mixer),
13770 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13771 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
13772 1, 0, msm_routing_get_voice_stub_mixer,
13773 msm_routing_put_voice_stub_mixer),
13774 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13775 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE_STUB,
13776 1, 0, msm_routing_get_voice_stub_mixer,
13777 msm_routing_put_voice_stub_mixer),
13778 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13779 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE_STUB,
13780 1, 0, msm_routing_get_voice_stub_mixer,
13781 msm_routing_put_voice_stub_mixer),
13782 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13783 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE_STUB,
13784 1, 0, msm_routing_get_voice_stub_mixer,
13785 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013786};
13787
13788static const struct snd_kcontrol_new tx_voice2_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013789 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13790 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013791 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13792 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013793 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13794 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013795 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13796 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013797 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13798 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013799 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13800 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013801 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13802 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013803 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13804 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013805 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13806 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013807 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13808 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013809 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13810 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013811 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13812 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013813 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13814 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013815 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13816 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013817 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13818 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013819 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13820 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013821 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13822 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013823 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13824 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013825 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13826 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013827 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13828 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013829 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13830 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013831 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13832 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013833 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13834 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013835 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13836 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013837 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13838 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013839 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13840 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013841 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13842 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013843 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13844 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013845 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13846 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013847 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13848 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013849 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13850 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
13851 1, 0, msm_routing_get_voice_stub_mixer,
13852 msm_routing_put_voice_stub_mixer),
13853 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13854 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
13855 1, 0, msm_routing_get_voice_stub_mixer,
13856 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013857 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13858 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
13859 1, 0, msm_routing_get_voice_stub_mixer,
13860 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013861 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13862 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
13863 1, 0, msm_routing_get_voice_stub_mixer,
13864 msm_routing_put_voice_stub_mixer),
13865 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13866 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
13867 1, 0, msm_routing_get_voice_stub_mixer,
13868 msm_routing_put_voice_stub_mixer),
13869 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13870 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
13871 1, 0, msm_routing_get_voice_stub_mixer,
13872 msm_routing_put_voice_stub_mixer),
13873 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13874 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE2_STUB,
13875 1, 0, msm_routing_get_voice_stub_mixer,
13876 msm_routing_put_voice_stub_mixer),
13877 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13878 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE2_STUB,
13879 1, 0, msm_routing_get_voice_stub_mixer,
13880 msm_routing_put_voice_stub_mixer),
13881 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13882 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE2_STUB,
13883 1, 0, msm_routing_get_voice_stub_mixer,
13884 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013885};
13886
13887static const struct snd_kcontrol_new tx_volte_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013888 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13889 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013890 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13891 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013892 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13893 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013894 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13895 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013896 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13897 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013898 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13899 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013900 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13901 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013902 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13903 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013904 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13905 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013906 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13907 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013908 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13909 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013910 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13911 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013912 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13913 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013914 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13915 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013916 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13917 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013918 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13919 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013920 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13921 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013922 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13923 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013924 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13925 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013926 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13927 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013928 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13929 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013930 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13931 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013932 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13933 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013934 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13935 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013936 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13937 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013938 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13939 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013940 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13941 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013942 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13943 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013944 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13945 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013946 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13947 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013948 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13949 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
13950 1, 0, msm_routing_get_voice_stub_mixer,
13951 msm_routing_put_voice_stub_mixer),
13952 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13953 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
13954 1, 0, msm_routing_get_voice_stub_mixer,
13955 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013956 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13957 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
13958 1, 0, msm_routing_get_voice_stub_mixer,
13959 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013960 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13961 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
13962 1, 0, msm_routing_get_voice_stub_mixer,
13963 msm_routing_put_voice_stub_mixer),
13964 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13965 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
13966 1, 0, msm_routing_get_voice_stub_mixer,
13967 msm_routing_put_voice_stub_mixer),
13968 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13969 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
13970 1, 0, msm_routing_get_voice_stub_mixer,
13971 msm_routing_put_voice_stub_mixer),
13972 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13973 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOLTE_STUB,
13974 1, 0, msm_routing_get_voice_stub_mixer,
13975 msm_routing_put_voice_stub_mixer),
13976 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13977 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOLTE_STUB,
13978 1, 0, msm_routing_get_voice_stub_mixer,
13979 msm_routing_put_voice_stub_mixer),
13980 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13981 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOLTE_STUB,
13982 1, 0, msm_routing_get_voice_stub_mixer,
13983 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013984};
13985
13986static const struct snd_kcontrol_new tx_qchat_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013987 SOC_DOUBLE_EXT("PRI_TX_QCHAT", SND_SOC_NOPM,
13988 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013989 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13990 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013991 SOC_DOUBLE_EXT("SLIM_0_TX_QCHAT", SND_SOC_NOPM,
13992 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013993 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13994 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013995 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_QCHAT", SND_SOC_NOPM,
13996 MSM_BACKEND_DAI_INT_BT_SCO_TX,
13997 MSM_FRONTEND_DAI_QCHAT, 1, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013998 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013999 SOC_DOUBLE_EXT("AFE_PCM_TX_QCHAT", SND_SOC_NOPM,
14000 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014001 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14002 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014003 SOC_DOUBLE_EXT("AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
14004 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014005 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14006 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014007 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
14008 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014009 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14010 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014011 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
14012 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014013 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14014 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014015 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
14016 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014017 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14018 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014019 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
14020 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053014021 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14022 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014023 SOC_DOUBLE_EXT("MI2S_TX_QCHAT", SND_SOC_NOPM,
14024 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014025 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14026 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014027 SOC_DOUBLE_EXT("PRI_MI2S_TX_QCHAT", SND_SOC_NOPM,
14028 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014029 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14030 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014031 SOC_DOUBLE_EXT("TERT_MI2S_TX_QCHAT", SND_SOC_NOPM,
14032 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014033 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14034 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014035 SOC_DOUBLE_EXT("INT3_MI2S_TX_QCHAT", SND_SOC_NOPM,
14036 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014037 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14038 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014039 SOC_DOUBLE_EXT("SLIM_7_TX_QCHAT", SND_SOC_NOPM,
14040 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014041 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14042 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014043 SOC_DOUBLE_EXT("SLIM_8_TX_QCHAT", SND_SOC_NOPM,
14044 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014045 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14046 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014047 SOC_DOUBLE_EXT("USB_AUDIO_TX_QCHAT", SND_SOC_NOPM,
14048 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014049 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14050 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014051 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
14052 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
14053 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14054 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
14055 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
14056 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014057 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
14058 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
14059 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014060 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
14061 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
14062 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14063 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
14064 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
14065 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14066 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
14067 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
14068 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14069 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_QCHAT", SND_SOC_NOPM,
14070 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_QCHAT,
14071 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14072 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_QCHAT", SND_SOC_NOPM,
14073 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_QCHAT,
14074 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14075 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_QCHAT", SND_SOC_NOPM,
14076 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_QCHAT,
14077 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014078};
14079
14080static const struct snd_kcontrol_new int0_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014081 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14082 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014083 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14084 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014085 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14086 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014087 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14088 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014089 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14090 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014091 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14092 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014093 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14094 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014095 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14096 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014097 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14098 MSM_BACKEND_DAI_INT0_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014099 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14100 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014101 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14102 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014103 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14104 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014105 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14106 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014107 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14108 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014109 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14110 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014111 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14112 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014113 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14114 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014115 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
14116 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014117 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14118 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014119 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14120 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053014121 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14122 MSM_BACKEND_DAI_INT0_MI2S_RX,
14123 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
14124 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014125};
14126
14127static const struct snd_kcontrol_new int4_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014128 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14129 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014130 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14131 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014132 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14133 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014134 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14135 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014136 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14137 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014138 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14139 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014140 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14141 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014142 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14143 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014144 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14145 MSM_BACKEND_DAI_INT4_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014146 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14147 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014148 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14149 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014150 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14151 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014152 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14153 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014154 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14155 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014156 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14157 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014158 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14159 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014160 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14161 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014162 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
14163 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014164 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14165 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014166 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14167 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053014168 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14169 MSM_BACKEND_DAI_INT4_MI2S_RX,
14170 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
14171 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014172};
14173
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053014174static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_port_mixer_controls[] = {
14175 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14176 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
14177 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, 1, 0, msm_routing_get_port_mixer,
14178 msm_routing_put_port_mixer),
14179 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14180 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
14181 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
14182 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080014183 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14184 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
14185 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14186 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080014187 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14188 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
14189 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14190 msm_routing_put_port_mixer),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053014191};
14192
14193static const struct snd_kcontrol_new rx_cdc_dma_rx_0_port_mixer_controls[] = {
14194 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14195 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
14196 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
14197 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080014198 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14199 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
14200 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14201 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053014202 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
Meng Wang3f8ba542018-12-10 14:17:10 +080014203 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
Surendar Karka3ef3d812018-09-28 18:52:35 +053014204 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
14205 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080014206 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14207 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
14208 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14209 msm_routing_put_port_mixer),
14210
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053014211};
14212
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014213static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014214 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14215 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014216 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14217 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014218 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14219 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014220 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14221 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014222 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14223 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014224 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14225 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014226 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14227 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014228 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
14229 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014230 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14231 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014232 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14233 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014234 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14235 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014236 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14237 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014238 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14239 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014240 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14241 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014242 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
14243 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014244 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14245 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014246 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
14247 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014248 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14249 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014250 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
14251 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014252 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14253 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014254 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14255 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014256 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14257 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014258 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14259 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014260 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14261 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014262 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14263 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014264 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14265 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014266 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14267 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014268 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14269 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014270 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14271 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014272 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14273 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014274 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14275 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014276 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14277 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014278 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14279 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014280 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14281 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014282 SOC_DOUBLE_EXT("PRI_MI2S_RX", SND_SOC_NOPM,
14283 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014284 MSM_BACKEND_DAI_PRI_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
14285 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014286 SOC_DOUBLE_EXT("SEC_MI2S_RX", SND_SOC_NOPM,
14287 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014288 MSM_BACKEND_DAI_SECONDARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
14289 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014290 SOC_DOUBLE_EXT("TERT_MI2S_RX", SND_SOC_NOPM,
14291 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014292 MSM_BACKEND_DAI_TERTIARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
14293 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014294 SOC_DOUBLE_EXT("QUAT_MI2S_RX", SND_SOC_NOPM,
14295 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014296 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
14297 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014298 SOC_DOUBLE_EXT("QUIN_MI2S_RX", SND_SOC_NOPM,
14299 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Surendar Karka3ef3d812018-09-28 18:52:35 +053014300 MSM_BACKEND_DAI_QUINARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
14301 msm_routing_put_port_mixer),
14302 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14303 MSM_BACKEND_DAI_SLIMBUS_0_RX,
14304 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
Rohit Kumara5077932017-09-10 22:05:05 +053014305 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014306};
14307
14308static const struct snd_kcontrol_new aux_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014309 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14310 MSM_BACKEND_DAI_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),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014313 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14314 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014315 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14316 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014317 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14318 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014319 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14320 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014321 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14322 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014323 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14324 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014325 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14326 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014327 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
14328 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014329 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14330 MSM_BACKEND_DAI_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080014331 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14332 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014333};
14334
14335static const struct snd_kcontrol_new sec_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014336 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14337 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014338 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14339 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014340 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14341 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014342 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14343 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014344 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14345 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014346 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14347 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014348 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14349 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080014350 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14351 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014352};
14353
14354static const struct snd_kcontrol_new tert_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014355 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
14356 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014357 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14358 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014359 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14360 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014361 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14362 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014363 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14364 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014365 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14366 msm_routing_put_port_mixer),
14367};
14368
14369static const struct snd_kcontrol_new quat_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014370 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
14371 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014372 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14373 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014374 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14375 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014376 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14377 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014378 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14379 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014380 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14381 msm_routing_put_port_mixer),
14382};
14383
Rohit Kumara5077932017-09-10 22:05:05 +053014384static const struct snd_kcontrol_new quin_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014385 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
14386 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014387 MSM_BACKEND_DAI_QUIN_AUXPCM_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_0_TX", SND_SOC_NOPM,
14390 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014391 MSM_BACKEND_DAI_SLIMBUS_0_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
14394 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014395 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14396 msm_routing_put_port_mixer),
14397};
14398
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014399static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014400 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14401 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014402 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14403 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014404 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14405 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014406 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0, msm_routing_get_port_mixer,
14407 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014408 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14409 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014410 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14411 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014412 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14413 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014414 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14415 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014416 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
14417 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014418 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14419 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014420 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
14421 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014422 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14423 msm_routing_put_port_mixer),
14424};
14425
14426static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014427 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_RX", SND_SOC_NOPM,
14428 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014429 MSM_BACKEND_DAI_INT_BT_SCO_RX, 1, 0, msm_routing_get_port_mixer,
14430 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014431 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14432 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014433 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14434 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014435 SOC_DOUBLE_EXT("AFE_PCM_RX", SND_SOC_NOPM,
14436 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014437 MSM_BACKEND_DAI_AFE_PCM_RX, 1, 0, msm_routing_get_port_mixer,
14438 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014439 SOC_DOUBLE_EXT("AUX_PCM_RX", SND_SOC_NOPM,
14440 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014441 MSM_BACKEND_DAI_AUXPCM_RX, 1, 0, msm_routing_get_port_mixer,
14442 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014443 SOC_DOUBLE_EXT("SLIM_0_RX", SND_SOC_NOPM,
14444 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014445 MSM_BACKEND_DAI_SLIMBUS_0_RX, 1, 0, msm_routing_get_port_mixer,
14446 msm_routing_put_port_mixer),
14447};
14448
14449static const struct snd_kcontrol_new sbus_6_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014450 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14451 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014452 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14453 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014454 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14455 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014456 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14457 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014458 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14459 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014460 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14461 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014462 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14463 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014464 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
14465 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014466 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14467 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014468 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14469 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014470 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14471 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014472 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14473 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014474 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14475 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014476 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14477 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014478 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14479 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014480 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14481 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014482 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14483 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014484 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14485 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014486 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14487 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014488 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14489 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014490 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14491 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014492 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14493 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014494 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14495 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014496 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14497 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053014498 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14499 MSM_BACKEND_DAI_SLIMBUS_6_RX,
14500 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
14501 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014502};
14503
14504static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014505 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14506 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014507 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14508 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014509 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14510 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014511 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14512 msm_routing_put_port_mixer),
14513};
14514
14515static const struct snd_kcontrol_new afe_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014516 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14517 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014518 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14519 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014520 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14521 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014522 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14523 msm_routing_put_port_mixer),
14524};
14525
14526
14527static const struct snd_kcontrol_new hdmi_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014528 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14529 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014530 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14531 msm_routing_put_port_mixer),
14532};
14533
14534static const struct snd_kcontrol_new display_port_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014535 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14536 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014537 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14538 msm_routing_put_port_mixer),
14539};
14540
Karthikeyan Mani57550082018-05-03 18:43:58 -070014541static const struct snd_kcontrol_new display_port_rx1_port_mixer_controls[] = {
14542 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14543 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
14544 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14545 msm_routing_put_port_mixer),
14546};
14547
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014548static const struct snd_kcontrol_new sec_i2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014549 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14550 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014551 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14552 msm_routing_put_port_mixer),
14553};
14554
14555static const struct snd_kcontrol_new mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014556 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14557 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014558 MSM_BACKEND_DAI_SLIMBUS_1_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("MI2S_TX", SND_SOC_NOPM,
14561 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014562 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14563 msm_routing_put_port_mixer),
14564};
14565
14566static const struct snd_kcontrol_new primary_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014567 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14568 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014569 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14570 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014571 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14572 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014573 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14574 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014575 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14576 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014577 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14578 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014579 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14580 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014581 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14582 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014583 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14584 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014585 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14586 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014587 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14588 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("QUIN_MI2S_TX", SND_SOC_NOPM,
14592 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014593 MSM_BACKEND_DAI_QUINARY_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_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("SLIM_8_TX", SND_SOC_NOPM,
14600 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014601 MSM_BACKEND_DAI_SLIMBUS_8_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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14604 MSM_BACKEND_DAI_PRI_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080014605 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14606 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014607};
14608
14609static const struct snd_kcontrol_new usb_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014610 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
14611 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014612 MSM_BACKEND_DAI_USB_TX, 1, 0, msm_routing_get_port_mixer,
14613 msm_routing_put_port_mixer),
14614};
14615
14616static const struct snd_kcontrol_new quat_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014617 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14618 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014619 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14620 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014621 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14622 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014623 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14624 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014625 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14626 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014627 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14628 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014629 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14630 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014631 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14632 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014633 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14634 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014635 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14636 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014637 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14638 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014639 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14640 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014641 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14642 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014643 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14644 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014645 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14646 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014647 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14648 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014649 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14650 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014651 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14652 msm_routing_put_port_mixer),
14653};
14654
Rohit Kumara5077932017-09-10 22:05:05 +053014655static const struct snd_kcontrol_new quin_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014656 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14657 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014658 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14659 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014660 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14661 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014662 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14663 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014664 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14665 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014666 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14667 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014668 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14669 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014670 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14671 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014672 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14673 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014674 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14675 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014676 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14677 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014678 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14679 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014680 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14681 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014682 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14683 msm_routing_put_port_mixer),
14684};
14685
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014686static const struct snd_kcontrol_new pri_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014687 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14688 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014689 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14690 msm_routing_get_port_mixer,
14691 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014692 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14693 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014694 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14695 msm_routing_get_port_mixer,
14696 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014697 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14698 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014699 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14700 msm_routing_get_port_mixer,
14701 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014702 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14703 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014704 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14705 msm_routing_get_port_mixer,
14706 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014707 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14708 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014709 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14710 msm_routing_get_port_mixer,
14711 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014712 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14713 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014714 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14715 msm_routing_get_port_mixer,
14716 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014717 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14718 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014719 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14720 msm_routing_get_port_mixer,
14721 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014722 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14723 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014724 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14725 msm_routing_get_port_mixer,
14726 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014727 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14728 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014729 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14730 msm_routing_get_port_mixer,
14731 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014732 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14733 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014734 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14735 msm_routing_get_port_mixer,
14736 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014737 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14738 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014739 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14740 msm_routing_get_port_mixer,
14741 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014742 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14743 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014744 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14745 msm_routing_get_port_mixer,
14746 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014747 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14748 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014749 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14750 msm_routing_get_port_mixer,
14751 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014752 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14753 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014754 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14755 msm_routing_get_port_mixer,
14756 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014757 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14758 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014759 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14760 msm_routing_get_port_mixer,
14761 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014762 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14763 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014764 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14765 msm_routing_get_port_mixer,
14766 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014767 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14768 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014769 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14770 msm_routing_get_port_mixer,
14771 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014772 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14773 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014774 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14775 msm_routing_get_port_mixer,
14776 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014777 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14778 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014779 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14780 msm_routing_get_port_mixer,
14781 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014782 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14783 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014784 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14785 msm_routing_get_port_mixer,
14786 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014787};
14788
14789static const struct snd_kcontrol_new pri_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014790 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14791 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014792 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14793 msm_routing_get_port_mixer,
14794 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014795 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14796 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014797 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14798 msm_routing_get_port_mixer,
14799 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014800 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14801 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014802 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14803 msm_routing_get_port_mixer,
14804 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014805 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14806 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014807 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14808 msm_routing_get_port_mixer,
14809 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014810 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14811 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014812 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14813 msm_routing_get_port_mixer,
14814 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014815 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14816 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014817 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14818 msm_routing_get_port_mixer,
14819 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014820 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14821 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014822 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14823 msm_routing_get_port_mixer,
14824 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014825 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14826 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014827 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14828 msm_routing_get_port_mixer,
14829 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014830 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14831 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014832 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14833 msm_routing_get_port_mixer,
14834 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014835 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14836 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014837 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14838 msm_routing_get_port_mixer,
14839 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014840 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14841 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014842 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14843 msm_routing_get_port_mixer,
14844 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014845 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14846 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014847 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14848 msm_routing_get_port_mixer,
14849 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014850 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14851 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014852 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14853 msm_routing_get_port_mixer,
14854 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014855 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14856 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014857 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14858 msm_routing_get_port_mixer,
14859 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014860 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14861 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014862 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14863 msm_routing_get_port_mixer,
14864 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014865 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14866 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014867 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14868 msm_routing_get_port_mixer,
14869 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014870 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14871 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014872 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14873 msm_routing_get_port_mixer,
14874 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014875 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14876 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014877 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14878 msm_routing_get_port_mixer,
14879 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014880 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14881 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014882 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14883 msm_routing_get_port_mixer,
14884 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014885 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14886 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014887 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14888 msm_routing_get_port_mixer,
14889 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014890};
14891
14892static const struct snd_kcontrol_new pri_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014893 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14894 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014895 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14896 msm_routing_get_port_mixer,
14897 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014898 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14899 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014900 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14901 msm_routing_get_port_mixer,
14902 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014903 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14904 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014905 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14906 msm_routing_get_port_mixer,
14907 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014908 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14909 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014910 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14911 msm_routing_get_port_mixer,
14912 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014913 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14914 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014915 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14916 msm_routing_get_port_mixer,
14917 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014918 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14919 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014920 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14921 msm_routing_get_port_mixer,
14922 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014923 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14924 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014925 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14926 msm_routing_get_port_mixer,
14927 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014928 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14929 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014930 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14931 msm_routing_get_port_mixer,
14932 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014933 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14934 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014935 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14936 msm_routing_get_port_mixer,
14937 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014938 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14939 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014940 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14941 msm_routing_get_port_mixer,
14942 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014943 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14944 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014945 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14946 msm_routing_get_port_mixer,
14947 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014948 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14949 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014950 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14951 msm_routing_get_port_mixer,
14952 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014953 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14954 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014955 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14956 msm_routing_get_port_mixer,
14957 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014958 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14959 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014960 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14961 msm_routing_get_port_mixer,
14962 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014963 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14964 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014965 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14966 msm_routing_get_port_mixer,
14967 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014968 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14969 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014970 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14971 msm_routing_get_port_mixer,
14972 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014973 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14974 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014975 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14976 msm_routing_get_port_mixer,
14977 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014978 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14979 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014980 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14981 msm_routing_get_port_mixer,
14982 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014983 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14984 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014985 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14986 msm_routing_get_port_mixer,
14987 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014988 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14989 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014990 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14991 msm_routing_get_port_mixer,
14992 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014993};
14994
14995static const struct snd_kcontrol_new pri_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014996 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14997 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014998 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14999 msm_routing_get_port_mixer,
15000 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015001 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15002 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015003 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15004 msm_routing_get_port_mixer,
15005 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015006 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15007 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015008 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15009 msm_routing_get_port_mixer,
15010 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015011 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15012 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015013 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15014 msm_routing_get_port_mixer,
15015 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015016 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15017 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015018 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15019 msm_routing_get_port_mixer,
15020 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015021 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15022 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015023 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15024 msm_routing_get_port_mixer,
15025 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015026 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15027 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015028 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15029 msm_routing_get_port_mixer,
15030 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015031 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15032 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015033 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15034 msm_routing_get_port_mixer,
15035 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015036 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
15037 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015038 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
15039 msm_routing_get_port_mixer,
15040 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015041 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
15042 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015043 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
15044 msm_routing_get_port_mixer,
15045 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015046 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
15047 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015048 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
15049 msm_routing_get_port_mixer,
15050 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015051 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
15052 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015053 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
15054 msm_routing_get_port_mixer,
15055 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015056 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15057 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015058 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15059 msm_routing_get_port_mixer,
15060 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015061 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15062 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015063 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15064 msm_routing_get_port_mixer,
15065 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015066 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15067 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015068 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15069 msm_routing_get_port_mixer,
15070 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015071 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15072 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015073 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15074 msm_routing_get_port_mixer,
15075 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015076 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15077 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015078 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15079 msm_routing_get_port_mixer,
15080 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015081 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15082 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015083 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15084 msm_routing_get_port_mixer,
15085 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015086 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15087 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015088 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15089 msm_routing_get_port_mixer,
15090 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015091 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15092 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015093 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15094 msm_routing_get_port_mixer,
15095 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015096};
15097
15098static const struct snd_kcontrol_new sec_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015099 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15100 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015101 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15102 msm_routing_get_port_mixer,
15103 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015104 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15105 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015106 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15107 msm_routing_get_port_mixer,
15108 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015109 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15110 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015111 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15112 msm_routing_get_port_mixer,
15113 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015114 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15115 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015116 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15117 msm_routing_get_port_mixer,
15118 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015119 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15120 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015121 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15122 msm_routing_get_port_mixer,
15123 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015124 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15125 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015126 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15127 msm_routing_get_port_mixer,
15128 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015129 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15130 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015131 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15132 msm_routing_get_port_mixer,
15133 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015134 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15135 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015136 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15137 msm_routing_get_port_mixer,
15138 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015139 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
15140 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015141 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
15142 msm_routing_get_port_mixer,
15143 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015144 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
15145 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015146 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
15147 msm_routing_get_port_mixer,
15148 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015149 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
15150 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015151 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
15152 msm_routing_get_port_mixer,
15153 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015154 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
15155 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015156 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
15157 msm_routing_get_port_mixer,
15158 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015159 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15160 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015161 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15162 msm_routing_get_port_mixer,
15163 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015164 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15165 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015166 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15167 msm_routing_get_port_mixer,
15168 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015169 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15170 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015171 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15172 msm_routing_get_port_mixer,
15173 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015174 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15175 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015176 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15177 msm_routing_get_port_mixer,
15178 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015179 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15180 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015181 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15182 msm_routing_get_port_mixer,
15183 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015184 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15185 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015186 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15187 msm_routing_get_port_mixer,
15188 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015189 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15190 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015191 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15192 msm_routing_get_port_mixer,
15193 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015194 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15195 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015196 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15197 msm_routing_get_port_mixer,
15198 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015199};
15200
15201static const struct snd_kcontrol_new sec_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015202 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15203 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015204 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15205 msm_routing_get_port_mixer,
15206 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015207 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15208 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015209 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15210 msm_routing_get_port_mixer,
15211 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015212 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15213 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015214 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15215 msm_routing_get_port_mixer,
15216 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015217 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15218 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015219 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15220 msm_routing_get_port_mixer,
15221 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015222 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15223 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015224 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15225 msm_routing_get_port_mixer,
15226 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015227 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15228 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015229 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15230 msm_routing_get_port_mixer,
15231 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015232 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15233 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015234 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15235 msm_routing_get_port_mixer,
15236 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015237 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15238 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015239 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15240 msm_routing_get_port_mixer,
15241 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015242 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
15243 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015244 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
15245 msm_routing_get_port_mixer,
15246 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015247 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
15248 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015249 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
15250 msm_routing_get_port_mixer,
15251 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015252 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
15253 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015254 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
15255 msm_routing_get_port_mixer,
15256 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015257 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
15258 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015259 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
15260 msm_routing_get_port_mixer,
15261 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015262 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15263 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015264 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15265 msm_routing_get_port_mixer,
15266 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015267 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15268 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015269 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15270 msm_routing_get_port_mixer,
15271 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015272 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15273 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015274 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15275 msm_routing_get_port_mixer,
15276 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015277 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15278 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015279 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15280 msm_routing_get_port_mixer,
15281 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015282 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15283 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015284 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15285 msm_routing_get_port_mixer,
15286 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015287 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15288 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015289 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15290 msm_routing_get_port_mixer,
15291 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015292 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15293 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015294 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15295 msm_routing_get_port_mixer,
15296 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015297 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15298 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015299 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15300 msm_routing_get_port_mixer,
15301 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015302};
15303
15304static const struct snd_kcontrol_new sec_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015305 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15306 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015307 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15308 msm_routing_get_port_mixer,
15309 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015310 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15311 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015312 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15313 msm_routing_get_port_mixer,
15314 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015315 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15316 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015317 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15318 msm_routing_get_port_mixer,
15319 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015320 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15321 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015322 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15323 msm_routing_get_port_mixer,
15324 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015325 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15326 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015327 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15328 msm_routing_get_port_mixer,
15329 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015330 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15331 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015332 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15333 msm_routing_get_port_mixer,
15334 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015335 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15336 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015337 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15338 msm_routing_get_port_mixer,
15339 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015340 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15341 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015342 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15343 msm_routing_get_port_mixer,
15344 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015345 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
15346 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015347 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
15348 msm_routing_get_port_mixer,
15349 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015350 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
15351 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015352 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
15353 msm_routing_get_port_mixer,
15354 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015355 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
15356 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015357 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
15358 msm_routing_get_port_mixer,
15359 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015360 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
15361 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015362 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
15363 msm_routing_get_port_mixer,
15364 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015365 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15366 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015367 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15368 msm_routing_get_port_mixer,
15369 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015370 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15371 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015372 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15373 msm_routing_get_port_mixer,
15374 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015375 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15376 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015377 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15378 msm_routing_get_port_mixer,
15379 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015380 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15381 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015382 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15383 msm_routing_get_port_mixer,
15384 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015385 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15386 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015387 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15388 msm_routing_get_port_mixer,
15389 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015390 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15391 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015392 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15393 msm_routing_get_port_mixer,
15394 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015395 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15396 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015397 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15398 msm_routing_get_port_mixer,
15399 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015400 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15401 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015402 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15403 msm_routing_get_port_mixer,
15404 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015405};
15406
15407static const struct snd_kcontrol_new sec_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015408 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15409 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015410 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15411 msm_routing_get_port_mixer,
15412 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015413 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15414 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015415 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15416 msm_routing_get_port_mixer,
15417 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015418 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15419 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015420 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15421 msm_routing_get_port_mixer,
15422 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015423 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15424 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015425 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15426 msm_routing_get_port_mixer,
15427 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015428 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15429 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015430 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15431 msm_routing_get_port_mixer,
15432 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015433 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15434 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015435 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15436 msm_routing_get_port_mixer,
15437 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015438 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15439 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015440 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15441 msm_routing_get_port_mixer,
15442 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015443 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15444 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015445 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15446 msm_routing_get_port_mixer,
15447 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015448 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
15449 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015450 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
15451 msm_routing_get_port_mixer,
15452 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015453 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
15454 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015455 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
15456 msm_routing_get_port_mixer,
15457 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015458 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
15459 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015460 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
15461 msm_routing_get_port_mixer,
15462 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015463 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
15464 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015465 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
15466 msm_routing_get_port_mixer,
15467 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015468 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15469 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015470 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15471 msm_routing_get_port_mixer,
15472 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015473 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15474 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015475 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15476 msm_routing_get_port_mixer,
15477 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015478 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15479 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015480 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15481 msm_routing_get_port_mixer,
15482 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015483 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15484 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015485 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15486 msm_routing_get_port_mixer,
15487 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015488 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15489 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015490 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15491 msm_routing_get_port_mixer,
15492 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015493 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15494 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015495 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15496 msm_routing_get_port_mixer,
15497 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015498 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15499 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015500 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15501 msm_routing_get_port_mixer,
15502 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015503 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15504 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015505 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15506 msm_routing_get_port_mixer,
15507 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015508};
15509
Derek Chenfdcc0982018-10-02 15:14:03 -070015510static const struct snd_kcontrol_new sec_tdm_rx_7_port_mixer_controls[] = {
15511 SOC_DOUBLE_EXT("TERT_TDM_TX_7", SND_SOC_NOPM,
15512 MSM_BACKEND_DAI_SEC_TDM_RX_7,
15513 MSM_BACKEND_DAI_TERT_TDM_TX_7, 1, 0,
15514 msm_routing_get_port_mixer,
15515 msm_routing_put_port_mixer),
15516};
15517
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015518static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015519 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15520 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015521 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15522 msm_routing_get_port_mixer,
15523 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015524 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15525 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015526 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15527 msm_routing_get_port_mixer,
15528 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015529 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15530 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015531 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15532 msm_routing_get_port_mixer,
15533 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015534 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15535 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015536 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15537 msm_routing_get_port_mixer,
15538 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015539 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15540 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015541 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15542 msm_routing_get_port_mixer,
15543 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015544 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15545 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015546 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15547 msm_routing_get_port_mixer,
15548 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015549 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15550 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015551 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15552 msm_routing_get_port_mixer,
15553 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015554 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15555 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015556 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15557 msm_routing_get_port_mixer,
15558 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015559 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15560 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015561 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15562 msm_routing_get_port_mixer,
15563 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015564 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15565 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015566 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15567 msm_routing_get_port_mixer,
15568 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015569 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15570 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015571 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15572 msm_routing_get_port_mixer,
15573 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015574 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15575 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015576 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15577 msm_routing_get_port_mixer,
15578 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015579 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15580 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015581 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15582 msm_routing_get_port_mixer,
15583 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015584 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15585 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015586 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15587 msm_routing_get_port_mixer,
15588 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015589 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15590 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015591 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15592 msm_routing_get_port_mixer,
15593 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015594 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15595 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015596 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15597 msm_routing_get_port_mixer,
15598 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015599 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15600 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015601 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15602 msm_routing_get_port_mixer,
15603 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015604 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15605 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015606 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15607 msm_routing_get_port_mixer,
15608 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015609 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15610 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015611 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15612 msm_routing_get_port_mixer,
15613 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015614 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15615 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015616 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15617 msm_routing_get_port_mixer,
15618 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015619};
15620
15621static const struct snd_kcontrol_new tert_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015622 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15623 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015624 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15625 msm_routing_get_port_mixer,
15626 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015627 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15628 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015629 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15630 msm_routing_get_port_mixer,
15631 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015632 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15633 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015634 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15635 msm_routing_get_port_mixer,
15636 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015637 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15638 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015639 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15640 msm_routing_get_port_mixer,
15641 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015642 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15643 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015644 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15645 msm_routing_get_port_mixer,
15646 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015647 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15648 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015649 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15650 msm_routing_get_port_mixer,
15651 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015652 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15653 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015654 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15655 msm_routing_get_port_mixer,
15656 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015657 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15658 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015659 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15660 msm_routing_get_port_mixer,
15661 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015662 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15663 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015664 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15665 msm_routing_get_port_mixer,
15666 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015667 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15668 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015669 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15670 msm_routing_get_port_mixer,
15671 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015672 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15673 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015674 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15675 msm_routing_get_port_mixer,
15676 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015677 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15678 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015679 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15680 msm_routing_get_port_mixer,
15681 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015682 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15683 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015684 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15685 msm_routing_get_port_mixer,
15686 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015687 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15688 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015689 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15690 msm_routing_get_port_mixer,
15691 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015692 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15693 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015694 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15695 msm_routing_get_port_mixer,
15696 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015697 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15698 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015699 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15700 msm_routing_get_port_mixer,
15701 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015702 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15703 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015704 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15705 msm_routing_get_port_mixer,
15706 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015707 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15708 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015709 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15710 msm_routing_get_port_mixer,
15711 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015712 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15713 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015714 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15715 msm_routing_get_port_mixer,
15716 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015717 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15718 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015719 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15720 msm_routing_get_port_mixer,
15721 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015722};
15723
15724static const struct snd_kcontrol_new tert_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015725 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15726 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015727 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15728 msm_routing_get_port_mixer,
15729 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015730 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15731 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015732 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15733 msm_routing_get_port_mixer,
15734 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015735 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15736 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015737 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15738 msm_routing_get_port_mixer,
15739 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015740 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15741 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015742 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15743 msm_routing_get_port_mixer,
15744 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015745 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15746 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015747 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15748 msm_routing_get_port_mixer,
15749 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015750 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15751 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015752 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15753 msm_routing_get_port_mixer,
15754 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015755 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15756 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015757 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15758 msm_routing_get_port_mixer,
15759 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015760 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15761 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015762 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15763 msm_routing_get_port_mixer,
15764 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015765 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15766 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015767 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15768 msm_routing_get_port_mixer,
15769 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015770 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15771 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015772 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15773 msm_routing_get_port_mixer,
15774 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015775 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15776 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015777 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15778 msm_routing_get_port_mixer,
15779 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015780 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15781 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015782 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15783 msm_routing_get_port_mixer,
15784 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015785 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15786 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015787 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15788 msm_routing_get_port_mixer,
15789 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015790 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15791 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015792 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15793 msm_routing_get_port_mixer,
15794 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015795 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15796 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015797 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15798 msm_routing_get_port_mixer,
15799 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015800 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15801 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015802 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15803 msm_routing_get_port_mixer,
15804 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015805 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15806 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015807 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15808 msm_routing_get_port_mixer,
15809 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015810 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15811 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015812 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15813 msm_routing_get_port_mixer,
15814 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015815 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15816 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015817 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15818 msm_routing_get_port_mixer,
15819 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015820 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15821 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015822 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15823 msm_routing_get_port_mixer,
15824 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015825};
15826
15827static const struct snd_kcontrol_new tert_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015828 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15829 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015830 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15831 msm_routing_get_port_mixer,
15832 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015833 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15834 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015835 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15836 msm_routing_get_port_mixer,
15837 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015838 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15839 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015840 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15841 msm_routing_get_port_mixer,
15842 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015843 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15844 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015845 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15846 msm_routing_get_port_mixer,
15847 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015848 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15849 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015850 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15851 msm_routing_get_port_mixer,
15852 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015853 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15854 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015855 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15856 msm_routing_get_port_mixer,
15857 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015858 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15859 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015860 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15861 msm_routing_get_port_mixer,
15862 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015863 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15864 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015865 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15866 msm_routing_get_port_mixer,
15867 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015868 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15869 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015870 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15871 msm_routing_get_port_mixer,
15872 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015873 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15874 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015875 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15876 msm_routing_get_port_mixer,
15877 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015878 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15879 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015880 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15881 msm_routing_get_port_mixer,
15882 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015883 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15884 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015885 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15886 msm_routing_get_port_mixer,
15887 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015888 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15889 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015890 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15891 msm_routing_get_port_mixer,
15892 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015893 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15894 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015895 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15896 msm_routing_get_port_mixer,
15897 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015898 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15899 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015900 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15901 msm_routing_get_port_mixer,
15902 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015903 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15904 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015905 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15906 msm_routing_get_port_mixer,
15907 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015908 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15909 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015910 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15911 msm_routing_get_port_mixer,
15912 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015913 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15914 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015915 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15916 msm_routing_get_port_mixer,
15917 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015918 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15919 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015920 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15921 msm_routing_get_port_mixer,
15922 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015923 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15924 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015925 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15926 msm_routing_get_port_mixer,
15927 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015928};
15929
15930static const struct snd_kcontrol_new quat_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015931 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15932 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015933 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15934 msm_routing_get_port_mixer,
15935 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015936 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15937 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015938 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15939 msm_routing_get_port_mixer,
15940 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015941 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15942 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015943 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15944 msm_routing_get_port_mixer,
15945 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015946 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15947 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015948 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15949 msm_routing_get_port_mixer,
15950 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015951 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15952 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015953 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15954 msm_routing_get_port_mixer,
15955 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015956 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15957 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015958 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15959 msm_routing_get_port_mixer,
15960 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015961 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15962 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015963 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15964 msm_routing_get_port_mixer,
15965 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015966 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15967 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015968 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15969 msm_routing_get_port_mixer,
15970 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015971 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15972 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015973 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15974 msm_routing_get_port_mixer,
15975 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015976 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15977 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015978 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15979 msm_routing_get_port_mixer,
15980 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015981 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15982 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015983 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15984 msm_routing_get_port_mixer,
15985 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015986 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15987 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015988 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15989 msm_routing_get_port_mixer,
15990 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015991 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15992 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015993 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15994 msm_routing_get_port_mixer,
15995 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015996 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15997 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015998 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15999 msm_routing_get_port_mixer,
16000 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016001 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16002 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016003 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16004 msm_routing_get_port_mixer,
16005 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016006 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16007 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016008 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16009 msm_routing_get_port_mixer,
16010 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016011 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16012 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016013 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16014 msm_routing_get_port_mixer,
16015 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016016 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16017 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016018 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16019 msm_routing_get_port_mixer,
16020 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016021 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16022 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016023 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16024 msm_routing_get_port_mixer,
16025 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016026 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16027 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016028 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16029 msm_routing_get_port_mixer,
16030 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016031};
16032
16033static const struct snd_kcontrol_new quat_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016034 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16035 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016036 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16037 msm_routing_get_port_mixer,
16038 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016039 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16040 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016041 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16042 msm_routing_get_port_mixer,
16043 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016044 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16045 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016046 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16047 msm_routing_get_port_mixer,
16048 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016049 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16050 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016051 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16052 msm_routing_get_port_mixer,
16053 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016054 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16055 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016056 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16057 msm_routing_get_port_mixer,
16058 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016059 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16060 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016061 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16062 msm_routing_get_port_mixer,
16063 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016064 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16065 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016066 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16067 msm_routing_get_port_mixer,
16068 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016069 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16070 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016071 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16072 msm_routing_get_port_mixer,
16073 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016074 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16075 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016076 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16077 msm_routing_get_port_mixer,
16078 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016079 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16080 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016081 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16082 msm_routing_get_port_mixer,
16083 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016084 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16085 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016086 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16087 msm_routing_get_port_mixer,
16088 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016089 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16090 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016091 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16092 msm_routing_get_port_mixer,
16093 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016094 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16095 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016096 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16097 msm_routing_get_port_mixer,
16098 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016099 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16100 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016101 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16102 msm_routing_get_port_mixer,
16103 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016104 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16105 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016106 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16107 msm_routing_get_port_mixer,
16108 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016109 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16110 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016111 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16112 msm_routing_get_port_mixer,
16113 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016114 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16115 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016116 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16117 msm_routing_get_port_mixer,
16118 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016119 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16120 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016121 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16122 msm_routing_get_port_mixer,
16123 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016124 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16125 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016126 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16127 msm_routing_get_port_mixer,
16128 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016129 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16130 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016131 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16132 msm_routing_get_port_mixer,
16133 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016134};
16135
16136static const struct snd_kcontrol_new quat_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016137 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16138 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016139 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16140 msm_routing_get_port_mixer,
16141 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016142 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16143 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016144 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16145 msm_routing_get_port_mixer,
16146 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016147 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16148 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016149 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16150 msm_routing_get_port_mixer,
16151 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016152 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16153 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016154 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16155 msm_routing_get_port_mixer,
16156 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016157 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16158 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016159 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16160 msm_routing_get_port_mixer,
16161 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016162 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16163 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016164 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16165 msm_routing_get_port_mixer,
16166 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016167 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16168 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016169 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16170 msm_routing_get_port_mixer,
16171 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016172 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16173 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016174 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16175 msm_routing_get_port_mixer,
16176 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016177 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16178 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016179 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16180 msm_routing_get_port_mixer,
16181 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016182 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16183 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016184 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16185 msm_routing_get_port_mixer,
16186 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016187 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16188 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016189 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16190 msm_routing_get_port_mixer,
16191 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016192 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16193 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016194 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16195 msm_routing_get_port_mixer,
16196 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016197 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16198 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016199 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16200 msm_routing_get_port_mixer,
16201 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016202 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16203 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016204 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16205 msm_routing_get_port_mixer,
16206 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016207 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16208 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016209 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16210 msm_routing_get_port_mixer,
16211 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016212 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16213 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016214 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16215 msm_routing_get_port_mixer,
16216 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016217 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16218 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016219 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16220 msm_routing_get_port_mixer,
16221 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016222 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16223 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016224 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16225 msm_routing_get_port_mixer,
16226 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016227 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16228 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016229 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16230 msm_routing_get_port_mixer,
16231 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016232 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16233 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016234 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16235 msm_routing_get_port_mixer,
16236 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016237};
16238
16239static const struct snd_kcontrol_new quat_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016240 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16241 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016242 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16243 msm_routing_get_port_mixer,
16244 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016245 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16246 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016247 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16248 msm_routing_get_port_mixer,
16249 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016250 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16251 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016252 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16253 msm_routing_get_port_mixer,
16254 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016255 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16256 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016257 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16258 msm_routing_get_port_mixer,
16259 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016260 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16261 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016262 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16263 msm_routing_get_port_mixer,
16264 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016265 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16266 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016267 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16268 msm_routing_get_port_mixer,
16269 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016270 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16271 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016272 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16273 msm_routing_get_port_mixer,
16274 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016275 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16276 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016277 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16278 msm_routing_get_port_mixer,
16279 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016280 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16281 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016282 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16283 msm_routing_get_port_mixer,
16284 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016285 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16286 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016287 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16288 msm_routing_get_port_mixer,
16289 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016290 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16291 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016292 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16293 msm_routing_get_port_mixer,
16294 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016295 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16296 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016297 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16298 msm_routing_get_port_mixer,
16299 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016300 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16301 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016302 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16303 msm_routing_get_port_mixer,
16304 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016305 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16306 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016307 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16308 msm_routing_get_port_mixer,
16309 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016310 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16311 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016312 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16313 msm_routing_get_port_mixer,
16314 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016315 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16316 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016317 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16318 msm_routing_get_port_mixer,
16319 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016320 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16321 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016322 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16323 msm_routing_get_port_mixer,
16324 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016325 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16326 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016327 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16328 msm_routing_get_port_mixer,
16329 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016330 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16331 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016332 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16333 msm_routing_get_port_mixer,
16334 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016335 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16336 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016337 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16338 msm_routing_get_port_mixer,
16339 msm_routing_put_port_mixer),
16340};
16341
16342static const struct snd_kcontrol_new quin_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016343 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16344 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016345 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16346 msm_routing_get_port_mixer,
16347 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016348 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16349 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016350 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16351 msm_routing_get_port_mixer,
16352 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016353 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16354 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016355 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16356 msm_routing_get_port_mixer,
16357 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016358 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16359 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016360 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16361 msm_routing_get_port_mixer,
16362 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016363 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16364 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016365 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16366 msm_routing_get_port_mixer,
16367 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016368 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16369 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016370 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16371 msm_routing_get_port_mixer,
16372 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016373 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16374 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016375 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16376 msm_routing_get_port_mixer,
16377 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016378 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16379 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016380 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16381 msm_routing_get_port_mixer,
16382 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016383 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16384 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016385 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16386 msm_routing_get_port_mixer,
16387 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016388 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16389 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016390 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16391 msm_routing_get_port_mixer,
16392 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016393 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16394 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016395 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16396 msm_routing_get_port_mixer,
16397 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016398 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16399 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016400 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16401 msm_routing_get_port_mixer,
16402 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016403 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16404 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016405 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16406 msm_routing_get_port_mixer,
16407 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016408 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16409 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016410 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16411 msm_routing_get_port_mixer,
16412 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016413 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16414 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016415 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16416 msm_routing_get_port_mixer,
16417 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016418 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16419 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016420 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16421 msm_routing_get_port_mixer,
16422 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016423 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16424 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016425 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16426 msm_routing_get_port_mixer,
16427 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016428 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16429 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016430 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16431 msm_routing_get_port_mixer,
16432 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016433 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16434 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016435 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16436 msm_routing_get_port_mixer,
16437 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016438 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16439 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016440 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16441 msm_routing_get_port_mixer,
16442 msm_routing_put_port_mixer),
16443};
16444
16445static const struct snd_kcontrol_new quin_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016446 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16447 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016448 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16449 msm_routing_get_port_mixer,
16450 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016451 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16452 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016453 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16454 msm_routing_get_port_mixer,
16455 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016456 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16457 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016458 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16459 msm_routing_get_port_mixer,
16460 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016461 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16462 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016463 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16464 msm_routing_get_port_mixer,
16465 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016466 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16467 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016468 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16469 msm_routing_get_port_mixer,
16470 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016471 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16472 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016473 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16474 msm_routing_get_port_mixer,
16475 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016476 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16477 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016478 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16479 msm_routing_get_port_mixer,
16480 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016481 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16482 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016483 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16484 msm_routing_get_port_mixer,
16485 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016486 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16487 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016488 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16489 msm_routing_get_port_mixer,
16490 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016491 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16492 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016493 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16494 msm_routing_get_port_mixer,
16495 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016496 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16497 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016498 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16499 msm_routing_get_port_mixer,
16500 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016501 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16502 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016503 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16504 msm_routing_get_port_mixer,
16505 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016506 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16507 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016508 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16509 msm_routing_get_port_mixer,
16510 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016511 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16512 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016513 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16514 msm_routing_get_port_mixer,
16515 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016516 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16517 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016518 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16519 msm_routing_get_port_mixer,
16520 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016521 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16522 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016523 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16524 msm_routing_get_port_mixer,
16525 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016526 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16527 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016528 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16529 msm_routing_get_port_mixer,
16530 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016531 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16532 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016533 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16534 msm_routing_get_port_mixer,
16535 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016536 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16537 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016538 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16539 msm_routing_get_port_mixer,
16540 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016541 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16542 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016543 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16544 msm_routing_get_port_mixer,
16545 msm_routing_put_port_mixer),
16546};
16547
16548static const struct snd_kcontrol_new quin_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016549 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16550 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016551 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16552 msm_routing_get_port_mixer,
16553 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016554 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16555 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016556 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16557 msm_routing_get_port_mixer,
16558 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016559 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16560 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016561 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16562 msm_routing_get_port_mixer,
16563 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016564 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16565 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016566 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16567 msm_routing_get_port_mixer,
16568 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016569 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16570 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016571 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16572 msm_routing_get_port_mixer,
16573 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016574 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16575 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016576 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16577 msm_routing_get_port_mixer,
16578 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016579 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16580 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016581 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16582 msm_routing_get_port_mixer,
16583 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016584 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16585 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016586 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16587 msm_routing_get_port_mixer,
16588 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016589 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16590 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016591 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16592 msm_routing_get_port_mixer,
16593 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016594 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16595 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016596 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16597 msm_routing_get_port_mixer,
16598 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016599 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16600 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016601 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16602 msm_routing_get_port_mixer,
16603 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016604 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16605 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016606 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16607 msm_routing_get_port_mixer,
16608 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016609 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16610 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016611 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16612 msm_routing_get_port_mixer,
16613 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016614 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16615 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016616 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16617 msm_routing_get_port_mixer,
16618 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016619 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16620 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016621 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16622 msm_routing_get_port_mixer,
16623 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016624 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16625 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016626 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16627 msm_routing_get_port_mixer,
16628 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016629 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16630 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016631 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16632 msm_routing_get_port_mixer,
16633 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016634 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16635 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016636 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16637 msm_routing_get_port_mixer,
16638 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016639 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16640 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016641 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16642 msm_routing_get_port_mixer,
16643 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016644 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16645 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016646 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16647 msm_routing_get_port_mixer,
16648 msm_routing_put_port_mixer),
16649};
16650
16651static const struct snd_kcontrol_new quin_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016652 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16653 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016654 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16655 msm_routing_get_port_mixer,
16656 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016657 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16658 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016659 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16660 msm_routing_get_port_mixer,
16661 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016662 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16663 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016664 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16665 msm_routing_get_port_mixer,
16666 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016667 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16668 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016669 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16670 msm_routing_get_port_mixer,
16671 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016672 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16673 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016674 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16675 msm_routing_get_port_mixer,
16676 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016677 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16678 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016679 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16680 msm_routing_get_port_mixer,
16681 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016682 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16683 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016684 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16685 msm_routing_get_port_mixer,
16686 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016687 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16688 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016689 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16690 msm_routing_get_port_mixer,
16691 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016692 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16693 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016694 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16695 msm_routing_get_port_mixer,
16696 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016697 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16698 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016699 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16700 msm_routing_get_port_mixer,
16701 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016702 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16703 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016704 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16705 msm_routing_get_port_mixer,
16706 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016707 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16708 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016709 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16710 msm_routing_get_port_mixer,
16711 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016712 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16713 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016714 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16715 msm_routing_get_port_mixer,
16716 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016717 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16718 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016719 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16720 msm_routing_get_port_mixer,
16721 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016722 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16723 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016724 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16725 msm_routing_get_port_mixer,
16726 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016727 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16728 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016729 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16730 msm_routing_get_port_mixer,
16731 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016732 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16733 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016734 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16735 msm_routing_get_port_mixer,
16736 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016737 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16738 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016739 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16740 msm_routing_get_port_mixer,
16741 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016742 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16743 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016744 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16745 msm_routing_get_port_mixer,
16746 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016747 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16748 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016749 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16750 msm_routing_get_port_mixer,
16751 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016752};
16753
16754static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016755 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16756 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016757 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16758 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016759 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16760 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016761 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16762 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016763 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16764 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016765 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16766 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016767 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16768 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016769 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16770 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016771 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16772 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016773 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16774 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016775 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16776 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016777 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16778 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016779 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16780 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016781 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16782 msm_routing_put_port_mixer),
16783};
16784
16785static const struct snd_kcontrol_new sec_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016786 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16787 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016788 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16789 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016790 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16791 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016792 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16793 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016794 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16795 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016796 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16797 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016798 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16799 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016800 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16801 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016802 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16803 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016804 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16805 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016806 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16807 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016808 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16809 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016810 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16811 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016812 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
16813 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016814 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16815 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016816 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16817 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016818 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16819 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080016820 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16821 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016822};
16823
16824static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016825 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16826 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016827 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16828 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016829 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16830 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016831 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16832 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016833 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16834 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016835 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16836 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016837 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16838 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016839 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16840 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016841 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16842 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016843 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16844 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016845 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16846 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016847 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16848 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016849 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16850 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016851 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16852 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016853 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16854 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016855 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16856 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016857 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16858 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16859 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16860 msm_routing_put_listen_mixer),
16861 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16862 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16863 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16864 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016865 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16866 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
16867 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16868 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016869 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16870 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16871 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16872 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016873 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16874 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16875 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16876 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016877};
16878
16879static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016880 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16881 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016882 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16883 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016884 SOC_DOUBLE_EXT("SLIMBUS_1_TX",
16885 SND_SOC_NOPM,
16886 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016887 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16888 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016889 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16890 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016891 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16892 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016893 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16894 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016895 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16896 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016897 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16898 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016899 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16900 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016901 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16902 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016903 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16904 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016905 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16906 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016907 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16908 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016909 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16910 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016911 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16912 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016913 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16914 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16915 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16916 msm_routing_put_listen_mixer),
16917 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16918 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16919 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16920 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016921 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16922 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
16923 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16924 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016925 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16926 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16927 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16928 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016929 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16930 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16931 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16932 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016933};
16934
16935static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016936 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16937 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016938 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16939 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016940 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16941 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016942 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16943 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016944 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16945 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016946 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16947 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016948 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16949 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016950 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16951 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016952 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16953 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016954 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16955 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016956 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16957 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016958 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16959 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016960 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16961 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016962 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16963 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016964 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16965 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016966 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16967 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016968 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16969 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16970 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16971 msm_routing_put_listen_mixer),
16972 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16973 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16974 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16975 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016976 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16977 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
16978 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16979 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016980 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16981 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16982 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16983 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016984 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16985 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16986 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16987 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016988};
16989
16990static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016991 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16992 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016993 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16994 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016995 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16996 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016997 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16998 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016999 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
17000 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017001 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17002 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017003 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
17004 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017005 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17006 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017007 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
17008 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017009 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17010 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017011 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17012 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017013 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17014 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017015 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17016 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017017 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17018 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017019 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17020 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017021 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17022 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053017023 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17024 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
17025 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17026 msm_routing_put_listen_mixer),
17027 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17028 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
17029 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17030 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017031 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17032 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
17033 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17034 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017035 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17036 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
17037 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17038 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017039 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17040 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
17041 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17042 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017043};
17044
17045static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017046 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
17047 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017048 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17049 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017050 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
17051 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017052 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17053 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017054 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
17055 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017056 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17057 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017058 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
17059 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017060 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17061 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017062 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
17063 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017064 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17065 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017066 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17067 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017068 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17069 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017070 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17071 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017072 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17073 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017074 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17075 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017076 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17077 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053017078 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17079 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
17080 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17081 msm_routing_put_listen_mixer),
17082 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17083 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
17084 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17085 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017086 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17087 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
17088 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17089 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017090 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17091 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
17092 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17093 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017094 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17095 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
17096 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17097 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017098};
17099
17100static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017101 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
17102 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017103 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17104 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017105 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
17106 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017107 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17108 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017109 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
17110 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017111 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17112 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017113 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
17114 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017115 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17116 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017117 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
17118 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017119 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17120 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017121 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17122 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017123 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17124 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017125 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17126 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017127 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17128 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017129 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17130 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017131 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17132 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053017133 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17134 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
17135 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17136 msm_routing_put_listen_mixer),
17137 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17138 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
17139 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17140 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017141 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17142 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
17143 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17144 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017145 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17146 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
17147 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17148 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017149 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17150 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
17151 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17152 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017153};
17154
17155static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017156 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
17157 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017158 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17159 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017160 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
17161 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017162 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17163 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017164 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
17165 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017166 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17167 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017168 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
17169 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017170 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17171 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017172 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
17173 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017174 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17175 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017176 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17177 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017178 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17179 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017180 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17181 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017182 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17183 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017184 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17185 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017186 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17187 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053017188 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17189 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
17190 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17191 msm_routing_put_listen_mixer),
17192 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17193 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
17194 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17195 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017196 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17197 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
17198 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17199 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017200 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17201 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
17202 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17203 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017204 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17205 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
17206 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17207 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017208};
17209
17210static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017211 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
17212 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017213 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17214 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017215 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
17216 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017217 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17218 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017219 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
17220 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017221 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17222 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017223 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
17224 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017225 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17226 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017227 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
17228 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017229 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17230 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017231 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17232 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017233 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17234 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017235 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17236 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017237 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17238 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017239 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17240 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017241 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17242 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053017243 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17244 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
17245 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17246 msm_routing_put_listen_mixer),
17247 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17248 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
17249 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17250 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017251 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17252 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
17253 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17254 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017255 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17256 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
17257 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17258 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017259 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17260 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
17261 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17262 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017263};
17264
17265static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
17266 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17267 0, 1, 0, msm_routing_get_switch_mixer,
17268 msm_routing_put_switch_mixer);
17269
17270static const struct snd_kcontrol_new slim1_fm_switch_mixer_controls =
17271 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17272 0, 1, 0, msm_routing_get_switch_mixer,
17273 msm_routing_put_switch_mixer);
17274
17275static const struct snd_kcontrol_new slim3_fm_switch_mixer_controls =
17276 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17277 0, 1, 0, msm_routing_get_switch_mixer,
17278 msm_routing_put_switch_mixer);
17279
17280static const struct snd_kcontrol_new slim4_fm_switch_mixer_controls =
17281 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17282 0, 1, 0, msm_routing_get_switch_mixer,
17283 msm_routing_put_switch_mixer);
17284
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053017285static const struct snd_kcontrol_new cdc_dma_wsa_switch_mixer_controls =
17286 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17287 0, 1, 0, msm_routing_get_switch_mixer,
17288 msm_routing_put_switch_mixer);
17289
17290static const struct snd_kcontrol_new cdc_dma_rx_switch_mixer_controls =
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053017291 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17292 0, 1, 0, msm_routing_get_switch_mixer,
17293 msm_routing_put_switch_mixer);
17294
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017295static const struct snd_kcontrol_new slim6_fm_switch_mixer_controls =
17296 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17297 0, 1, 0, msm_routing_get_switch_mixer,
17298 msm_routing_put_switch_mixer);
17299
17300static const struct snd_kcontrol_new pcm_rx_switch_mixer_controls =
17301 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17302 0, 1, 0, msm_routing_get_fm_pcmrx_switch_mixer,
17303 msm_routing_put_fm_pcmrx_switch_mixer);
17304
17305static const struct snd_kcontrol_new int0_mi2s_rx_switch_mixer_controls =
17306 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17307 0, 1, 0, msm_routing_get_int0_mi2s_switch_mixer,
17308 msm_routing_put_int0_mi2s_switch_mixer);
17309
17310static const struct snd_kcontrol_new int4_mi2s_rx_switch_mixer_controls =
17311 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17312 0, 1, 0, msm_routing_get_int4_mi2s_switch_mixer,
17313 msm_routing_put_int4_mi2s_switch_mixer);
17314
17315static const struct snd_kcontrol_new pri_mi2s_rx_switch_mixer_controls =
17316 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17317 0, 1, 0, msm_routing_get_pri_mi2s_switch_mixer,
17318 msm_routing_put_pri_mi2s_switch_mixer);
17319
17320static const struct snd_kcontrol_new sec_mi2s_rx_switch_mixer_controls =
17321 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17322 0, 1, 0, msm_routing_get_sec_mi2s_switch_mixer,
17323 msm_routing_put_sec_mi2s_switch_mixer);
17324
17325static const struct snd_kcontrol_new tert_mi2s_rx_switch_mixer_controls =
17326 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17327 0, 1, 0, msm_routing_get_tert_mi2s_switch_mixer,
17328 msm_routing_put_tert_mi2s_switch_mixer);
17329
17330static const struct snd_kcontrol_new quat_mi2s_rx_switch_mixer_controls =
17331 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17332 0, 1, 0, msm_routing_get_quat_mi2s_switch_mixer,
17333 msm_routing_put_quat_mi2s_switch_mixer);
17334
Rohit Kumara5077932017-09-10 22:05:05 +053017335static const struct snd_kcontrol_new quin_mi2s_rx_switch_mixer_controls =
17336 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17337 0, 1, 0, msm_routing_get_quin_mi2s_switch_mixer,
17338 msm_routing_put_quin_mi2s_switch_mixer);
17339
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017340static const struct snd_kcontrol_new hfp_pri_aux_switch_mixer_controls =
17341 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17342 0, 1, 0, msm_routing_get_hfp_switch_mixer,
17343 msm_routing_put_hfp_switch_mixer);
17344
17345static const struct snd_kcontrol_new hfp_aux_switch_mixer_controls =
17346 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17347 0, 1, 0, msm_routing_get_hfp_switch_mixer,
17348 msm_routing_put_hfp_switch_mixer);
17349
17350static const struct snd_kcontrol_new hfp_int_switch_mixer_controls =
17351 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17352 0, 1, 0, msm_routing_get_hfp_switch_mixer,
17353 msm_routing_put_hfp_switch_mixer);
17354
17355static const struct snd_kcontrol_new hfp_slim7_switch_mixer_controls =
17356 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17357 0, 1, 0, msm_routing_get_hfp_switch_mixer,
17358 msm_routing_put_hfp_switch_mixer);
17359
17360static const struct snd_kcontrol_new usb_switch_mixer_controls =
17361 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17362 0, 1, 0, msm_routing_get_usb_switch_mixer,
17363 msm_routing_put_usb_switch_mixer);
17364
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080017365static const struct snd_kcontrol_new a2dp_slim7_switch_mixer_controls =
17366 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17367 0, 1, 0, msm_routing_a2dp_switch_mixer_get,
17368 msm_routing_a2dp_switch_mixer_put);
17369
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017370static const struct soc_enum lsm_port_enum =
17371 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_port_text), lsm_port_text);
17372
17373static const char * const lsm_func_text[] = {
17374 "None", "AUDIO", "BEACON", "ULTRASOUND", "SWAUDIO",
17375};
17376static const struct soc_enum lsm_func_enum =
17377 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_func_text), lsm_func_text);
17378
17379static const struct snd_kcontrol_new lsm_controls[] = {
17380 /* kcontrol of lsm_function */
17381 SOC_ENUM_EXT(SLIMBUS_0_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17382 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17383 SOC_ENUM_EXT(SLIMBUS_1_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17384 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17385 SOC_ENUM_EXT(SLIMBUS_2_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17386 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17387 SOC_ENUM_EXT(SLIMBUS_3_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17388 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17389 SOC_ENUM_EXT(SLIMBUS_4_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17390 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17391 SOC_ENUM_EXT(SLIMBUS_5_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17392 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17393 SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17394 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17395 SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17396 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17397 SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17398 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017399 SOC_ENUM_EXT(TX_CDC_DMA_TX_3_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17400 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017401 SOC_ENUM_EXT(QUIN_TDM_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17402 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017403 /* kcontrol of lsm_port */
17404 SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
17405 msm_routing_lsm_port_get,
17406 msm_routing_lsm_port_put),
17407 SOC_ENUM_EXT("LSM2 Port", lsm_port_enum,
17408 msm_routing_lsm_port_get,
17409 msm_routing_lsm_port_put),
17410 SOC_ENUM_EXT("LSM3 Port", lsm_port_enum,
17411 msm_routing_lsm_port_get,
17412 msm_routing_lsm_port_put),
17413 SOC_ENUM_EXT("LSM4 Port", lsm_port_enum,
17414 msm_routing_lsm_port_get,
17415 msm_routing_lsm_port_put),
17416 SOC_ENUM_EXT("LSM5 Port", lsm_port_enum,
17417 msm_routing_lsm_port_get,
17418 msm_routing_lsm_port_put),
17419 SOC_ENUM_EXT("LSM6 Port", lsm_port_enum,
17420 msm_routing_lsm_port_get,
17421 msm_routing_lsm_port_put),
17422 SOC_ENUM_EXT("LSM7 Port", lsm_port_enum,
17423 msm_routing_lsm_port_get,
17424 msm_routing_lsm_port_put),
17425 SOC_ENUM_EXT("LSM8 Port", lsm_port_enum,
17426 msm_routing_lsm_port_get,
17427 msm_routing_lsm_port_put),
17428};
17429
17430static const char * const aanc_slim_0_rx_text[] = {
17431 "ZERO", "SLIMBUS_0_TX", "SLIMBUS_1_TX", "SLIMBUS_2_TX", "SLIMBUS_3_TX",
17432 "SLIMBUS_4_TX", "SLIMBUS_5_TX", "SLIMBUS_6_TX"
17433};
17434
17435static const struct soc_enum aanc_slim_0_rx_enum =
17436 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(aanc_slim_0_rx_text),
17437 aanc_slim_0_rx_text);
17438
17439static const struct snd_kcontrol_new aanc_slim_0_rx_mux[] = {
17440 SOC_ENUM_EXT("AANC_SLIM_0_RX MUX", aanc_slim_0_rx_enum,
17441 msm_routing_slim_0_rx_aanc_mux_get,
17442 msm_routing_slim_0_rx_aanc_mux_put)
17443};
17444
Sudheer Papothic07b37a2018-05-04 05:56:47 +053017445static int msm_routing_aanc_noise_level_get(struct snd_kcontrol *kcontrol,
17446 struct snd_ctl_elem_value *ucontrol)
17447{
17448 ucontrol->value.integer.value[0] = aanc_level;
17449
17450 return 0;
17451}
17452
17453static int msm_routing_aanc_noise_level_put(struct snd_kcontrol *kcontrol,
17454 struct snd_ctl_elem_value *ucontrol)
17455{
17456 int ret = 0;
17457
17458 mutex_lock(&routing_lock);
17459 aanc_level = ucontrol->value.integer.value[0];
17460 pr_debug("%s: value: %ld\n",
17461 __func__, ucontrol->value.integer.value[0]);
17462 ret = afe_set_aanc_noise_level(aanc_level);
17463 mutex_unlock(&routing_lock);
17464
17465 return ret;
17466}
17467
17468static const struct snd_kcontrol_new aanc_noise_level[] = {
17469 SOC_SINGLE_EXT("AANC Noise Level", SND_SOC_NOPM, 0, 255,
17470 0, msm_routing_aanc_noise_level_get, msm_routing_aanc_noise_level_put)
17471};
17472
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017473static int msm_routing_get_stereo_to_custom_stereo_control(
17474 struct snd_kcontrol *kcontrol,
17475 struct snd_ctl_elem_value *ucontrol)
17476{
17477 ucontrol->value.integer.value[0] = is_custom_stereo_on;
17478 return 0;
17479}
17480
17481static int msm_routing_put_stereo_to_custom_stereo_control(
17482 struct snd_kcontrol *kcontrol,
17483 struct snd_ctl_elem_value *ucontrol)
17484{
17485 int flag = 0, i = 0, rc = 0, idx = 0;
17486 int be_index = 0, port_id, topo_id;
17487 unsigned int session_id = 0;
17488 uint16_t op_FL_ip_FL_weight = 0;
17489 uint16_t op_FL_ip_FR_weight = 0;
17490 uint16_t op_FR_ip_FL_weight = 0;
17491 uint16_t op_FR_ip_FR_weight = 0;
17492
17493 flag = ucontrol->value.integer.value[0];
17494 pr_debug("%s E flag %d\n", __func__, flag);
17495
17496 if ((is_custom_stereo_on && flag) || (!is_custom_stereo_on && !flag)) {
17497 pr_err("%s: is_custom_stereo_on %d, flag %d\n",
17498 __func__, is_custom_stereo_on, flag);
17499 return 0;
17500 }
17501 is_custom_stereo_on = flag ? true : false;
17502 pr_debug("%s:is_custom_stereo_on %d\n", __func__, is_custom_stereo_on);
17503 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
17504 port_id = msm_bedais[be_index].port_id;
17505 if (!msm_bedais[be_index].active)
17506 continue;
17507 if ((port_id != SLIMBUS_0_RX) &&
17508 (port_id != RT_PROXY_PORT_001_RX) &&
17509 (port_id != AFE_PORT_ID_PRIMARY_MI2S_RX) &&
17510 (port_id != AFE_PORT_ID_INT4_MI2S_RX))
17511 continue;
17512
17513 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
17514 MSM_FRONTEND_DAI_MM_SIZE) {
17515 if (fe_dai_map[i][SESSION_TYPE_RX].perf_mode !=
17516 LEGACY_PCM_MODE)
17517 goto skip_send_custom_stereo;
17518 session_id =
17519 fe_dai_map[i][SESSION_TYPE_RX].strm_id;
17520 if (is_custom_stereo_on) {
17521 op_FL_ip_FL_weight =
17522 Q14_GAIN_ZERO_POINT_FIVE;
17523 op_FL_ip_FR_weight =
17524 Q14_GAIN_ZERO_POINT_FIVE;
17525 op_FR_ip_FL_weight =
17526 Q14_GAIN_ZERO_POINT_FIVE;
17527 op_FR_ip_FR_weight =
17528 Q14_GAIN_ZERO_POINT_FIVE;
17529 } else {
17530 op_FL_ip_FL_weight = Q14_GAIN_UNITY;
17531 op_FL_ip_FR_weight = 0;
17532 op_FR_ip_FL_weight = 0;
17533 op_FR_ip_FR_weight = Q14_GAIN_UNITY;
17534 }
17535 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
17536 unsigned long copp =
17537 session_copp_map[i]
17538 [SESSION_TYPE_RX][be_index];
17539 if (!test_bit(idx, &copp))
17540 goto skip_send_custom_stereo;
17541 topo_id = adm_get_topology_for_port_copp_idx(
17542 msm_bedais[be_index].port_id, idx);
17543 if (topo_id < 0)
17544 pr_debug("%s:Err:custom stereo topo %d",
17545 __func__, topo_id);
17546 pr_debug("idx %d\n", idx);
17547 if (topo_id == DS2_ADM_COPP_TOPOLOGY_ID)
17548 rc = msm_ds2_dap_set_custom_stereo_onoff
17549 (msm_bedais[be_index].port_id,
17550 idx, is_custom_stereo_on);
17551 else if (topo_id == DOLBY_ADM_COPP_TOPOLOGY_ID)
17552 rc = dolby_dap_set_custom_stereo_onoff(
17553 msm_bedais[be_index].port_id,
17554 idx, is_custom_stereo_on);
17555 else
17556 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd
17557 (msm_bedais[be_index].port_id,
17558 idx, session_id,
17559 op_FL_ip_FL_weight,
17560 op_FL_ip_FR_weight,
17561 op_FR_ip_FL_weight,
17562 op_FR_ip_FR_weight);
17563 if (rc < 0)
17564skip_send_custom_stereo:
17565 pr_err("%s: err setting custom stereo\n",
17566 __func__);
17567 }
17568
17569 }
17570 }
17571 return 0;
17572}
17573
17574static const struct snd_kcontrol_new stereo_to_custom_stereo_controls[] = {
17575 SOC_SINGLE_EXT("Set Custom Stereo OnOff", SND_SOC_NOPM, 0,
17576 1, 0, msm_routing_get_stereo_to_custom_stereo_control,
17577 msm_routing_put_stereo_to_custom_stereo_control),
17578};
17579
17580static int msm_routing_get_app_type_cfg_control(struct snd_kcontrol *kcontrol,
17581 struct snd_ctl_elem_value *ucontrol)
17582{
17583 return 0;
17584}
17585
17586static int msm_routing_put_app_type_cfg_control(struct snd_kcontrol *kcontrol,
17587 struct snd_ctl_elem_value *ucontrol)
17588{
17589 int i = 0, j;
17590 int num_app_types = ucontrol->value.integer.value[i++];
17591
17592 pr_debug("%s\n", __func__);
17593
17594 memset(app_type_cfg, 0, MAX_APP_TYPES*
17595 sizeof(struct msm_pcm_routing_app_type_data));
17596 if (num_app_types > MAX_APP_TYPES) {
17597 pr_err("%s: number of app types exceed the max supported\n",
17598 __func__);
17599 return -EINVAL;
17600 }
17601 for (j = 0; j < num_app_types; j++) {
17602 app_type_cfg[j].app_type =
17603 ucontrol->value.integer.value[i++];
17604 app_type_cfg[j].sample_rate =
17605 ucontrol->value.integer.value[i++];
17606 app_type_cfg[j].bit_width =
17607 ucontrol->value.integer.value[i++];
17608 }
17609
17610 return 0;
17611}
17612
17613static int msm_routing_put_app_type_gain_control(struct snd_kcontrol *kcontrol,
17614 struct snd_ctl_elem_value *ucontrol)
17615{
17616 int j, fe_id, be_id, port_type;
17617 int ret = 0;
17618 unsigned long copp;
17619 struct msm_pcm_routing_bdai_data *bedai;
17620 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
17621 SESSION_TYPE_RX;
17622 int app_type = ucontrol->value.integer.value[1];
17623 int gain = (ucontrol->value.integer.value[2] +
17624 ucontrol->value.integer.value[3])/2;
17625
17626 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
17627 MSM_AFE_PORT_TYPE_TX;
17628
17629 mutex_lock(&routing_lock);
17630 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
17631 if (is_be_dai_extproc(be_id))
17632 continue;
17633
17634 bedai = &msm_bedais[be_id];
17635 if (afe_get_port_type(bedai->port_id) != port_type)
17636 continue;
17637
17638 if (!bedai->active)
17639 continue;
17640
17641 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
17642 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
17643 continue;
17644
17645 if (app_type !=
17646 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
17647 continue;
17648
17649 copp = session_copp_map[fe_id][dir][be_id];
17650 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
17651 if (!test_bit(j, &copp))
17652 continue;
17653 ret |= adm_set_volume(bedai->port_id, j, gain);
17654 }
17655 }
17656 }
17657 mutex_unlock(&routing_lock);
17658 return ret ? -EINVAL : 0;
17659}
17660
17661static const struct snd_kcontrol_new app_type_cfg_controls[] = {
17662 SOC_SINGLE_MULTI_EXT("App Type Config", SND_SOC_NOPM, 0,
17663 0xFFFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
17664 msm_routing_put_app_type_cfg_control),
17665 SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
17666 0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
17667};
17668
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017669static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,
17670 struct snd_ctl_elem_value *ucontrol)
17671{
17672 int copp_idx, fe_id, be_id, port_type;
17673 int ret = 0;
17674 unsigned long copp;
17675 struct msm_pcm_routing_bdai_data *bedai;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017676 u8 *packed_params = NULL;
17677 struct param_hdr_v3 param_hdr;
17678 u32 packed_param_size = (sizeof(struct param_hdr_v3) +
17679 sizeof(uint32_t));
17680
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017681 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
17682 SESSION_TYPE_RX;
17683 int app_type = ucontrol->value.integer.value[1];
17684 int module_id = ucontrol->value.integer.value[2];
17685 int instance_id = ucontrol->value.integer.value[3];
17686 int param_id = ucontrol->value.integer.value[4];
17687 int param_value = ucontrol->value.integer.value[5];
17688
17689 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
17690 MSM_AFE_PORT_TYPE_TX;
17691 pr_debug("%s app_type:%d mod_id:%d instance_id:%d param_id:%d value:%d\n",
17692 __func__, app_type, module_id,
17693 instance_id, param_id, param_value);
17694
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017695 packed_params = kzalloc(packed_param_size, GFP_KERNEL);
17696 if (!packed_params)
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017697 return -ENOMEM;
17698
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017699 memset(&param_hdr, 0, sizeof(param_hdr));
17700 param_hdr.module_id = module_id;
17701 param_hdr.instance_id = instance_id;
17702 param_hdr.param_id = param_id;
17703 param_hdr.param_size = sizeof(uint32_t);
17704
17705 packed_param_size = 0;
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017706
17707 mutex_lock(&routing_lock);
17708 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
17709 if (is_be_dai_extproc(be_id))
17710 continue;
17711
17712 bedai = &msm_bedais[be_id];
17713 if (afe_get_port_type(bedai->port_id) != port_type)
17714 continue;
17715
17716 if (!bedai->active)
17717 continue;
17718
17719 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
17720 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
17721 continue;
17722
17723 if (app_type !=
17724 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
17725 continue;
17726
17727 copp = session_copp_map[fe_id][dir][be_id];
17728 for (copp_idx = 0; copp_idx < MAX_COPPS_PER_PORT;
17729 copp_idx++) {
17730 if (!test_bit(copp_idx, &copp))
17731 continue;
17732
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017733 ret = q6common_pack_pp_params(packed_params,
17734 &param_hdr,
17735 (u8 *) &param_value,
17736 &packed_param_size);
17737 if (ret) {
17738 pr_err("%s: Failed to pack params, error %d\n",
17739 __func__, ret);
17740 goto done;
17741 }
17742
17743 ret = adm_set_pp_params(bedai->port_id,
17744 copp_idx, NULL,
17745 packed_params,
17746 packed_param_size);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017747 if (ret) {
17748 pr_err("%s: Setting param failed with err=%d\n",
17749 __func__, ret);
17750 ret = -EINVAL;
17751 goto done;
17752 }
17753 }
17754 }
17755 }
17756done:
17757 mutex_unlock(&routing_lock);
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017758 kfree(packed_params);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017759 return ret;
17760}
17761
17762static const struct snd_kcontrol_new module_cfg_controls[] = {
17763 SOC_SINGLE_MULTI_EXT("Audio Effect", SND_SOC_NOPM, 0,
17764 0x2000, 0, 6, NULL, msm_routing_put_module_cfg_control)
17765};
17766
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017767static int msm_routing_get_lsm_app_type_cfg_control(
17768 struct snd_kcontrol *kcontrol,
17769 struct snd_ctl_elem_value *ucontrol)
17770{
Meng Wangadbca4f2018-10-29 14:30:13 +080017771 int shift = ((struct soc_multi_mixer_control *)
17772 kcontrol->private_value)->shift;
17773 int i = 0, j = 0;
17774
17775 ucontrol->value.integer.value[i] = num_app_cfg_types;
17776
17777 for (j = 0; j < num_app_cfg_types; ++j) {
17778 ucontrol->value.integer.value[++i] =
17779 lsm_app_type_cfg[j].app_type;
17780 ucontrol->value.integer.value[++i] =
17781 lsm_app_type_cfg[j].sample_rate;
17782 ucontrol->value.integer.value[++i] =
17783 lsm_app_type_cfg[j].bit_width;
17784 if (shift == 1)
17785 ucontrol->value.integer.value[++i] =
17786 lsm_app_type_cfg[j].num_out_channels;
17787 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017788 return 0;
17789}
17790
17791static int msm_routing_put_lsm_app_type_cfg_control(
17792 struct snd_kcontrol *kcontrol,
17793 struct snd_ctl_elem_value *ucontrol)
17794{
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017795 int shift = ((struct soc_multi_mixer_control *)
17796 kcontrol->private_value)->shift;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017797 int i = 0, j;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017798
Meng Wangadbca4f2018-10-29 14:30:13 +080017799 num_app_cfg_types = ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017800 memset(lsm_app_type_cfg, 0, MAX_APP_TYPES*
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017801 sizeof(struct msm_pcm_routing_app_type_data));
17802
Meng Wangadbca4f2018-10-29 14:30:13 +080017803 if (num_app_cfg_types > MAX_APP_TYPES) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017804 pr_err("%s: number of app types exceed the max supported\n",
17805 __func__);
17806 return -EINVAL;
17807 }
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017808
Meng Wangadbca4f2018-10-29 14:30:13 +080017809 for (j = 0; j < num_app_cfg_types; j++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017810 lsm_app_type_cfg[j].app_type =
17811 ucontrol->value.integer.value[i++];
17812 lsm_app_type_cfg[j].sample_rate =
17813 ucontrol->value.integer.value[i++];
17814 lsm_app_type_cfg[j].bit_width =
17815 ucontrol->value.integer.value[i++];
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017816 /* Shift of 1 indicates this is V2 mixer control */
17817 if (shift == 1)
17818 lsm_app_type_cfg[j].num_out_channels =
17819 ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017820 }
17821
17822 return 0;
17823}
17824
17825static const struct snd_kcontrol_new lsm_app_type_cfg_controls[] = {
17826 SOC_SINGLE_MULTI_EXT("Listen App Type Config", SND_SOC_NOPM, 0,
17827 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
17828 msm_routing_put_lsm_app_type_cfg_control),
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017829 SOC_SINGLE_MULTI_EXT("Listen App Type Config V2", SND_SOC_NOPM, 1,
17830 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
17831 msm_routing_put_lsm_app_type_cfg_control),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017832};
17833
17834static int msm_routing_get_use_ds1_or_ds2_control(
17835 struct snd_kcontrol *kcontrol,
17836 struct snd_ctl_elem_value *ucontrol)
17837{
17838 ucontrol->value.integer.value[0] = is_ds2_on;
17839 return 0;
17840}
17841
17842static int msm_routing_put_use_ds1_or_ds2_control(
17843 struct snd_kcontrol *kcontrol,
17844 struct snd_ctl_elem_value *ucontrol)
17845{
17846 is_ds2_on = ucontrol->value.integer.value[0];
17847 return 0;
17848}
17849
17850static const struct snd_kcontrol_new use_ds1_or_ds2_controls[] = {
17851 SOC_SINGLE_EXT("DS2 OnOff", SND_SOC_NOPM, 0,
17852 1, 0, msm_routing_get_use_ds1_or_ds2_control,
17853 msm_routing_put_use_ds1_or_ds2_control),
17854};
17855
17856int msm_routing_get_rms_value_control(struct snd_kcontrol *kcontrol,
17857 struct snd_ctl_elem_value *ucontrol) {
17858 int rc = 0;
17859 int be_idx = 0;
17860 char *param_value;
17861 int *update_param_value;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017862 uint32_t param_size = (RMS_PAYLOAD_LEN + 1) * sizeof(uint32_t);
17863 struct param_hdr_v3 param_hdr;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017864
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017865 param_value = kzalloc(param_size, GFP_KERNEL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017866 if (!param_value)
17867 return -ENOMEM;
17868
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017869 memset(&param_hdr, 0, sizeof(param_hdr));
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017870 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++)
17871 if (msm_bedais[be_idx].port_id == SLIMBUS_0_TX)
17872 break;
17873 if ((be_idx < MSM_BACKEND_DAI_MAX) && msm_bedais[be_idx].active) {
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017874 param_hdr.module_id = RMS_MODULEID_APPI_PASSTHRU;
17875 param_hdr.instance_id = INSTANCE_ID_0;
17876 param_hdr.param_id = RMS_PARAM_FIRST_SAMPLE;
17877 param_hdr.param_size = param_size;
17878 rc = adm_get_pp_params(SLIMBUS_0_TX, 0, ADM_CLIENT_ID_DEFAULT,
17879 NULL, &param_hdr, (u8 *) param_value);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017880 if (rc) {
17881 pr_err("%s: get parameters failed:%d\n", __func__, rc);
17882 kfree(param_value);
17883 return -EINVAL;
17884 }
17885 update_param_value = (int *)param_value;
17886 ucontrol->value.integer.value[0] = update_param_value[0];
17887
17888 pr_debug("%s: FROM DSP value[0] 0x%x\n",
17889 __func__, update_param_value[0]);
17890 }
17891 kfree(param_value);
17892 return 0;
17893}
17894
17895static int msm_voc_session_id_put(struct snd_kcontrol *kcontrol,
17896 struct snd_ctl_elem_value *ucontrol)
17897{
17898 voc_session_id = ucontrol->value.integer.value[0];
17899
17900 pr_debug("%s: voc_session_id=%u\n", __func__, voc_session_id);
17901
17902 return 0;
17903}
17904
17905static int msm_voc_session_id_get(struct snd_kcontrol *kcontrol,
17906 struct snd_ctl_elem_value *ucontrol)
17907{
17908 ucontrol->value.integer.value[0] = voc_session_id;
17909
17910 return 0;
17911}
17912
17913static struct snd_kcontrol_new msm_voc_session_controls[] = {
17914 SOC_SINGLE_MULTI_EXT("Voc VSID", SND_SOC_NOPM, 0,
17915 0xFFFFFFFF, 0, 1, msm_voc_session_id_get,
17916 msm_voc_session_id_put),
17917};
17918
17919static int msm_sound_focus_info(struct snd_kcontrol *kcontrol,
17920 struct snd_ctl_elem_info *uinfo)
17921{
17922 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
17923 uinfo->count = sizeof(struct sound_focus_param);
17924
17925 return 0;
17926}
17927
17928static int msm_voice_sound_focus_put(struct snd_kcontrol *kcontrol,
17929 struct snd_ctl_elem_value *ucontrol)
17930{
17931 int ret = 0;
17932 struct sound_focus_param soundFocusData;
17933
17934 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
17935 sizeof(struct sound_focus_param));
17936 ret = voc_set_sound_focus(soundFocusData);
17937 if (ret) {
17938 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
17939 __func__, ret);
17940
17941 ret = -EINVAL;
17942 }
17943
17944 return ret;
17945}
17946
17947static int msm_voice_sound_focus_get(struct snd_kcontrol *kcontrol,
17948 struct snd_ctl_elem_value *ucontrol)
17949{
17950 int ret = 0;
17951 struct sound_focus_param soundFocusData;
17952
17953 memset(&soundFocusData, 0, sizeof(struct sound_focus_param));
17954
17955 ret = voc_get_sound_focus(&soundFocusData);
17956 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017957 pr_debug("%s: Error getting Sound Focus Params, err=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017958 __func__, ret);
17959
17960 ret = -EINVAL;
17961 goto done;
17962 }
17963 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
17964 sizeof(struct sound_focus_param));
17965
17966done:
17967 return ret;
17968}
17969
17970static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
17971 struct snd_ctl_elem_info *uinfo)
17972{
17973 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
17974 uinfo->count = sizeof(struct source_tracking_param);
17975
17976 return 0;
17977}
17978
17979static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
17980 struct snd_ctl_elem_value *ucontrol)
17981{
Meng Wang92edfde2018-04-24 12:18:37 +080017982 int ret = 0;
17983 struct source_tracking_param sourceTrackingData;
17984
17985 memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
17986
17987 ret = voc_get_source_tracking(&sourceTrackingData);
17988 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017989 pr_debug("%s: Error getting Source Tracking Params, err=%d\n",
Meng Wang92edfde2018-04-24 12:18:37 +080017990 __func__, ret);
17991
17992 ret = -EINVAL;
17993 goto done;
17994 }
17995 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
17996 sizeof(struct source_tracking_param));
17997
17998done:
17999 return ret;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018000}
18001
18002static int msm_audio_get_copp_idx_from_port_id(int port_id, int session_type,
18003 int *copp_idx)
18004{
18005 int i, idx, be_idx;
18006 int ret = 0;
18007 unsigned long copp;
18008
18009 pr_debug("%s: Enter, port_id=%d\n", __func__, port_id);
18010
18011 ret = q6audio_validate_port(port_id);
18012 if (ret < 0) {
18013 pr_err("%s: port validation failed id 0x%x ret %d\n",
18014 __func__, port_id, ret);
18015
18016 ret = -EINVAL;
18017 goto done;
18018 }
18019
18020 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
18021 if (msm_bedais[be_idx].port_id == port_id)
18022 break;
18023 }
18024 if (be_idx >= MSM_BACKEND_DAI_MAX) {
18025 pr_err("%s: Invalid be id %d\n", __func__, be_idx);
18026
18027 ret = -EINVAL;
18028 goto done;
18029 }
18030
18031 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053018032 MSM_FRONTEND_DAI_MAX) {
18033 if (!(is_mm_lsm_fe_id(i) &&
18034 route_check_fe_id_adm_support(i)))
18035 continue;
18036
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018037 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
18038 copp = session_copp_map[i]
18039 [session_type][be_idx];
18040 if (test_bit(idx, &copp))
18041 break;
18042 }
18043 if (idx >= MAX_COPPS_PER_PORT)
18044 continue;
18045 else
18046 break;
18047 }
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053018048 if (i >= MSM_FRONTEND_DAI_MAX) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070018049 pr_debug("%s: Invalid FE, exiting\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018050
18051 ret = -EINVAL;
18052 goto done;
18053 }
18054 *copp_idx = idx;
18055 pr_debug("%s: copp_idx=%d\n", __func__, *copp_idx);
18056
18057done:
18058 return ret;
18059}
18060
18061static int msm_audio_sound_focus_derive_port_id(struct snd_kcontrol *kcontrol,
18062 const char *prefix, int *port_id)
18063{
18064 int ret = 0;
18065
18066 pr_debug("%s: Enter, prefix:%s\n", __func__, prefix);
18067
18068 /*
18069 * Mixer control name will be like "Sound Focus Audio Tx SLIMBUS_0"
18070 * where the prefix is "Sound Focus Audio Tx ". Skip the prefix
18071 * and compare the string with the backend name to derive the port id.
18072 */
18073 if (!strcmp(kcontrol->id.name + strlen(prefix),
18074 "SLIMBUS_0")) {
18075 *port_id = SLIMBUS_0_TX;
18076 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
18077 "TERT_MI2S")) {
18078 *port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
18079 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
18080 "INT3_MI2S")) {
18081 *port_id = AFE_PORT_ID_INT3_MI2S_TX;
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053018082 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
18083 "VA_CDC_DMA_TX_0")) {
18084 *port_id = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053018085 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
18086 "TX_CDC_DMA_TX_3")) {
18087 *port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053018088 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
18089 "QUIN_TDM_TX_0")) {
18090 *port_id = AFE_PORT_ID_QUINARY_TDM_TX;
Sachin Mohan Gadagd34b26d2018-07-16 19:53:19 +053018091 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
18092 "PRIMARY_TDM")) {
18093 *port_id = AFE_PORT_ID_PRIMARY_TDM_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018094 } else {
18095 pr_err("%s: mixer ctl name=%s, could not derive valid port id\n",
18096 __func__, kcontrol->id.name);
18097
18098 ret = -EINVAL;
18099 goto done;
18100 }
18101 pr_debug("%s: mixer ctl name=%s, derived port_id=%d\n",
18102 __func__, kcontrol->id.name, *port_id);
18103
18104done:
18105 return ret;
18106}
18107
18108static int msm_audio_sound_focus_put(struct snd_kcontrol *kcontrol,
18109 struct snd_ctl_elem_value *ucontrol)
18110{
18111 int ret = 0;
18112 struct sound_focus_param soundFocusData;
18113 int port_id, copp_idx;
18114
18115 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
18116 "Sound Focus Audio Tx ", &port_id);
18117 if (ret != 0) {
18118 pr_err("%s: Error in deriving port id, err=%d\n",
18119 __func__, ret);
18120
18121 ret = -EINVAL;
18122 goto done;
18123 }
18124
18125 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
18126 &copp_idx);
18127 if (ret) {
18128 pr_err("%s: Could not get copp idx for port_id=%d\n",
18129 __func__, port_id);
18130
18131 ret = -EINVAL;
18132 goto done;
18133 }
18134
18135 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
18136 sizeof(struct sound_focus_param));
18137
18138 ret = adm_set_sound_focus(port_id, copp_idx, soundFocusData);
18139 if (ret) {
18140 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
18141 __func__, ret);
18142
18143 ret = -EINVAL;
18144 goto done;
18145 }
18146
18147done:
18148 return ret;
18149}
18150
18151static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
18152 struct snd_ctl_elem_value *ucontrol)
18153{
18154 int ret = 0;
18155 struct sound_focus_param soundFocusData;
18156 int port_id, copp_idx;
18157
18158 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
18159 "Sound Focus Audio Tx ", &port_id);
18160 if (ret) {
18161 pr_err("%s: Error in deriving port id, err=%d\n",
18162 __func__, ret);
18163
18164 ret = -EINVAL;
18165 goto done;
18166 }
18167
18168 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
18169 &copp_idx);
18170 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070018171 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018172 __func__, port_id);
18173
18174 ret = -EINVAL;
18175 goto done;
18176 }
18177
18178 ret = adm_get_sound_focus(port_id, copp_idx, &soundFocusData);
18179 if (ret) {
18180 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
18181 __func__, ret);
18182
18183 ret = -EINVAL;
18184 goto done;
18185 }
18186
18187 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
18188 sizeof(struct sound_focus_param));
18189
18190done:
18191 return ret;
18192}
18193
18194static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
18195 struct snd_ctl_elem_value *ucontrol)
18196{
18197 int ret = 0;
18198 struct source_tracking_param sourceTrackingData;
18199 int port_id, copp_idx;
18200
18201 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
18202 "Source Tracking Audio Tx ", &port_id);
18203 if (ret) {
18204 pr_err("%s: Error in deriving port id, err=%d\n",
18205 __func__, ret);
18206
18207 ret = -EINVAL;
18208 goto done;
18209 }
18210
18211 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
18212 &copp_idx);
18213 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070018214 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018215 __func__, port_id);
18216
18217 ret = -EINVAL;
18218 goto done;
18219 }
18220
18221 ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
18222 if (ret) {
18223 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
18224 __func__, ret);
18225
18226 ret = -EINVAL;
18227 goto done;
18228 }
18229
18230 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
18231 sizeof(struct source_tracking_param));
18232
18233done:
18234 return ret;
18235}
18236
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053018237static int msm_doa_tracking_mon_info(struct snd_kcontrol *kcontrol,
18238 struct snd_ctl_elem_info *uinfo)
18239{
18240 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
18241 uinfo->count = sizeof(struct doa_tracking_mon_param);
18242
18243 return 0;
18244}
18245
18246static int msm_doa_tracking_mon_get(struct snd_kcontrol *kcontrol,
18247 struct snd_ctl_elem_value *ucontrol)
18248{
18249 int ret = 0;
18250 struct doa_tracking_mon_param doa_tracking_data;
18251 int port_id, copp_idx;
18252
18253 memset(&doa_tracking_data, 0, sizeof(struct doa_tracking_mon_param));
18254 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
18255 "Doa Tracking Monitor Listen ", &port_id);
18256 if (ret) {
18257 pr_err("%s: Error in deriving port id, err=%d\n",
18258 __func__, ret);
18259 ret = -EINVAL;
18260 goto done;
18261 }
18262
18263 /*
18264 * If copp id exists for given port id, query adm to get doa data.
18265 * Else query afe for doa tracking params.
18266 * This is to support in cases where LSM directly connects to
18267 * AFE for FFNS.
18268 */
18269 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
18270 &copp_idx);
18271 if (!ret)
18272 ret = adm_get_doa_tracking_mon(port_id, copp_idx,
18273 &doa_tracking_data);
18274 else
18275 ret = afe_get_doa_tracking_mon(port_id, &doa_tracking_data);
18276
18277 if (ret) {
18278 pr_err("%s: Error getting Doa Tracking Params, err=%d\n",
18279 __func__, ret);
18280 ret = -EINVAL;
18281 goto done;
18282 }
18283
18284 memcpy(ucontrol->value.bytes.data, (void *)&doa_tracking_data,
18285 sizeof(struct doa_tracking_mon_param));
18286done:
18287 return ret;
18288}
18289
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018290static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
18291 {
18292 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18293 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18294 .name = "Sound Focus Voice Tx SLIMBUS_0",
18295 .info = msm_sound_focus_info,
18296 .get = msm_voice_sound_focus_get,
18297 .put = msm_voice_sound_focus_put,
18298 },
18299 {
18300 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18301 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18302 .name = "Source Tracking Voice Tx SLIMBUS_0",
18303 .info = msm_source_tracking_info,
18304 .get = msm_voice_source_tracking_get,
18305 },
18306 {
18307 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18308 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18309 .name = "Sound Focus Audio Tx SLIMBUS_0",
18310 .info = msm_sound_focus_info,
18311 .get = msm_audio_sound_focus_get,
18312 .put = msm_audio_sound_focus_put,
18313 },
18314 {
18315 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18316 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18317 .name = "Source Tracking Audio Tx SLIMBUS_0",
18318 .info = msm_source_tracking_info,
18319 .get = msm_audio_source_tracking_get,
18320 },
18321 {
18322 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18323 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18324 .name = "Sound Focus Voice Tx TERT_MI2S",
18325 .info = msm_sound_focus_info,
18326 .get = msm_voice_sound_focus_get,
18327 .put = msm_voice_sound_focus_put,
18328 },
18329 {
18330 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18331 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18332 .name = "Source Tracking Voice Tx TERT_MI2S",
18333 .info = msm_source_tracking_info,
18334 .get = msm_voice_source_tracking_get,
18335 },
18336 {
18337 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18338 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18339 .name = "Sound Focus Audio Tx TERT_MI2S",
18340 .info = msm_sound_focus_info,
18341 .get = msm_audio_sound_focus_get,
18342 .put = msm_audio_sound_focus_put,
18343 },
18344 {
18345 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18346 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18347 .name = "Source Tracking Audio Tx TERT_MI2S",
18348 .info = msm_source_tracking_info,
18349 .get = msm_audio_source_tracking_get,
18350 },
18351 {
18352 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18353 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18354 .name = "Sound Focus Voice Tx INT3_MI2S",
18355 .info = msm_sound_focus_info,
18356 .get = msm_voice_sound_focus_get,
18357 .put = msm_voice_sound_focus_put,
18358 },
18359 {
18360 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18361 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18362 .name = "Source Tracking Voice Tx INT3_MI2S",
18363 .info = msm_source_tracking_info,
18364 .get = msm_voice_source_tracking_get,
18365 },
18366 {
18367 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18368 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18369 .name = "Sound Focus Audio Tx INT3_MI2S",
18370 .info = msm_sound_focus_info,
18371 .get = msm_audio_sound_focus_get,
18372 .put = msm_audio_sound_focus_put,
18373 },
18374 {
18375 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18376 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18377 .name = "Source Tracking Audio Tx INT3_MI2S",
18378 .info = msm_source_tracking_info,
18379 .get = msm_audio_source_tracking_get,
18380 },
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053018381 {
18382 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18383 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18384 .name = "Sound Focus Voice Tx VA_CDC_DMA_TX_0",
18385 .info = msm_sound_focus_info,
18386 .get = msm_voice_sound_focus_get,
18387 .put = msm_voice_sound_focus_put,
18388 },
18389 {
18390 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18391 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18392 .name = "Source Tracking Voice Tx VA_CDC_DMA_TX_0",
18393 .info = msm_source_tracking_info,
18394 .get = msm_voice_source_tracking_get,
18395 },
18396 {
18397 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18398 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18399 .name = "Sound Focus Audio Tx VA_CDC_DMA_TX_0",
18400 .info = msm_sound_focus_info,
18401 .get = msm_audio_sound_focus_get,
18402 .put = msm_audio_sound_focus_put,
18403 },
18404 {
18405 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18406 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18407 .name = "Source Tracking Audio Tx VA_CDC_DMA_TX_0",
18408 .info = msm_source_tracking_info,
18409 .get = msm_audio_source_tracking_get,
18410 },
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053018411 {
18412 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18413 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18414 .name = "Sound Focus Voice Tx TX_CDC_DMA_TX_3",
18415 .info = msm_sound_focus_info,
18416 .get = msm_voice_sound_focus_get,
18417 .put = msm_voice_sound_focus_put,
18418 },
18419 {
18420 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18421 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18422 .name = "Source Tracking Voice Tx TX_CDC_DMA_TX_3",
18423 .info = msm_source_tracking_info,
18424 .get = msm_voice_source_tracking_get,
18425 },
18426 {
18427 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18428 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18429 .name = "Sound Focus Audio Tx TX_CDC_DMA_TX_3",
18430 .info = msm_sound_focus_info,
18431 .get = msm_audio_sound_focus_get,
18432 .put = msm_audio_sound_focus_put,
18433 },
18434 {
18435 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18436 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18437 .name = "Source Tracking Audio Tx TX_CDC_DMA_TX_3",
18438 .info = msm_source_tracking_info,
18439 .get = msm_audio_source_tracking_get,
18440 },
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053018441 {
18442 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18443 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18444 .name = "Sound Focus Voice Tx QUIN_TDM_TX_0",
18445 .info = msm_sound_focus_info,
18446 .get = msm_voice_sound_focus_get,
18447 .put = msm_voice_sound_focus_put,
18448 },
18449 {
18450 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18451 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18452 .name = "Source Tracking Voice Tx QUIN_TDM_TX_0",
18453 .info = msm_source_tracking_info,
18454 .get = msm_voice_source_tracking_get,
18455 },
18456 {
18457 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18458 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18459 .name = "Sound Focus Audio Tx QUIN_TDM_TX_0",
18460 .info = msm_sound_focus_info,
18461 .get = msm_audio_sound_focus_get,
18462 .put = msm_audio_sound_focus_put,
18463 },
18464 {
18465 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18466 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18467 .name = "Source Tracking Audio Tx QUIN_TDM_TX_0",
18468 .info = msm_source_tracking_info,
18469 .get = msm_audio_source_tracking_get,
18470 },
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053018471 {
Sachin Mohan Gadagd34b26d2018-07-16 19:53:19 +053018472 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18473 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18474 .name = "Sound Focus Audio Tx PRIMARY_TDM",
18475 .info = msm_sound_focus_info,
18476 .get = msm_audio_sound_focus_get,
18477 .put = msm_audio_sound_focus_put,
18478 },
18479 {
18480 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18481 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18482 .name = "Source Tracking Audio Tx PRIMARY_TDM",
18483 .info = msm_source_tracking_info,
18484 .get = msm_audio_source_tracking_get,
18485 },
18486 {
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053018487 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18488 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18489 .name = "Doa Tracking Monitor Listen VA_CDC_DMA_TX_0",
18490 .info = msm_doa_tracking_mon_info,
18491 .get = msm_doa_tracking_mon_get,
18492 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018493};
18494
18495static int spkr_prot_put_vi_lch_port(struct snd_kcontrol *kcontrol,
18496 struct snd_ctl_elem_value *ucontrol)
18497{
18498 int ret = 0;
18499 int item;
18500 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
18501
18502 pr_debug("%s item is %d\n", __func__,
18503 ucontrol->value.enumerated.item[0]);
18504 mutex_lock(&routing_lock);
18505 item = ucontrol->value.enumerated.item[0];
18506 if (item < e->items) {
18507 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
18508 __func__, e->shift_l, e->values[item]);
18509 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
18510 e->values[item] < MSM_BACKEND_DAI_MAX)
18511 /* Enable feedback TX path */
18512 ret = afe_spk_prot_feed_back_cfg(
18513 msm_bedais[e->values[item]].port_id,
18514 msm_bedais[e->shift_l].port_id, 1, 0, 1);
18515 else {
18516 pr_debug("%s values are out of range item %d\n",
18517 __func__, e->values[item]);
18518 /* Disable feedback TX path */
18519 if (e->values[item] == MSM_BACKEND_DAI_MAX)
18520 ret = afe_spk_prot_feed_back_cfg(0, 0, 0, 0, 0);
18521 else
18522 ret = -EINVAL;
18523 }
18524 } else {
18525 pr_err("%s item value is out of range item\n", __func__);
18526 ret = -EINVAL;
18527 }
18528 mutex_unlock(&routing_lock);
18529 return ret;
18530}
18531
18532static int spkr_prot_put_vi_rch_port(struct snd_kcontrol *kcontrol,
18533 struct snd_ctl_elem_value *ucontrol)
18534{
18535 int ret = 0;
18536 int item;
18537 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
18538
18539 pr_debug("%s item is %d\n", __func__,
18540 ucontrol->value.enumerated.item[0]);
18541 mutex_lock(&routing_lock);
18542 item = ucontrol->value.enumerated.item[0];
18543 if (item < e->items) {
18544 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
18545 __func__, e->shift_l, e->values[item]);
18546 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
18547 e->values[item] < MSM_BACKEND_DAI_MAX)
18548 /* Enable feedback TX path */
18549 ret = afe_spk_prot_feed_back_cfg(
18550 msm_bedais[e->values[item]].port_id,
18551 msm_bedais[e->shift_l].port_id,
18552 1, 1, 1);
18553 else {
18554 pr_debug("%s values are out of range item %d\n",
18555 __func__, e->values[item]);
18556 /* Disable feedback TX path */
18557 if (e->values[item] == MSM_BACKEND_DAI_MAX)
18558 ret = afe_spk_prot_feed_back_cfg(0,
18559 0, 0, 0, 0);
18560 else
18561 ret = -EINVAL;
18562 }
18563 } else {
18564 pr_err("%s item value is out of range item\n", __func__);
18565 ret = -EINVAL;
18566 }
18567 mutex_unlock(&routing_lock);
18568 return ret;
18569}
18570
18571static int spkr_prot_get_vi_lch_port(struct snd_kcontrol *kcontrol,
18572 struct snd_ctl_elem_value *ucontrol)
18573{
18574 pr_debug("%s\n", __func__);
18575 return 0;
18576}
18577
18578static int spkr_prot_get_vi_rch_port(struct snd_kcontrol *kcontrol,
18579 struct snd_ctl_elem_value *ucontrol)
18580{
18581 pr_debug("%s\n", __func__);
18582 ucontrol->value.enumerated.item[0] = 0;
18583 return 0;
18584}
18585
18586static const char * const slim0_rx_vi_fb_tx_lch_mux_text[] = {
18587 "ZERO", "SLIM4_TX"
18588};
18589
18590static const char * const slim0_rx_vi_fb_tx_rch_mux_text[] = {
18591 "ZERO", "SLIM4_TX"
18592};
18593
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018594static const char * const wsa_rx_0_vi_fb_tx_lch_mux_text[] = {
18595 "ZERO", "WSA_CDC_DMA_TX_0"
18596};
18597
18598static const char * const wsa_rx_0_vi_fb_tx_rch_mux_text[] = {
18599 "ZERO", "WSA_CDC_DMA_TX_0"
18600};
18601
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018602static const char * const mi2s_rx_vi_fb_tx_mux_text[] = {
18603 "ZERO", "SENARY_TX"
18604};
18605
18606static const char * const int4_mi2s_rx_vi_fb_tx_mono_mux_text[] = {
18607 "ZERO", "INT5_MI2S_TX"
18608};
18609
18610static const char * const int4_mi2s_rx_vi_fb_tx_stereo_mux_text[] = {
18611 "ZERO", "INT5_MI2S_TX"
18612};
18613
Josh Kirschea69fed2018-12-11 16:15:08 -080018614static const int slim0_rx_vi_fb_tx_lch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018615 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
18616};
18617
Josh Kirschea69fed2018-12-11 16:15:08 -080018618static const int slim0_rx_vi_fb_tx_rch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018619 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
18620};
18621
Josh Kirschea69fed2018-12-11 16:15:08 -080018622static const int wsa_rx_0_vi_fb_tx_lch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018623 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
18624};
18625
Josh Kirschea69fed2018-12-11 16:15:08 -080018626static const int wsa_rx_0_vi_fb_tx_rch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018627 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
18628};
18629
18630
Josh Kirschea69fed2018-12-11 16:15:08 -080018631static const int mi2s_rx_vi_fb_tx_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018632 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SENARY_MI2S_TX
18633};
18634
Josh Kirschea69fed2018-12-11 16:15:08 -080018635static const int int4_mi2s_rx_vi_fb_tx_mono_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018636 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
18637};
18638
Josh Kirschea69fed2018-12-11 16:15:08 -080018639static const int int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018640 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
18641};
18642
18643static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
18644 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
18645 ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
18646 slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
18647
18648static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
18649 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
18650 ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
18651 slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
18652
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018653static const struct soc_enum wsa_rx_0_vi_fb_lch_mux_enum =
18654 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
18655 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_lch_mux_text),
18656 wsa_rx_0_vi_fb_tx_lch_mux_text, wsa_rx_0_vi_fb_tx_lch_value);
18657
18658static const struct soc_enum wsa_rx_0_vi_fb_rch_mux_enum =
18659 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
18660 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_rch_mux_text),
18661 wsa_rx_0_vi_fb_tx_rch_mux_text, wsa_rx_0_vi_fb_tx_rch_value);
18662
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018663static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
18664 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
18665 ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
18666 mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
18667
18668static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
18669 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
18670 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
18671 int4_mi2s_rx_vi_fb_tx_mono_mux_text,
18672 int4_mi2s_rx_vi_fb_tx_mono_ch_value);
18673
18674static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
18675 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
18676 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
18677 int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
18678 int4_mi2s_rx_vi_fb_tx_stereo_ch_value);
18679
18680static const struct snd_kcontrol_new slim0_rx_vi_fb_lch_mux =
18681 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_LCH_MUX",
18682 slim0_rx_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
18683 spkr_prot_put_vi_lch_port);
18684
18685static const struct snd_kcontrol_new slim0_rx_vi_fb_rch_mux =
18686 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_RCH_MUX",
18687 slim0_rx_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
18688 spkr_prot_put_vi_rch_port);
18689
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018690static const struct snd_kcontrol_new wsa_rx_0_vi_fb_lch_mux =
18691 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_LCH_MUX",
18692 wsa_rx_0_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
18693 spkr_prot_put_vi_lch_port);
18694
18695static const struct snd_kcontrol_new wsa_rx_0_vi_fb_rch_mux =
18696 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_RCH_MUX",
18697 wsa_rx_0_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
18698 spkr_prot_put_vi_rch_port);
18699
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018700static const struct snd_kcontrol_new mi2s_rx_vi_fb_mux =
18701 SOC_DAPM_ENUM_EXT("PRI_MI2S_RX_VI_FB_MUX",
18702 mi2s_rx_vi_fb_mux_enum, spkr_prot_get_vi_lch_port,
18703 spkr_prot_put_vi_lch_port);
18704
18705static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_mono_ch_mux =
18706 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_MONO_CH_MUX",
18707 int4_mi2s_rx_vi_fb_mono_ch_mux_enum, spkr_prot_get_vi_lch_port,
18708 spkr_prot_put_vi_lch_port);
18709
18710static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_stereo_ch_mux =
18711 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX",
18712 int4_mi2s_rx_vi_fb_stereo_ch_mux_enum, spkr_prot_get_vi_rch_port,
18713 spkr_prot_put_vi_rch_port);
18714
18715static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
18716 /* Frontend AIF */
18717 /* Widget name equals to Front-End DAI name<Need confirmation>,
18718 * Stream name must contains substring of front-end dai name
18719 */
18720 SND_SOC_DAPM_AIF_IN("MM_DL1", "MultiMedia1 Playback", 0, 0, 0, 0),
18721 SND_SOC_DAPM_AIF_IN("MM_DL2", "MultiMedia2 Playback", 0, 0, 0, 0),
18722 SND_SOC_DAPM_AIF_IN("MM_DL3", "MultiMedia3 Playback", 0, 0, 0, 0),
18723 SND_SOC_DAPM_AIF_IN("MM_DL4", "MultiMedia4 Playback", 0, 0, 0, 0),
18724 SND_SOC_DAPM_AIF_IN("MM_DL5", "MultiMedia5 Playback", 0, 0, 0, 0),
18725 SND_SOC_DAPM_AIF_IN("MM_DL6", "MultiMedia6 Playback", 0, 0, 0, 0),
18726 SND_SOC_DAPM_AIF_IN("MM_DL7", "MultiMedia7 Playback", 0, 0, 0, 0),
18727 SND_SOC_DAPM_AIF_IN("MM_DL8", "MultiMedia8 Playback", 0, 0, 0, 0),
18728 SND_SOC_DAPM_AIF_IN("MM_DL9", "MultiMedia9 Playback", 0, 0, 0, 0),
18729 SND_SOC_DAPM_AIF_IN("MM_DL10", "MultiMedia10 Playback", 0, 0, 0, 0),
18730 SND_SOC_DAPM_AIF_IN("MM_DL11", "MultiMedia11 Playback", 0, 0, 0, 0),
18731 SND_SOC_DAPM_AIF_IN("MM_DL12", "MultiMedia12 Playback", 0, 0, 0, 0),
18732 SND_SOC_DAPM_AIF_IN("MM_DL13", "MultiMedia13 Playback", 0, 0, 0, 0),
18733 SND_SOC_DAPM_AIF_IN("MM_DL14", "MultiMedia14 Playback", 0, 0, 0, 0),
18734 SND_SOC_DAPM_AIF_IN("MM_DL15", "MultiMedia15 Playback", 0, 0, 0, 0),
18735 SND_SOC_DAPM_AIF_IN("MM_DL16", "MultiMedia16 Playback", 0, 0, 0, 0),
18736 SND_SOC_DAPM_AIF_IN("MM_DL20", "MultiMedia20 Playback", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070018737 SND_SOC_DAPM_AIF_IN("MM_DL21", "MultiMedia21 Playback", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053018738 SND_SOC_DAPM_AIF_IN("MM_DL26", "MultiMedia26 Playback", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018739 SND_SOC_DAPM_AIF_IN("VOIP_DL", "VoIP Playback", 0, 0, 0, 0),
18740 SND_SOC_DAPM_AIF_OUT("MM_UL1", "MultiMedia1 Capture", 0, 0, 0, 0),
18741 SND_SOC_DAPM_AIF_OUT("MM_UL2", "MultiMedia2 Capture", 0, 0, 0, 0),
18742 SND_SOC_DAPM_AIF_OUT("MM_UL3", "MultiMedia3 Capture", 0, 0, 0, 0),
18743 SND_SOC_DAPM_AIF_OUT("MM_UL4", "MultiMedia4 Capture", 0, 0, 0, 0),
18744 SND_SOC_DAPM_AIF_OUT("MM_UL5", "MultiMedia5 Capture", 0, 0, 0, 0),
18745 SND_SOC_DAPM_AIF_OUT("MM_UL6", "MultiMedia6 Capture", 0, 0, 0, 0),
18746 SND_SOC_DAPM_AIF_OUT("MM_UL8", "MultiMedia8 Capture", 0, 0, 0, 0),
18747 SND_SOC_DAPM_AIF_OUT("MM_UL9", "MultiMedia9 Capture", 0, 0, 0, 0),
Laxminath Kasam38070be2017-08-17 18:21:59 +053018748 SND_SOC_DAPM_AIF_OUT("MM_UL10", "MultiMedia10 Capture", 0, 0, 0, 0),
Asish Bhattacharya34504582017-08-08 12:55:01 +053018749 SND_SOC_DAPM_AIF_OUT("MM_UL16", "MultiMedia16 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018750 SND_SOC_DAPM_AIF_OUT("MM_UL17", "MultiMedia17 Capture", 0, 0, 0, 0),
18751 SND_SOC_DAPM_AIF_OUT("MM_UL18", "MultiMedia18 Capture", 0, 0, 0, 0),
18752 SND_SOC_DAPM_AIF_OUT("MM_UL19", "MultiMedia19 Capture", 0, 0, 0, 0),
18753 SND_SOC_DAPM_AIF_OUT("MM_UL20", "MultiMedia20 Capture", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070018754 SND_SOC_DAPM_AIF_OUT("MM_UL21", "MultiMedia21 Capture", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053018755 SND_SOC_DAPM_AIF_OUT("MM_UL27", "MultiMedia27 Capture", 0, 0, 0, 0),
Meng Wang5c4bab72018-04-25 10:40:01 +080018756 SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
18757 SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018758 SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
18759 SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
18760 "VoiceMMode1 Playback", 0, 0, 0, 0),
18761 SND_SOC_DAPM_AIF_OUT("VOICEMMODE1_UL",
18762 "VoiceMMode1 Capture", 0, 0, 0, 0),
18763 SND_SOC_DAPM_AIF_IN("VOICEMMODE2_DL",
18764 "VoiceMMode2 Playback", 0, 0, 0, 0),
18765 SND_SOC_DAPM_AIF_OUT("VOICEMMODE2_UL",
18766 "VoiceMMode2 Capture", 0, 0, 0, 0),
18767 SND_SOC_DAPM_AIF_IN("SLIM0_DL_HL", "SLIMBUS0_HOSTLESS Playback",
18768 0, 0, 0, 0),
18769 SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
18770 0, 0, 0, 0),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053018771 SND_SOC_DAPM_AIF_IN("CDC_DMA_DL_HL", "CDC_DMA_HOSTLESS Playback",
18772 0, 0, 0, 0),
18773 SND_SOC_DAPM_AIF_OUT("CDC_DMA_UL_HL", "CDC_DMA_HOSTLESS Capture",
18774 0, 0, 0, 0),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053018775 SND_SOC_DAPM_AIF_OUT("TX3_CDC_DMA_UL_HL",
18776 "TX3_CDC_DMA_HOSTLESS Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018777 SND_SOC_DAPM_AIF_OUT("CPE_LSM_UL_HL", "CPE LSM capture",
18778 0, 0, 0, 0),
18779 SND_SOC_DAPM_AIF_IN("SLIM1_DL_HL", "SLIMBUS1_HOSTLESS Playback",
18780 0, 0, 0, 0),
18781 SND_SOC_DAPM_AIF_OUT("SLIM1_UL_HL", "SLIMBUS1_HOSTLESS Capture",
18782 0, 0, 0, 0),
18783 SND_SOC_DAPM_AIF_IN("SLIM3_DL_HL", "SLIMBUS3_HOSTLESS Playback",
18784 0, 0, 0, 0),
18785 SND_SOC_DAPM_AIF_OUT("SLIM3_UL_HL", "SLIMBUS3_HOSTLESS Capture",
18786 0, 0, 0, 0),
18787 SND_SOC_DAPM_AIF_IN("SLIM4_DL_HL", "SLIMBUS4_HOSTLESS Playback",
18788 0, 0, 0, 0),
18789 SND_SOC_DAPM_AIF_OUT("SLIM4_UL_HL", "SLIMBUS4_HOSTLESS Capture",
18790 0, 0, 0, 0),
18791 SND_SOC_DAPM_AIF_IN("SLIM6_DL_HL", "SLIMBUS6_HOSTLESS Playback",
18792 0, 0, 0, 0),
18793 SND_SOC_DAPM_AIF_OUT("SLIM6_UL_HL", "SLIMBUS6_HOSTLESS Capture",
18794 0, 0, 0, 0),
18795 SND_SOC_DAPM_AIF_IN("SLIM7_DL_HL", "SLIMBUS7_HOSTLESS Playback",
18796 0, 0, 0, 0),
18797 SND_SOC_DAPM_AIF_OUT("SLIM7_UL_HL", "SLIMBUS7_HOSTLESS Capture",
18798 0, 0, 0, 0),
18799 SND_SOC_DAPM_AIF_IN("SLIM8_DL_HL", "SLIMBUS8_HOSTLESS Playback",
18800 0, 0, 0, 0),
18801 SND_SOC_DAPM_AIF_OUT("SLIM8_UL_HL", "SLIMBUS8_HOSTLESS Capture",
18802 0, 0, 0, 0),
18803 SND_SOC_DAPM_AIF_IN("INTFM_DL_HL", "INT_FM_HOSTLESS Playback",
18804 0, 0, 0, 0),
18805 SND_SOC_DAPM_AIF_OUT("INTFM_UL_HL", "INT_FM_HOSTLESS Capture",
18806 0, 0, 0, 0),
18807 SND_SOC_DAPM_AIF_IN("INTHFP_DL_HL", "INT_HFP_BT_HOSTLESS Playback",
18808 0, 0, 0, 0),
18809 SND_SOC_DAPM_AIF_OUT("INTHFP_UL_HL", "INT_HFP_BT_HOSTLESS Capture",
18810 0, 0, 0, 0),
18811 SND_SOC_DAPM_AIF_IN("USBAUDIO_DL_HL", "USBAUDIO_HOSTLESS Playback",
18812 0, 0, 0, 0),
18813 SND_SOC_DAPM_AIF_OUT("USBAUDIO_UL_HL", "USBAUDIO_HOSTLESS Capture",
18814 0, 0, 0, 0),
18815 SND_SOC_DAPM_AIF_IN("HDMI_DL_HL", "HDMI_HOSTLESS Playback", 0, 0, 0, 0),
18816 SND_SOC_DAPM_AIF_IN("SEC_I2S_DL_HL", "SEC_I2S_RX_HOSTLESS Playback",
18817 0, 0, 0, 0),
18818 SND_SOC_DAPM_AIF_IN("INT0_MI2S_DL_HL",
18819 "INT0 MI2S_RX Hostless Playback",
18820 0, 0, 0, 0),
18821 SND_SOC_DAPM_AIF_IN("INT4_MI2S_DL_HL",
18822 "INT4 MI2S_RX Hostless Playback",
18823 0, 0, 0, 0),
18824 SND_SOC_DAPM_AIF_IN("PRI_MI2S_DL_HL",
18825 "Primary MI2S_RX Hostless Playback",
18826 0, 0, 0, 0),
18827 SND_SOC_DAPM_AIF_IN("SEC_MI2S_DL_HL",
18828 "Secondary MI2S_RX Hostless Playback",
18829 0, 0, 0, 0),
18830 SND_SOC_DAPM_AIF_IN("TERT_MI2S_DL_HL",
18831 "Tertiary MI2S_RX Hostless Playback",
18832 0, 0, 0, 0),
18833 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_DL_HL",
18834 "Quaternary MI2S_RX Hostless Playback",
18835 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018836 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_DL_HL",
18837 "Quinary MI2S_RX Hostless Playback",
18838 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018839
18840 SND_SOC_DAPM_AIF_IN("AUXPCM_DL_HL", "AUXPCM_HOSTLESS Playback",
18841 0, 0, 0, 0),
18842 SND_SOC_DAPM_AIF_OUT("AUXPCM_UL_HL", "AUXPCM_HOSTLESS Capture",
18843 0, 0, 0, 0),
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080018844 SND_SOC_DAPM_AIF_IN("SEC_AUXPCM_DL_HL", "SEC_AUXPCM_HOSTLESS Playback",
18845 0, 0, 0, 0),
18846 SND_SOC_DAPM_AIF_OUT("SEC_AUXPCM_UL_HL", "SEC_AUXPCM_HOSTLESS Capture",
18847 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018848 SND_SOC_DAPM_AIF_OUT("MI2S_UL_HL", "MI2S_TX_HOSTLESS Capture",
18849 0, 0, 0, 0),
18850 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_UL_HL",
18851 "INT3 MI2S_TX Hostless Capture",
18852 0, 0, 0, 0),
18853 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_UL_HL",
18854 "Tertiary MI2S_TX Hostless Capture",
18855 0, 0, 0, 0),
18856 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_UL_HL",
18857 "Secondary MI2S_TX Hostless Capture",
18858 0, 0, 0, 0),
18859 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_UL_HL",
18860 "Primary MI2S_TX Hostless Capture",
18861 0, 0, 0, 0),
18862 SND_SOC_DAPM_AIF_OUT("MI2S_DL_HL", "MI2S_RX_HOSTLESS Playback",
18863 0, 0, 0, 0),
18864 SND_SOC_DAPM_AIF_IN("DTMF_DL_HL", "DTMF_RX_HOSTLESS Playback",
18865 0, 0, 0, 0),
18866 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_UL_HL",
18867 "Quaternary MI2S_TX Hostless Capture",
18868 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018869 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_UL_HL",
18870 "Quinary MI2S_TX Hostless Capture",
18871 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018872
18873 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_0_DL_HL",
18874 "Primary TDM0 Hostless Playback",
18875 0, 0, 0, 0),
18876 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_0_UL_HL",
18877 "Primary TDM0 Hostless Capture",
18878 0, 0, 0, 0),
18879 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_1_DL_HL",
18880 "Primary TDM1 Hostless Playback",
18881 0, 0, 0, 0),
18882 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_1_UL_HL",
18883 "Primary TDM1 Hostless Capture",
18884 0, 0, 0, 0),
18885 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_2_DL_HL",
18886 "Primary TDM2 Hostless Playback",
18887 0, 0, 0, 0),
18888 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_2_UL_HL",
18889 "Primary TDM2 Hostless Capture",
18890 0, 0, 0, 0),
18891 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_3_DL_HL",
18892 "Primary TDM3 Hostless Playback",
18893 0, 0, 0, 0),
18894 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_3_UL_HL",
18895 "Primary TDM3 Hostless Capture",
18896 0, 0, 0, 0),
18897 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_4_DL_HL",
18898 "Primary TDM4 Hostless Playback",
18899 0, 0, 0, 0),
18900 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_4_UL_HL",
18901 "Primary TDM4 Hostless Capture",
18902 0, 0, 0, 0),
18903 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_5_DL_HL",
18904 "Primary TDM5 Hostless Playback",
18905 0, 0, 0, 0),
18906 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_5_UL_HL",
18907 "Primary TDM5 Hostless Capture",
18908 0, 0, 0, 0),
18909 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_6_DL_HL",
18910 "Primary TDM6 Hostless Playback",
18911 0, 0, 0, 0),
18912 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_6_UL_HL",
18913 "Primary TDM6 Hostless Capture",
18914 0, 0, 0, 0),
18915 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_7_DL_HL",
18916 "Primary TDM7 Hostless Playback",
18917 0, 0, 0, 0),
18918 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_7_UL_HL",
18919 "Primary TDM7 Hostless Capture",
18920 0, 0, 0, 0),
18921 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_0_DL_HL",
18922 "Secondary TDM0 Hostless Playback",
18923 0, 0, 0, 0),
18924 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_0_UL_HL",
18925 "Secondary TDM0 Hostless Capture",
18926 0, 0, 0, 0),
18927 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_1_DL_HL",
18928 "Secondary TDM1 Hostless Playback",
18929 0, 0, 0, 0),
18930 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_1_UL_HL",
18931 "Secondary TDM1 Hostless Capture",
18932 0, 0, 0, 0),
18933 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_2_DL_HL",
18934 "Secondary TDM2 Hostless Playback",
18935 0, 0, 0, 0),
18936 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_2_UL_HL",
18937 "Secondary TDM2 Hostless Capture",
18938 0, 0, 0, 0),
18939 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_3_DL_HL",
18940 "Secondary TDM3 Hostless Playback",
18941 0, 0, 0, 0),
18942 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_3_UL_HL",
18943 "Secondary TDM3 Hostless Capture",
18944 0, 0, 0, 0),
18945 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_4_DL_HL",
18946 "Secondary TDM4 Hostless Playback",
18947 0, 0, 0, 0),
18948 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_4_UL_HL",
18949 "Secondary TDM4 Hostless Capture",
18950 0, 0, 0, 0),
18951 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_5_DL_HL",
18952 "Secondary TDM5 Hostless Playback",
18953 0, 0, 0, 0),
18954 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_5_UL_HL",
18955 "Secondary TDM5 Hostless Capture",
18956 0, 0, 0, 0),
18957 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_6_DL_HL",
18958 "Secondary TDM6 Hostless Playback",
18959 0, 0, 0, 0),
18960 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_6_UL_HL",
18961 "Secondary TDM6 Hostless Capture",
18962 0, 0, 0, 0),
18963 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_7_DL_HL",
18964 "Secondary TDM7 Hostless Playback",
18965 0, 0, 0, 0),
18966 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_7_UL_HL",
18967 "Secondary TDM7 Hostless Capture",
18968 0, 0, 0, 0),
18969 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_0_DL_HL",
18970 "Tertiary TDM0 Hostless Playback",
18971 0, 0, 0, 0),
18972 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_0_UL_HL",
18973 "Tertiary TDM0 Hostless Capture",
18974 0, 0, 0, 0),
18975 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_1_DL_HL",
18976 "Tertiary TDM1 Hostless Playback",
18977 0, 0, 0, 0),
18978 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_1_UL_HL",
18979 "Tertiary TDM1 Hostless Capture",
18980 0, 0, 0, 0),
18981 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_2_DL_HL",
18982 "Tertiary TDM2 Hostless Playback",
18983 0, 0, 0, 0),
18984 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_2_UL_HL",
18985 "Tertiary TDM2 Hostless Capture",
18986 0, 0, 0, 0),
18987 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_3_DL_HL",
18988 "Tertiary TDM3 Hostless Playback",
18989 0, 0, 0, 0),
18990 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_3_UL_HL",
18991 "Tertiary TDM3 Hostless Capture",
18992 0, 0, 0, 0),
18993 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_4_DL_HL",
18994 "Tertiary TDM4 Hostless Playback",
18995 0, 0, 0, 0),
18996 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_4_UL_HL",
18997 "Tertiary TDM4 Hostless Capture",
18998 0, 0, 0, 0),
18999 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_5_DL_HL",
19000 "Tertiary TDM5 Hostless Playback",
19001 0, 0, 0, 0),
19002 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_5_UL_HL",
19003 "Tertiary TDM5 Hostless Capture",
19004 0, 0, 0, 0),
19005 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_6_DL_HL",
19006 "Tertiary TDM6 Hostless Playback",
19007 0, 0, 0, 0),
19008 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_6_UL_HL",
19009 "Tertiary TDM6 Hostless Capture",
19010 0, 0, 0, 0),
19011 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_7_DL_HL",
19012 "Tertiary TDM7 Hostless Playback",
19013 0, 0, 0, 0),
19014 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_7_UL_HL",
19015 "Tertiary TDM7 Hostless Capture",
19016 0, 0, 0, 0),
19017 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_0_DL_HL",
19018 "Quaternary TDM0 Hostless Playback",
19019 0, 0, 0, 0),
19020 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_0_UL_HL",
19021 "Quaternary TDM0 Hostless Capture",
19022 0, 0, 0, 0),
19023 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_1_DL_HL",
19024 "Quaternary TDM1 Hostless Playback",
19025 0, 0, 0, 0),
19026 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_1_UL_HL",
19027 "Quaternary TDM1 Hostless Capture",
19028 0, 0, 0, 0),
19029 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_2_DL_HL",
19030 "Quaternary TDM2 Hostless Playback",
19031 0, 0, 0, 0),
19032 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_2_UL_HL",
19033 "Quaternary TDM2 Hostless Capture",
19034 0, 0, 0, 0),
19035 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_3_DL_HL",
19036 "Quaternary TDM3 Hostless Playback",
19037 0, 0, 0, 0),
19038 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_3_UL_HL",
19039 "Quaternary TDM3 Hostless Capture",
19040 0, 0, 0, 0),
19041 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_4_DL_HL",
19042 "Quaternary TDM4 Hostless Playback",
19043 0, 0, 0, 0),
19044 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_4_UL_HL",
19045 "Quaternary TDM4 Hostless Capture",
19046 0, 0, 0, 0),
19047 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_5_DL_HL",
19048 "Quaternary TDM5 Hostless Playback",
19049 0, 0, 0, 0),
19050 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_5_UL_HL",
19051 "Quaternary TDM5 Hostless Capture",
19052 0, 0, 0, 0),
19053 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_6_DL_HL",
19054 "Quaternary TDM6 Hostless Playback",
19055 0, 0, 0, 0),
19056 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_6_UL_HL",
19057 "Quaternary TDM6 Hostless Capture",
19058 0, 0, 0, 0),
19059 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_7_DL_HL",
19060 "Quaternary TDM7 Hostless Playback",
19061 0, 0, 0, 0),
19062 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_7_UL_HL",
19063 "Quaternary TDM7 Hostless Capture",
19064 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053019065 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_0_DL_HL",
19066 "Quinary TDM0 Hostless Playback",
19067 0, 0, 0, 0),
19068 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_0_UL_HL",
19069 "Quinary TDM0 Hostless Capture",
19070 0, 0, 0, 0),
19071 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_1_DL_HL",
19072 "Quinary TDM1 Hostless Playback",
19073 0, 0, 0, 0),
19074 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_1_UL_HL",
19075 "Quinary TDM1 Hostless Capture",
19076 0, 0, 0, 0),
19077 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_2_DL_HL",
19078 "Quinary TDM2 Hostless Playback",
19079 0, 0, 0, 0),
19080 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_2_UL_HL",
19081 "Quinary TDM2 Hostless Capture",
19082 0, 0, 0, 0),
19083 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_3_DL_HL",
19084 "Quinary TDM3 Hostless Playback",
19085 0, 0, 0, 0),
19086 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_3_UL_HL",
19087 "Quinary TDM3 Hostless Capture",
19088 0, 0, 0, 0),
19089 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_4_DL_HL",
19090 "Quinary TDM4 Hostless Playback",
19091 0, 0, 0, 0),
19092 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_4_UL_HL",
19093 "Quinary TDM4 Hostless Capture",
19094 0, 0, 0, 0),
19095 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_5_DL_HL",
19096 "Quinary TDM5 Hostless Playback",
19097 0, 0, 0, 0),
19098 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_5_UL_HL",
19099 "Quinary TDM5 Hostless Capture",
19100 0, 0, 0, 0),
19101 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_6_DL_HL",
19102 "Quinary TDM6 Hostless Playback",
19103 0, 0, 0, 0),
19104 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_6_UL_HL",
19105 "Quinary TDM6 Hostless Capture",
19106 0, 0, 0, 0),
19107 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_7_DL_HL",
19108 "Quinary TDM7 Hostless Playback",
19109 0, 0, 0, 0),
19110 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_7_UL_HL",
19111 "Quinary TDM7 Hostless Capture",
19112 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019113
19114 /* LSM */
19115 SND_SOC_DAPM_AIF_OUT("LSM1_UL_HL", "Listen 1 Audio Service Capture",
19116 0, 0, 0, 0),
19117 SND_SOC_DAPM_AIF_OUT("LSM2_UL_HL", "Listen 2 Audio Service Capture",
19118 0, 0, 0, 0),
19119 SND_SOC_DAPM_AIF_OUT("LSM3_UL_HL", "Listen 3 Audio Service Capture",
19120 0, 0, 0, 0),
19121 SND_SOC_DAPM_AIF_OUT("LSM4_UL_HL", "Listen 4 Audio Service Capture",
19122 0, 0, 0, 0),
19123 SND_SOC_DAPM_AIF_OUT("LSM5_UL_HL", "Listen 5 Audio Service Capture",
19124 0, 0, 0, 0),
19125 SND_SOC_DAPM_AIF_OUT("LSM6_UL_HL", "Listen 6 Audio Service Capture",
19126 0, 0, 0, 0),
19127 SND_SOC_DAPM_AIF_OUT("LSM7_UL_HL", "Listen 7 Audio Service Capture",
19128 0, 0, 0, 0),
19129 SND_SOC_DAPM_AIF_OUT("LSM8_UL_HL", "Listen 8 Audio Service Capture",
19130 0, 0, 0, 0),
19131 SND_SOC_DAPM_AIF_IN("QCHAT_DL", "QCHAT Playback", 0, 0, 0, 0),
19132 SND_SOC_DAPM_AIF_OUT("QCHAT_UL", "QCHAT Capture", 0, 0, 0, 0),
19133 /* Backend AIF */
19134 /* Stream name equals to backend dai link stream name */
19135 SND_SOC_DAPM_AIF_OUT("PRI_I2S_RX", "Primary I2S Playback", 0, 0, 0, 0),
19136 SND_SOC_DAPM_AIF_OUT("SEC_I2S_RX", "Secondary I2S Playback",
19137 0, 0, 0, 0),
Ralf Herzc8701f72018-06-20 11:37:35 +020019138 SND_SOC_DAPM_AIF_OUT("PRI_SPDIF_RX", "Primary SPDIF Playback",
19139 0, 0, 0, 0),
19140 SND_SOC_DAPM_AIF_IN("PRI_SPDIF_TX", "Primary SPDIF Capture",
19141 0, 0, 0, 0),
19142 SND_SOC_DAPM_AIF_OUT("SEC_SPDIF_RX", "Secondary SPDIF Playback",
19143 0, 0, 0, 0),
19144 SND_SOC_DAPM_AIF_IN("SEC_SPDIF_TX", "Secondary SPDIF Capture",
19145 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019146 SND_SOC_DAPM_AIF_OUT("SLIMBUS_0_RX", "Slimbus Playback", 0, 0, 0, 0),
19147 SND_SOC_DAPM_AIF_OUT("SLIMBUS_2_RX", "Slimbus2 Playback", 0, 0, 0, 0),
19148 SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_RX", "Slimbus5 Playback", 0, 0, 0, 0),
19149 SND_SOC_DAPM_AIF_OUT("HDMI", "HDMI Playback", 0, 0, 0, 0),
19150 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT", "Display Port Playback",
19151 0, 0, 0, 0),
Karthikeyan Mani57550082018-05-03 18:43:58 -070019152 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT1", "Display Port1 Playback",
19153 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019154 SND_SOC_DAPM_AIF_OUT("MI2S_RX", "MI2S Playback", 0, 0, 0, 0),
19155 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_RX", "Quaternary MI2S Playback",
19156 0, 0, 0, 0),
19157 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_RX", "Tertiary MI2S Playback",
19158 0, 0, 0, 0),
19159 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX", "Secondary MI2S Playback",
19160 0, 0, 0, 0),
19161 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX_SD1",
19162 "Secondary MI2S Playback SD1",
19163 0, 0, 0, 0),
19164 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_RX", "Primary MI2S Playback",
19165 0, 0, 0, 0),
19166 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_RX", "INT0 MI2S Playback",
19167 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053019168 SND_SOC_DAPM_AIF_OUT("INT2_MI2S_RX", "INT2 MI2S Playback",
19169 0, 0, 0, 0),
19170 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_RX", "INT3 MI2S Playback",
19171 0, 0, 0, 0),
19172 SND_SOC_DAPM_AIF_OUT("INT5_MI2S_RX", "INT5 MI2S Playback",
19173 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019174 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_RX", "INT4 MI2S Playback",
19175 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053019176 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_TX", "INT4 MI2S Capture",
19177 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019178 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_RX", "Quinary MI2S Playback",
19179 0, 0, 0, 0),
19180 SND_SOC_DAPM_AIF_IN("PRI_I2S_TX", "Primary I2S Capture", 0, 0, 0, 0),
19181 SND_SOC_DAPM_AIF_IN("MI2S_TX", "MI2S Capture", 0, 0, 0, 0),
19182 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_TX", "Quaternary MI2S Capture",
19183 0, 0, 0, 0),
19184 SND_SOC_DAPM_AIF_IN("PRI_MI2S_TX", "Primary MI2S Capture",
19185 0, 0, 0, 0),
19186 SND_SOC_DAPM_AIF_IN("TERT_MI2S_TX", "Tertiary MI2S Capture",
19187 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053019188 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_TX", "INT0 MI2S Capture",
19189 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019190 SND_SOC_DAPM_AIF_IN("INT2_MI2S_TX", "INT2 MI2S Capture",
19191 0, 0, 0, 0),
19192 SND_SOC_DAPM_AIF_IN("INT3_MI2S_TX", "INT3 MI2S Capture",
19193 0, 0, 0, 0),
19194 SND_SOC_DAPM_AIF_IN("SEC_MI2S_TX", "Secondary MI2S Capture",
19195 0, 0, 0, 0),
19196 SND_SOC_DAPM_AIF_IN("SLIMBUS_0_TX", "Slimbus Capture", 0, 0, 0, 0),
19197 SND_SOC_DAPM_AIF_IN("SLIMBUS_2_TX", "Slimbus2 Capture", 0, 0, 0, 0),
19198 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_TX", "Quinary MI2S Capture",
19199 0, 0, 0, 0),
19200 SND_SOC_DAPM_AIF_IN("SENARY_MI2S_TX", "Senary MI2S Capture",
19201 0, 0, 0, 0),
19202 SND_SOC_DAPM_AIF_OUT("INT_BT_SCO_RX", "Internal BT-SCO Playback",
19203 0, 0, 0, 0),
19204 SND_SOC_DAPM_AIF_IN("INT_BT_SCO_TX", "Internal BT-SCO Capture",
19205 0, 0, 0, 0),
19206 SND_SOC_DAPM_AIF_OUT("INT_BT_A2DP_RX", "Internal BT-A2DP Playback",
19207 0, 0, 0, 0),
19208 SND_SOC_DAPM_AIF_OUT("INT_FM_RX", "Internal FM Playback",
19209 0, 0, 0, 0),
19210 SND_SOC_DAPM_AIF_IN("INT_FM_TX", "Internal FM Capture",
19211 0, 0, 0, 0),
19212 SND_SOC_DAPM_AIF_OUT("PCM_RX", "AFE Playback",
19213 0, 0, 0, 0),
19214 SND_SOC_DAPM_AIF_IN("PCM_TX", "AFE Capture",
19215 0, 0, 0, 0),
19216 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_0", "Primary TDM0 Playback",
19217 0, 0, 0, 0),
19218 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_0", "Primary TDM0 Capture",
19219 0, 0, 0, 0),
19220 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_1", "Primary TDM1 Playback",
19221 0, 0, 0, 0),
19222 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_1", "Primary TDM1 Capture",
19223 0, 0, 0, 0),
19224 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_2", "Primary TDM2 Playback",
19225 0, 0, 0, 0),
19226 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_2", "Primary TDM2 Capture",
19227 0, 0, 0, 0),
19228 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_3", "Primary TDM3 Playback",
19229 0, 0, 0, 0),
19230 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_3", "Primary TDM3 Capture",
19231 0, 0, 0, 0),
19232 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_4", "Primary TDM4 Playback",
19233 0, 0, 0, 0),
19234 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_4", "Primary TDM4 Capture",
19235 0, 0, 0, 0),
19236 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_5", "Primary TDM5 Playback",
19237 0, 0, 0, 0),
19238 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_5", "Primary TDM5 Capture",
19239 0, 0, 0, 0),
19240 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_6", "Primary TDM6 Playback",
19241 0, 0, 0, 0),
19242 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_6", "Primary TDM6 Capture",
19243 0, 0, 0, 0),
19244 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_7", "Primary TDM7 Playback",
19245 0, 0, 0, 0),
19246 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_7", "Primary TDM7 Capture",
19247 0, 0, 0, 0),
19248 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_0", "Secondary TDM0 Playback",
19249 0, 0, 0, 0),
19250 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_0", "Secondary TDM0 Capture",
19251 0, 0, 0, 0),
19252 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_1", "Secondary TDM1 Playback",
19253 0, 0, 0, 0),
19254 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_1", "Secondary TDM1 Capture",
19255 0, 0, 0, 0),
19256 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_2", "Secondary TDM2 Playback",
19257 0, 0, 0, 0),
19258 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_2", "Secondary TDM2 Capture",
19259 0, 0, 0, 0),
19260 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_3", "Secondary TDM3 Playback",
19261 0, 0, 0, 0),
19262 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_3", "Secondary TDM3 Capture",
19263 0, 0, 0, 0),
19264 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_4", "Secondary TDM4 Playback",
19265 0, 0, 0, 0),
19266 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_4", "Secondary TDM4 Capture",
19267 0, 0, 0, 0),
19268 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_5", "Secondary TDM5 Playback",
19269 0, 0, 0, 0),
19270 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_5", "Secondary TDM5 Capture",
19271 0, 0, 0, 0),
19272 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_6", "Secondary TDM6 Playback",
19273 0, 0, 0, 0),
19274 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_6", "Secondary TDM6 Capture",
19275 0, 0, 0, 0),
19276 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_7", "Secondary TDM7 Playback",
19277 0, 0, 0, 0),
19278 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_7", "Secondary TDM7 Capture",
19279 0, 0, 0, 0),
19280 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_0", "Tertiary TDM0 Playback",
19281 0, 0, 0, 0),
19282 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_0", "Tertiary TDM0 Capture",
19283 0, 0, 0, 0),
19284 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_1", "Tertiary TDM1 Playback",
19285 0, 0, 0, 0),
19286 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_1", "Tertiary TDM1 Capture",
19287 0, 0, 0, 0),
19288 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_2", "Tertiary TDM2 Playback",
19289 0, 0, 0, 0),
19290 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_2", "Tertiary TDM2 Capture",
19291 0, 0, 0, 0),
19292 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_3", "Tertiary TDM3 Playback",
19293 0, 0, 0, 0),
19294 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_3", "Tertiary TDM3 Capture",
19295 0, 0, 0, 0),
19296 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_4", "Tertiary TDM4 Playback",
19297 0, 0, 0, 0),
19298 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_4", "Tertiary TDM4 Capture",
19299 0, 0, 0, 0),
19300 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_5", "Tertiary TDM5 Playback",
19301 0, 0, 0, 0),
19302 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_5", "Tertiary TDM5 Capture",
19303 0, 0, 0, 0),
19304 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_6", "Tertiary TDM6 Playback",
19305 0, 0, 0, 0),
19306 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_6", "Tertiary TDM6 Capture",
19307 0, 0, 0, 0),
19308 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_7", "Tertiary TDM7 Playback",
19309 0, 0, 0, 0),
19310 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_7", "Tertiary TDM7 Capture",
19311 0, 0, 0, 0),
19312 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_0", "Quaternary TDM0 Playback",
19313 0, 0, 0, 0),
19314 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_0", "Quaternary TDM0 Capture",
19315 0, 0, 0, 0),
19316 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_1", "Quaternary TDM1 Playback",
19317 0, 0, 0, 0),
19318 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_1", "Quaternary TDM1 Capture",
19319 0, 0, 0, 0),
19320 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_2", "Quaternary TDM2 Playback",
19321 0, 0, 0, 0),
19322 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_2", "Quaternary TDM2 Capture",
19323 0, 0, 0, 0),
19324 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_3", "Quaternary TDM3 Playback",
19325 0, 0, 0, 0),
19326 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_3", "Quaternary TDM3 Capture",
19327 0, 0, 0, 0),
19328 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_4", "Quaternary TDM4 Playback",
19329 0, 0, 0, 0),
19330 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_4", "Quaternary TDM4 Capture",
19331 0, 0, 0, 0),
19332 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_5", "Quaternary TDM5 Playback",
19333 0, 0, 0, 0),
19334 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_5", "Quaternary TDM5 Capture",
19335 0, 0, 0, 0),
19336 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_6", "Quaternary TDM6 Playback",
19337 0, 0, 0, 0),
19338 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_6", "Quaternary TDM6 Capture",
19339 0, 0, 0, 0),
19340 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_7", "Quaternary TDM7 Playback",
19341 0, 0, 0, 0),
19342 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_7", "Quaternary TDM7 Capture",
19343 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053019344 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_0", "Quinary TDM0 Playback",
19345 0, 0, 0, 0),
19346 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_0", "Quinary TDM0 Capture",
19347 0, 0, 0, 0),
19348 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_1", "Quinary TDM1 Playback",
19349 0, 0, 0, 0),
19350 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_1", "Quinary TDM1 Capture",
19351 0, 0, 0, 0),
19352 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_2", "Quinary TDM2 Playback",
19353 0, 0, 0, 0),
19354 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_2", "Quinary TDM2 Capture",
19355 0, 0, 0, 0),
19356 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_3", "Quinary TDM3 Playback",
19357 0, 0, 0, 0),
19358 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_3", "Quinary TDM3 Capture",
19359 0, 0, 0, 0),
19360 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_4", "Quinary TDM4 Playback",
19361 0, 0, 0, 0),
19362 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_4", "Quinary TDM4 Capture",
19363 0, 0, 0, 0),
19364 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_5", "Quinary TDM5 Playback",
19365 0, 0, 0, 0),
19366 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_5", "Quinary TDM5 Capture",
19367 0, 0, 0, 0),
19368 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_6", "Quinary TDM6 Playback",
19369 0, 0, 0, 0),
19370 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_6", "Quinary TDM6 Capture",
19371 0, 0, 0, 0),
19372 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_7", "Quinary TDM7 Playback",
19373 0, 0, 0, 0),
19374 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_7", "Quinary TDM7 Capture",
19375 0, 0, 0, 0),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019376 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_0", "WSA CDC DMA0 Playback",
19377 0, 0, 0, 0),
19378 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_0", "WSA CDC DMA0 Capture",
19379 0, 0, 0, 0),
19380 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_1", "WSA CDC DMA1 Playback",
19381 0, 0, 0, 0),
19382 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_1", "WSA CDC DMA1 Capture",
19383 0, 0, 0, 0),
19384 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_2", "WSA CDC DMA2 Capture",
19385 0, 0, 0, 0),
19386 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_0", "VA CDC DMA0 Capture",
19387 0, 0, 0, 0),
19388 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_1", "VA CDC DMA1 Capture",
19389 0, 0, 0, 0),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080019390 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_2", "VA CDC DMA2 Capture",
19391 0, 0, 0, 0),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019392 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_0", "RX CDC DMA0 Playback",
19393 0, 0, 0, 0),
19394 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_0", "TX CDC DMA0 Capture",
19395 0, 0, 0, 0),
19396 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_1", "RX CDC DMA1 Playback",
19397 0, 0, 0, 0),
19398 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_1", "TX CDC DMA1 Capture",
19399 0, 0, 0, 0),
19400 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_2", "RX CDC DMA2 Playback",
19401 0, 0, 0, 0),
19402 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_2", "TX CDC DMA2 Capture",
19403 0, 0, 0, 0),
19404 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_3", "RX CDC DMA3 Playback",
19405 0, 0, 0, 0),
19406 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_3", "TX CDC DMA3 Capture",
19407 0, 0, 0, 0),
19408 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_4", "RX CDC DMA4 Playback",
19409 0, 0, 0, 0),
19410 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_4", "TX CDC DMA4 Capture",
19411 0, 0, 0, 0),
19412 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_5", "RX CDC DMA5 Playback",
19413 0, 0, 0, 0),
19414 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_5", "TX CDC DMA5 Capture",
19415 0, 0, 0, 0),
19416 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_6", "RX CDC DMA6 Playback",
19417 0, 0, 0, 0),
19418 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_7", "RX CDC DMA7 Playback",
19419 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019420 /* incall */
19421 SND_SOC_DAPM_AIF_OUT("VOICE_PLAYBACK_TX", "Voice Farend Playback",
19422 0, 0, 0, 0),
19423 SND_SOC_DAPM_AIF_OUT("VOICE2_PLAYBACK_TX", "Voice2 Farend Playback",
19424 0, 0, 0, 0),
19425 SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_RX", "Slimbus4 Playback",
19426 0, 0, 0, 0),
19427 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_TX", "Voice Uplink Capture",
19428 0, 0, 0, 0),
19429 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_RX", "Voice Downlink Capture",
19430 0, 0, 0, 0),
19431 SND_SOC_DAPM_AIF_IN("SLIMBUS_4_TX", "Slimbus4 Capture",
19432 0, 0, 0, 0),
19433 SND_SOC_DAPM_AIF_IN("SENARY_TX", "Senary_mi2s Capture",
19434 0, 0, 0, 0),
19435 SND_SOC_DAPM_AIF_IN("INT5_MI2S_TX", "INT5 MI2S Capture",
19436 0, 0, 0, 0),
19437 SND_SOC_DAPM_AIF_IN("SLIMBUS_5_TX", "Slimbus5 Capture", 0, 0, 0, 0),
19438
19439 SND_SOC_DAPM_AIF_OUT("AUX_PCM_RX", "AUX PCM Playback", 0, 0, 0, 0),
19440 SND_SOC_DAPM_AIF_IN("AUX_PCM_TX", "AUX PCM Capture", 0, 0, 0, 0),
19441 SND_SOC_DAPM_AIF_OUT("SEC_AUX_PCM_RX", "Sec AUX PCM Playback",
19442 0, 0, 0, 0),
19443 SND_SOC_DAPM_AIF_IN("SEC_AUX_PCM_TX", "Sec AUX PCM Capture",
19444 0, 0, 0, 0),
19445 SND_SOC_DAPM_AIF_OUT("TERT_AUX_PCM_RX", "Tert AUX PCM Playback",
19446 0, 0, 0, 0),
19447 SND_SOC_DAPM_AIF_IN("TERT_AUX_PCM_TX", "Tert AUX PCM Capture",
19448 0, 0, 0, 0),
19449 SND_SOC_DAPM_AIF_OUT("QUAT_AUX_PCM_RX", "Quat AUX PCM Playback",
19450 0, 0, 0, 0),
19451 SND_SOC_DAPM_AIF_IN("QUAT_AUX_PCM_TX", "Quat AUX PCM Capture",
19452 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053019453 SND_SOC_DAPM_AIF_OUT("QUIN_AUX_PCM_RX", "Quin AUX PCM Playback",
19454 0, 0, 0, 0),
19455 SND_SOC_DAPM_AIF_IN("QUIN_AUX_PCM_TX", "Quin AUX PCM Capture",
19456 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019457 SND_SOC_DAPM_AIF_IN("VOICE_STUB_DL", "VOICE_STUB Playback", 0, 0, 0, 0),
19458 SND_SOC_DAPM_AIF_OUT("VOICE_STUB_UL", "VOICE_STUB Capture", 0, 0, 0, 0),
19459 SND_SOC_DAPM_AIF_IN("VOICE2_STUB_DL", "VOICE2_STUB Playback",
19460 0, 0, 0, 0),
19461 SND_SOC_DAPM_AIF_OUT("VOICE2_STUB_UL", "VOICE2_STUB Capture",
19462 0, 0, 0, 0),
19463 SND_SOC_DAPM_AIF_IN("VOLTE_STUB_DL", "VOLTE_STUB Playback", 0, 0, 0, 0),
19464 SND_SOC_DAPM_AIF_OUT("VOLTE_STUB_UL", "VOLTE_STUB Capture", 0, 0, 0, 0),
19465 SND_SOC_DAPM_AIF_OUT("STUB_RX", "Stub Playback", 0, 0, 0, 0),
19466 SND_SOC_DAPM_AIF_IN("STUB_TX", "Stub Capture", 0, 0, 0, 0),
19467 SND_SOC_DAPM_AIF_OUT("SLIMBUS_1_RX", "Slimbus1 Playback", 0, 0, 0, 0),
19468 SND_SOC_DAPM_AIF_IN("SLIMBUS_1_TX", "Slimbus1 Capture", 0, 0, 0, 0),
19469 SND_SOC_DAPM_AIF_IN("STUB_1_TX", "Stub1 Capture", 0, 0, 0, 0),
19470 SND_SOC_DAPM_AIF_OUT("SLIMBUS_3_RX", "Slimbus3 Playback", 0, 0, 0, 0),
19471 SND_SOC_DAPM_AIF_IN("SLIMBUS_3_TX", "Slimbus3 Capture", 0, 0, 0, 0),
19472 /* In- call recording */
19473 SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_RX", "Slimbus6 Playback", 0, 0, 0, 0),
19474 SND_SOC_DAPM_AIF_IN("SLIMBUS_6_TX", "Slimbus6 Capture", 0, 0, 0, 0),
Surendar Karkad47fda42018-05-20 19:21:10 +053019475 SND_SOC_DAPM_AIF_IN("AFE_LOOPBACK_TX", "AFE Loopback Capture",
19476 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019477 SND_SOC_DAPM_AIF_OUT("SLIMBUS_7_RX", "Slimbus7 Playback", 0, 0, 0, 0),
19478 SND_SOC_DAPM_AIF_IN("SLIMBUS_7_TX", "Slimbus7 Capture", 0, 0, 0, 0),
19479
19480 SND_SOC_DAPM_AIF_OUT("SLIMBUS_8_RX", "Slimbus8 Playback", 0, 0, 0, 0),
19481 SND_SOC_DAPM_AIF_IN("SLIMBUS_8_TX", "Slimbus8 Capture", 0, 0, 0, 0),
Surendar Karka3ef3d812018-09-28 18:52:35 +053019482 SND_SOC_DAPM_AIF_OUT("SLIMBUS_9_RX", "Slimbus9 Playback", 0, 0, 0, 0),
19483 SND_SOC_DAPM_AIF_IN("SLIMBUS_9_TX", "Slimbus9 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019484 SND_SOC_DAPM_AIF_OUT("USB_AUDIO_RX", "USB Audio Playback", 0, 0, 0, 0),
19485 SND_SOC_DAPM_AIF_IN("USB_AUDIO_TX", "USB Audio Capture", 0, 0, 0, 0),
19486
19487 /* Switch Definitions */
19488 SND_SOC_DAPM_SWITCH("SLIMBUS_DL_HL", SND_SOC_NOPM, 0, 0,
19489 &slim_fm_switch_mixer_controls),
19490 SND_SOC_DAPM_SWITCH("SLIMBUS1_DL_HL", SND_SOC_NOPM, 0, 0,
19491 &slim1_fm_switch_mixer_controls),
19492 SND_SOC_DAPM_SWITCH("SLIMBUS3_DL_HL", SND_SOC_NOPM, 0, 0,
19493 &slim3_fm_switch_mixer_controls),
19494 SND_SOC_DAPM_SWITCH("SLIMBUS4_DL_HL", SND_SOC_NOPM, 0, 0,
19495 &slim4_fm_switch_mixer_controls),
19496 SND_SOC_DAPM_SWITCH("SLIMBUS6_DL_HL", SND_SOC_NOPM, 0, 0,
19497 &slim6_fm_switch_mixer_controls),
19498 SND_SOC_DAPM_SWITCH("PCM_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19499 &pcm_rx_switch_mixer_controls),
19500 SND_SOC_DAPM_SWITCH("INT0_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19501 &int0_mi2s_rx_switch_mixer_controls),
19502 SND_SOC_DAPM_SWITCH("INT4_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19503 &int4_mi2s_rx_switch_mixer_controls),
19504 SND_SOC_DAPM_SWITCH("PRI_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19505 &pri_mi2s_rx_switch_mixer_controls),
19506 SND_SOC_DAPM_SWITCH("SEC_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19507 &sec_mi2s_rx_switch_mixer_controls),
19508 SND_SOC_DAPM_SWITCH("TERT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19509 &tert_mi2s_rx_switch_mixer_controls),
19510 SND_SOC_DAPM_SWITCH("QUAT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19511 &quat_mi2s_rx_switch_mixer_controls),
Rohit Kumara5077932017-09-10 22:05:05 +053019512 SND_SOC_DAPM_SWITCH("QUIN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19513 &quin_mi2s_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019514 SND_SOC_DAPM_SWITCH("HFP_PRI_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
19515 &hfp_pri_aux_switch_mixer_controls),
19516 SND_SOC_DAPM_SWITCH("HFP_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
19517 &hfp_aux_switch_mixer_controls),
19518 SND_SOC_DAPM_SWITCH("HFP_INT_UL_HL", SND_SOC_NOPM, 0, 0,
19519 &hfp_int_switch_mixer_controls),
19520 SND_SOC_DAPM_SWITCH("HFP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
19521 &hfp_slim7_switch_mixer_controls),
19522 SND_SOC_DAPM_SWITCH("USB_DL_HL", SND_SOC_NOPM, 0, 0,
19523 &usb_switch_mixer_controls),
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080019524 SND_SOC_DAPM_SWITCH("A2DP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
19525 &a2dp_slim7_switch_mixer_controls),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053019526 SND_SOC_DAPM_SWITCH("WSA_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053019527 &cdc_dma_wsa_switch_mixer_controls),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053019528 SND_SOC_DAPM_SWITCH("RX_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053019529 &cdc_dma_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019530
19531 /* Mixer definitions */
19532 SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19533 pri_i2s_rx_mixer_controls, ARRAY_SIZE(pri_i2s_rx_mixer_controls)),
19534 SND_SOC_DAPM_MIXER("SEC_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19535 sec_i2s_rx_mixer_controls, ARRAY_SIZE(sec_i2s_rx_mixer_controls)),
19536 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19537 slimbus_rx_mixer_controls, ARRAY_SIZE(slimbus_rx_mixer_controls)),
19538 SND_SOC_DAPM_MIXER("SLIMBUS_2_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19539 slimbus_2_rx_mixer_controls, ARRAY_SIZE(slimbus_2_rx_mixer_controls)),
19540 SND_SOC_DAPM_MIXER("SLIMBUS_5_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19541 slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
19542 SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19543 slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
Surendar Karka3ef3d812018-09-28 18:52:35 +053019544 SND_SOC_DAPM_MIXER("SLIMBUS_9_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19545 slimbus_9_rx_mixer_controls, ARRAY_SIZE(slimbus_9_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019546 SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
19547 hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
19548 SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
19549 display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070019550 SND_SOC_DAPM_MIXER("DISPLAY_PORT1 Mixer", SND_SOC_NOPM, 0, 0,
19551 display_port1_mixer_controls, ARRAY_SIZE(display_port1_mixer_controls)),
Ralf Herzc8701f72018-06-20 11:37:35 +020019552 SND_SOC_DAPM_MIXER("PRI_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19553 pri_spdif_rx_mixer_controls, ARRAY_SIZE(pri_spdif_rx_mixer_controls)),
19554 SND_SOC_DAPM_MIXER("SEC_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19555 sec_spdif_rx_mixer_controls, ARRAY_SIZE(sec_spdif_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019556 SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19557 mi2s_rx_mixer_controls, ARRAY_SIZE(mi2s_rx_mixer_controls)),
19558 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19559 quaternary_mi2s_rx_mixer_controls,
19560 ARRAY_SIZE(quaternary_mi2s_rx_mixer_controls)),
19561 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19562 tertiary_mi2s_rx_mixer_controls,
19563 ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
19564 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19565 secondary_mi2s_rx_mixer_controls,
19566 ARRAY_SIZE(secondary_mi2s_rx_mixer_controls)),
19567 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_SD1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19568 secondary_mi2s_rx2_mixer_controls,
19569 ARRAY_SIZE(secondary_mi2s_rx2_mixer_controls)),
19570 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19571 primary_mi2s_rx_mixer_controls,
19572 ARRAY_SIZE(primary_mi2s_rx_mixer_controls)),
19573 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19574 int0_mi2s_rx_mixer_controls,
19575 ARRAY_SIZE(int0_mi2s_rx_mixer_controls)),
19576 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19577 int4_mi2s_rx_mixer_controls,
19578 ARRAY_SIZE(int4_mi2s_rx_mixer_controls)),
19579 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19580 quinary_mi2s_rx_mixer_controls,
19581 ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
19582 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19583 pri_tdm_rx_0_mixer_controls,
19584 ARRAY_SIZE(pri_tdm_rx_0_mixer_controls)),
19585 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19586 pri_tdm_rx_1_mixer_controls,
19587 ARRAY_SIZE(pri_tdm_rx_1_mixer_controls)),
19588 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19589 pri_tdm_rx_2_mixer_controls,
19590 ARRAY_SIZE(pri_tdm_rx_2_mixer_controls)),
19591 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19592 pri_tdm_rx_3_mixer_controls,
19593 ARRAY_SIZE(pri_tdm_rx_3_mixer_controls)),
19594 SND_SOC_DAPM_MIXER("PRI_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19595 pri_tdm_tx_0_mixer_controls,
19596 ARRAY_SIZE(pri_tdm_tx_0_mixer_controls)),
19597 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19598 sec_tdm_rx_0_mixer_controls,
19599 ARRAY_SIZE(sec_tdm_rx_0_mixer_controls)),
19600 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19601 sec_tdm_rx_1_mixer_controls,
19602 ARRAY_SIZE(sec_tdm_rx_1_mixer_controls)),
19603 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19604 sec_tdm_rx_2_mixer_controls,
19605 ARRAY_SIZE(sec_tdm_rx_2_mixer_controls)),
19606 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19607 sec_tdm_rx_3_mixer_controls,
19608 ARRAY_SIZE(sec_tdm_rx_3_mixer_controls)),
19609 SND_SOC_DAPM_MIXER("SEC_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19610 sec_tdm_tx_0_mixer_controls,
19611 ARRAY_SIZE(sec_tdm_tx_0_mixer_controls)),
19612 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19613 tert_tdm_rx_0_mixer_controls,
19614 ARRAY_SIZE(tert_tdm_rx_0_mixer_controls)),
19615 SND_SOC_DAPM_MIXER("TERT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19616 tert_tdm_tx_0_mixer_controls,
19617 ARRAY_SIZE(tert_tdm_tx_0_mixer_controls)),
19618 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19619 tert_tdm_rx_1_mixer_controls,
19620 ARRAY_SIZE(tert_tdm_rx_1_mixer_controls)),
19621 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19622 tert_tdm_rx_2_mixer_controls,
19623 ARRAY_SIZE(tert_tdm_rx_2_mixer_controls)),
19624 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19625 tert_tdm_rx_3_mixer_controls,
19626 ARRAY_SIZE(tert_tdm_rx_3_mixer_controls)),
19627 SND_SOC_DAPM_MIXER("TERT_TDM_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
19628 tert_tdm_rx_4_mixer_controls,
19629 ARRAY_SIZE(tert_tdm_rx_4_mixer_controls)),
19630 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19631 quat_tdm_rx_0_mixer_controls,
19632 ARRAY_SIZE(quat_tdm_rx_0_mixer_controls)),
19633 SND_SOC_DAPM_MIXER("QUAT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19634 quat_tdm_tx_0_mixer_controls,
19635 ARRAY_SIZE(quat_tdm_tx_0_mixer_controls)),
19636 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19637 quat_tdm_rx_1_mixer_controls,
19638 ARRAY_SIZE(quat_tdm_rx_1_mixer_controls)),
19639 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19640 quat_tdm_rx_2_mixer_controls,
19641 ARRAY_SIZE(quat_tdm_rx_2_mixer_controls)),
19642 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19643 quat_tdm_rx_3_mixer_controls,
19644 ARRAY_SIZE(quat_tdm_rx_3_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019645 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19646 quin_tdm_rx_0_mixer_controls,
19647 ARRAY_SIZE(quin_tdm_rx_0_mixer_controls)),
19648 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19649 quin_tdm_tx_0_mixer_controls,
19650 ARRAY_SIZE(quin_tdm_tx_0_mixer_controls)),
19651 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19652 quin_tdm_rx_1_mixer_controls,
19653 ARRAY_SIZE(quin_tdm_rx_1_mixer_controls)),
19654 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19655 quin_tdm_rx_2_mixer_controls,
19656 ARRAY_SIZE(quin_tdm_rx_2_mixer_controls)),
19657 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19658 quin_tdm_rx_3_mixer_controls,
19659 ARRAY_SIZE(quin_tdm_rx_3_mixer_controls)),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019660 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19661 wsa_cdc_dma_rx_0_mixer_controls,
19662 ARRAY_SIZE(wsa_cdc_dma_rx_0_mixer_controls)),
19663 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19664 wsa_cdc_dma_rx_1_mixer_controls,
19665 ARRAY_SIZE(wsa_cdc_dma_rx_1_mixer_controls)),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019666 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19667 rx_cdc_dma_rx_0_mixer_controls,
19668 ARRAY_SIZE(rx_cdc_dma_rx_0_mixer_controls)),
19669 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19670 rx_cdc_dma_rx_1_mixer_controls,
19671 ARRAY_SIZE(rx_cdc_dma_rx_1_mixer_controls)),
19672 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19673 rx_cdc_dma_rx_2_mixer_controls,
19674 ARRAY_SIZE(rx_cdc_dma_rx_2_mixer_controls)),
19675 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19676 rx_cdc_dma_rx_3_mixer_controls,
19677 ARRAY_SIZE(rx_cdc_dma_rx_3_mixer_controls)),
19678 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
19679 rx_cdc_dma_rx_4_mixer_controls,
19680 ARRAY_SIZE(rx_cdc_dma_rx_4_mixer_controls)),
19681 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_5 Audio Mixer", SND_SOC_NOPM, 0, 0,
19682 rx_cdc_dma_rx_5_mixer_controls,
19683 ARRAY_SIZE(rx_cdc_dma_rx_5_mixer_controls)),
19684 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_6 Audio Mixer", SND_SOC_NOPM, 0, 0,
19685 rx_cdc_dma_rx_6_mixer_controls,
19686 ARRAY_SIZE(rx_cdc_dma_rx_6_mixer_controls)),
19687 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_7 Audio Mixer", SND_SOC_NOPM, 0, 0,
19688 rx_cdc_dma_rx_7_mixer_controls,
19689 ARRAY_SIZE(rx_cdc_dma_rx_7_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019690 SND_SOC_DAPM_MIXER("MultiMedia1 Mixer", SND_SOC_NOPM, 0, 0,
19691 mmul1_mixer_controls, ARRAY_SIZE(mmul1_mixer_controls)),
19692 SND_SOC_DAPM_MIXER("MultiMedia2 Mixer", SND_SOC_NOPM, 0, 0,
19693 mmul2_mixer_controls, ARRAY_SIZE(mmul2_mixer_controls)),
19694 SND_SOC_DAPM_MIXER("MultiMedia3 Mixer", SND_SOC_NOPM, 0, 0,
19695 mmul3_mixer_controls, ARRAY_SIZE(mmul3_mixer_controls)),
19696 SND_SOC_DAPM_MIXER("MultiMedia4 Mixer", SND_SOC_NOPM, 0, 0,
19697 mmul4_mixer_controls, ARRAY_SIZE(mmul4_mixer_controls)),
19698 SND_SOC_DAPM_MIXER("MultiMedia5 Mixer", SND_SOC_NOPM, 0, 0,
19699 mmul5_mixer_controls, ARRAY_SIZE(mmul5_mixer_controls)),
19700 SND_SOC_DAPM_MIXER("MultiMedia6 Mixer", SND_SOC_NOPM, 0, 0,
19701 mmul6_mixer_controls, ARRAY_SIZE(mmul6_mixer_controls)),
19702 SND_SOC_DAPM_MIXER("MultiMedia8 Mixer", SND_SOC_NOPM, 0, 0,
19703 mmul8_mixer_controls, ARRAY_SIZE(mmul8_mixer_controls)),
19704 SND_SOC_DAPM_MIXER("MultiMedia9 Mixer", SND_SOC_NOPM, 0, 0,
19705 mmul9_mixer_controls, ARRAY_SIZE(mmul9_mixer_controls)),
Laxminath Kasam38070be2017-08-17 18:21:59 +053019706 SND_SOC_DAPM_MIXER("MultiMedia10 Mixer", SND_SOC_NOPM, 0, 0,
19707 mmul10_mixer_controls, ARRAY_SIZE(mmul10_mixer_controls)),
Asish Bhattacharya34504582017-08-08 12:55:01 +053019708 SND_SOC_DAPM_MIXER("MultiMedia16 Mixer", SND_SOC_NOPM, 0, 0,
19709 mmul16_mixer_controls, ARRAY_SIZE(mmul16_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019710 SND_SOC_DAPM_MIXER("MultiMedia17 Mixer", SND_SOC_NOPM, 0, 0,
19711 mmul17_mixer_controls, ARRAY_SIZE(mmul17_mixer_controls)),
19712 SND_SOC_DAPM_MIXER("MultiMedia18 Mixer", SND_SOC_NOPM, 0, 0,
19713 mmul18_mixer_controls, ARRAY_SIZE(mmul18_mixer_controls)),
19714 SND_SOC_DAPM_MIXER("MultiMedia19 Mixer", SND_SOC_NOPM, 0, 0,
19715 mmul19_mixer_controls, ARRAY_SIZE(mmul19_mixer_controls)),
19716 SND_SOC_DAPM_MIXER("MultiMedia20 Mixer", SND_SOC_NOPM, 0, 0,
19717 mmul20_mixer_controls, ARRAY_SIZE(mmul20_mixer_controls)),
Derek Chen07c6d1c2018-07-05 10:39:25 -070019718 SND_SOC_DAPM_MIXER("MultiMedia21 Mixer", SND_SOC_NOPM, 0, 0,
19719 mmul21_mixer_controls, ARRAY_SIZE(mmul21_mixer_controls)),
Surendar Karkac1cde372018-08-14 18:56:24 +053019720 SND_SOC_DAPM_MIXER("MultiMedia27 Mixer", SND_SOC_NOPM, 0, 0,
19721 mmul27_mixer_controls, ARRAY_SIZE(mmul27_mixer_controls)),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019722 SND_SOC_DAPM_MIXER("MultiMedia28 Mixer", SND_SOC_NOPM, 0, 0,
19723 mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
19724 SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
19725 mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019726 SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19727 auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
19728 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19729 sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
19730 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19731 tert_auxpcm_rx_mixer_controls,
19732 ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
19733 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19734 quat_auxpcm_rx_mixer_controls,
19735 ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019736 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19737 quin_auxpcm_rx_mixer_controls,
19738 ARRAY_SIZE(quin_auxpcm_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019739 /* incall */
19740 SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
19741 incall_music_delivery_mixer_controls,
19742 ARRAY_SIZE(incall_music_delivery_mixer_controls)),
19743 SND_SOC_DAPM_MIXER("Incall_Music_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19744 incall_music2_delivery_mixer_controls,
19745 ARRAY_SIZE(incall_music2_delivery_mixer_controls)),
19746 SND_SOC_DAPM_MIXER("SLIMBUS_4_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19747 slimbus_4_rx_mixer_controls,
19748 ARRAY_SIZE(slimbus_4_rx_mixer_controls)),
19749 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19750 slimbus_6_rx_mixer_controls,
19751 ARRAY_SIZE(slimbus_6_rx_mixer_controls)),
19752 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19753 usb_audio_rx_mixer_controls,
19754 ARRAY_SIZE(usb_audio_rx_mixer_controls)),
19755 /* Voice Mixer */
19756 SND_SOC_DAPM_MIXER("PRI_RX_Voice Mixer",
19757 SND_SOC_NOPM, 0, 0, pri_rx_voice_mixer_controls,
19758 ARRAY_SIZE(pri_rx_voice_mixer_controls)),
19759 SND_SOC_DAPM_MIXER("SEC_RX_Voice Mixer",
19760 SND_SOC_NOPM, 0, 0,
19761 sec_i2s_rx_voice_mixer_controls,
19762 ARRAY_SIZE(sec_i2s_rx_voice_mixer_controls)),
19763 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_Voice Mixer",
19764 SND_SOC_NOPM, 0, 0,
19765 sec_mi2s_rx_voice_mixer_controls,
19766 ARRAY_SIZE(sec_mi2s_rx_voice_mixer_controls)),
19767 SND_SOC_DAPM_MIXER("SLIM_0_RX_Voice Mixer",
19768 SND_SOC_NOPM, 0, 0,
19769 slimbus_rx_voice_mixer_controls,
19770 ARRAY_SIZE(slimbus_rx_voice_mixer_controls)),
19771 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX_Voice Mixer",
19772 SND_SOC_NOPM, 0, 0,
19773 bt_sco_rx_voice_mixer_controls,
19774 ARRAY_SIZE(bt_sco_rx_voice_mixer_controls)),
19775 SND_SOC_DAPM_MIXER("AFE_PCM_RX_Voice Mixer",
19776 SND_SOC_NOPM, 0, 0,
19777 afe_pcm_rx_voice_mixer_controls,
19778 ARRAY_SIZE(afe_pcm_rx_voice_mixer_controls)),
19779 SND_SOC_DAPM_MIXER("AUX_PCM_RX_Voice Mixer",
19780 SND_SOC_NOPM, 0, 0,
19781 aux_pcm_rx_voice_mixer_controls,
19782 ARRAY_SIZE(aux_pcm_rx_voice_mixer_controls)),
19783 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX_Voice Mixer",
19784 SND_SOC_NOPM, 0, 0,
19785 sec_aux_pcm_rx_voice_mixer_controls,
19786 ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
19787 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
19788 SND_SOC_NOPM, 0, 0,
19789 tert_aux_pcm_rx_voice_mixer_controls,
19790 ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
19791 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
19792 SND_SOC_NOPM, 0, 0,
19793 quat_aux_pcm_rx_voice_mixer_controls,
19794 ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019795 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX_Voice Mixer",
19796 SND_SOC_NOPM, 0, 0,
19797 quin_aux_pcm_rx_voice_mixer_controls,
19798 ARRAY_SIZE(quin_aux_pcm_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019799 SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
19800 SND_SOC_NOPM, 0, 0,
19801 hdmi_rx_voice_mixer_controls,
19802 ARRAY_SIZE(hdmi_rx_voice_mixer_controls)),
19803 SND_SOC_DAPM_MIXER("MI2S_RX_Voice Mixer",
19804 SND_SOC_NOPM, 0, 0,
19805 mi2s_rx_voice_mixer_controls,
19806 ARRAY_SIZE(mi2s_rx_voice_mixer_controls)),
19807 SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer",
19808 SND_SOC_NOPM, 0, 0,
19809 pri_mi2s_rx_voice_mixer_controls,
19810 ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)),
19811 SND_SOC_DAPM_MIXER("INT0_MI2S_RX_Voice Mixer",
19812 SND_SOC_NOPM, 0, 0,
19813 int0_mi2s_rx_voice_mixer_controls,
19814 ARRAY_SIZE(int0_mi2s_rx_voice_mixer_controls)),
19815 SND_SOC_DAPM_MIXER("INT4_MI2S_RX_Voice Mixer",
19816 SND_SOC_NOPM, 0, 0,
19817 int4_mi2s_rx_voice_mixer_controls,
19818 ARRAY_SIZE(int4_mi2s_rx_voice_mixer_controls)),
19819 SND_SOC_DAPM_MIXER("TERT_MI2S_RX_Voice Mixer",
19820 SND_SOC_NOPM, 0, 0,
19821 tert_mi2s_rx_voice_mixer_controls,
19822 ARRAY_SIZE(tert_mi2s_rx_voice_mixer_controls)),
19823 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX_Voice Mixer",
19824 SND_SOC_NOPM, 0, 0,
19825 quat_mi2s_rx_voice_mixer_controls,
19826 ARRAY_SIZE(quat_mi2s_rx_voice_mixer_controls)),
19827 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX_Voice Mixer",
19828 SND_SOC_NOPM, 0, 0,
19829 quin_mi2s_rx_voice_mixer_controls,
19830 ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)),
19831 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer",
19832 SND_SOC_NOPM, 0, 0,
19833 quat_tdm_rx_2_voice_mixer_controls,
19834 ARRAY_SIZE(quat_tdm_rx_2_voice_mixer_controls)),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053019835 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0_Voice Mixer",
19836 SND_SOC_NOPM, 0, 0,
19837 wsa_cdc_dma_rx_0_voice_mixer_controls,
19838 ARRAY_SIZE(wsa_cdc_dma_rx_0_voice_mixer_controls)),
19839 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0_Voice Mixer",
19840 SND_SOC_NOPM, 0, 0,
19841 rx_cdc_dma_rx_0_voice_mixer_controls,
19842 ARRAY_SIZE(rx_cdc_dma_rx_0_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019843 SND_SOC_DAPM_MIXER("Voip_Tx Mixer",
19844 SND_SOC_NOPM, 0, 0, tx_voip_mixer_controls,
19845 ARRAY_SIZE(tx_voip_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019846 SND_SOC_DAPM_MIXER("VoiceMMode1_Tx Mixer",
19847 SND_SOC_NOPM, 0, 0, tx_voicemmode1_mixer_controls,
19848 ARRAY_SIZE(tx_voicemmode1_mixer_controls)),
19849 SND_SOC_DAPM_MIXER("VoiceMMode2_Tx Mixer",
19850 SND_SOC_NOPM, 0, 0, tx_voicemmode2_mixer_controls,
19851 ARRAY_SIZE(tx_voicemmode2_mixer_controls)),
19852 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19853 int_bt_sco_rx_mixer_controls, ARRAY_SIZE(int_bt_sco_rx_mixer_controls)),
19854 SND_SOC_DAPM_MIXER("INTERNAL_A2DP_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19855 int_bt_a2dp_rx_mixer_controls,
19856 ARRAY_SIZE(int_bt_a2dp_rx_mixer_controls)),
19857 SND_SOC_DAPM_MIXER("INTERNAL_FM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19858 int_fm_rx_mixer_controls, ARRAY_SIZE(int_fm_rx_mixer_controls)),
19859 SND_SOC_DAPM_MIXER("AFE_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19860 afe_pcm_rx_mixer_controls, ARRAY_SIZE(afe_pcm_rx_mixer_controls)),
19861 SND_SOC_DAPM_MIXER("Voice Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19862 tx_voice_stub_mixer_controls, ARRAY_SIZE(tx_voice_stub_mixer_controls)),
19863 SND_SOC_DAPM_MIXER("Voice2 Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19864 tx_voice2_stub_mixer_controls,
19865 ARRAY_SIZE(tx_voice2_stub_mixer_controls)),
19866 SND_SOC_DAPM_MIXER("VoLTE Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19867 tx_volte_stub_mixer_controls, ARRAY_SIZE(tx_volte_stub_mixer_controls)),
19868 SND_SOC_DAPM_MIXER("STUB_RX Mixer", SND_SOC_NOPM, 0, 0,
19869 stub_rx_mixer_controls, ARRAY_SIZE(stub_rx_mixer_controls)),
19870 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Mixer", SND_SOC_NOPM, 0, 0,
19871 slimbus_1_rx_mixer_controls, ARRAY_SIZE(slimbus_1_rx_mixer_controls)),
19872 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19873 slimbus_3_rx_mixer_controls, ARRAY_SIZE(slimbus_3_rx_mixer_controls)),
19874 SND_SOC_DAPM_MIXER("SLIM_6_RX_Voice Mixer",
19875 SND_SOC_NOPM, 0, 0,
19876 slimbus_6_rx_voice_mixer_controls,
19877 ARRAY_SIZE(slimbus_6_rx_voice_mixer_controls)),
19878 SND_SOC_DAPM_MIXER("SLIM_7_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19879 slimbus_7_rx_voice_mixer_controls,
19880 ARRAY_SIZE(slimbus_7_rx_voice_mixer_controls)),
19881 SND_SOC_DAPM_MIXER("SLIM_8_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19882 slimbus_8_rx_voice_mixer_controls,
19883 ARRAY_SIZE(slimbus_8_rx_voice_mixer_controls)),
19884 /* port mixer */
19885 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Port Mixer",
19886 SND_SOC_NOPM, 0, 0, sbus_0_rx_port_mixer_controls,
19887 ARRAY_SIZE(sbus_0_rx_port_mixer_controls)),
19888 SND_SOC_DAPM_MIXER("AUX_PCM_RX Port Mixer",
19889 SND_SOC_NOPM, 0, 0, aux_pcm_rx_port_mixer_controls,
19890 ARRAY_SIZE(aux_pcm_rx_port_mixer_controls)),
19891 SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
19892 SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
19893 ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
19894 SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
19895 SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
19896 ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
19897 SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
19898 SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
19899 ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019900 SND_SOC_DAPM_MIXER("QUIN_AUXPCM_RX Port Mixer",
19901 SND_SOC_NOPM, 0, 0, quin_auxpcm_rx_port_mixer_controls,
19902 ARRAY_SIZE(quin_auxpcm_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019903 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19904 sbus_1_rx_port_mixer_controls,
19905 ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
19906 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19907 bt_sco_rx_port_mixer_controls,
19908 ARRAY_SIZE(bt_sco_rx_port_mixer_controls)),
19909 SND_SOC_DAPM_MIXER("AFE_PCM_RX Port Mixer",
19910 SND_SOC_NOPM, 0, 0, afe_pcm_rx_port_mixer_controls,
19911 ARRAY_SIZE(afe_pcm_rx_port_mixer_controls)),
19912 SND_SOC_DAPM_MIXER("HDMI_RX Port Mixer",
19913 SND_SOC_NOPM, 0, 0, hdmi_rx_port_mixer_controls,
19914 ARRAY_SIZE(hdmi_rx_port_mixer_controls)),
19915 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
19916 SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
19917 ARRAY_SIZE(display_port_rx_port_mixer_controls)),
Karthikeyan Manifbea92f2018-06-14 16:38:15 -070019918 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1 Port Mixer",
Karthikeyan Mani57550082018-05-03 18:43:58 -070019919 SND_SOC_NOPM, 0, 0, display_port_rx1_port_mixer_controls,
19920 ARRAY_SIZE(display_port_rx1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019921 SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
19922 SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
19923 ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
19924 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX Port Mixer",
19925 SND_SOC_NOPM, 0, 0, sbus_3_rx_port_mixer_controls,
19926 ARRAY_SIZE(sbus_3_rx_port_mixer_controls)),
19927 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Port Mixer",
19928 SND_SOC_NOPM, 0, 0, sbus_6_rx_port_mixer_controls,
19929 ARRAY_SIZE(sbus_6_rx_port_mixer_controls)),
19930 SND_SOC_DAPM_MIXER("MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19931 mi2s_rx_port_mixer_controls, ARRAY_SIZE(mi2s_rx_port_mixer_controls)),
19932 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19933 primary_mi2s_rx_port_mixer_controls,
19934 ARRAY_SIZE(primary_mi2s_rx_port_mixer_controls)),
19935 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19936 sec_mi2s_rx_port_mixer_controls,
19937 ARRAY_SIZE(sec_mi2s_rx_port_mixer_controls)),
19938 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19939 tert_mi2s_rx_port_mixer_controls,
19940 ARRAY_SIZE(tert_mi2s_rx_port_mixer_controls)),
19941 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19942 quat_mi2s_rx_port_mixer_controls,
19943 ARRAY_SIZE(quat_mi2s_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019944 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19945 quin_mi2s_rx_port_mixer_controls,
19946 ARRAY_SIZE(quin_mi2s_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019947 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19948 pri_tdm_rx_0_port_mixer_controls,
19949 ARRAY_SIZE(pri_tdm_rx_0_port_mixer_controls)),
19950 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19951 pri_tdm_rx_1_port_mixer_controls,
19952 ARRAY_SIZE(pri_tdm_rx_1_port_mixer_controls)),
19953 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19954 pri_tdm_rx_2_port_mixer_controls,
19955 ARRAY_SIZE(pri_tdm_rx_2_port_mixer_controls)),
19956 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19957 pri_tdm_rx_3_port_mixer_controls,
19958 ARRAY_SIZE(pri_tdm_rx_3_port_mixer_controls)),
19959 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19960 sec_tdm_rx_0_port_mixer_controls,
19961 ARRAY_SIZE(sec_tdm_rx_0_port_mixer_controls)),
19962 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19963 sec_tdm_rx_1_port_mixer_controls,
19964 ARRAY_SIZE(sec_tdm_rx_1_port_mixer_controls)),
19965 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19966 sec_tdm_rx_2_port_mixer_controls,
19967 ARRAY_SIZE(sec_tdm_rx_2_port_mixer_controls)),
19968 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19969 sec_tdm_rx_3_port_mixer_controls,
19970 ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
Derek Chenfdcc0982018-10-02 15:14:03 -070019971 SND_SOC_DAPM_MIXER("SEC_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
19972 sec_tdm_rx_7_port_mixer_controls,
19973 ARRAY_SIZE(sec_tdm_rx_7_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019974 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19975 tert_tdm_rx_0_port_mixer_controls,
19976 ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
19977 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19978 tert_tdm_rx_1_port_mixer_controls,
19979 ARRAY_SIZE(tert_tdm_rx_1_port_mixer_controls)),
19980 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19981 tert_tdm_rx_2_port_mixer_controls,
19982 ARRAY_SIZE(tert_tdm_rx_2_port_mixer_controls)),
19983 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19984 tert_tdm_rx_3_port_mixer_controls,
19985 ARRAY_SIZE(tert_tdm_rx_3_port_mixer_controls)),
19986 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19987 quat_tdm_rx_0_port_mixer_controls,
19988 ARRAY_SIZE(quat_tdm_rx_0_port_mixer_controls)),
19989 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19990 quat_tdm_rx_1_port_mixer_controls,
19991 ARRAY_SIZE(quat_tdm_rx_1_port_mixer_controls)),
19992 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19993 quat_tdm_rx_2_port_mixer_controls,
19994 ARRAY_SIZE(quat_tdm_rx_2_port_mixer_controls)),
19995 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19996 quat_tdm_rx_3_port_mixer_controls,
19997 ARRAY_SIZE(quat_tdm_rx_3_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019998 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19999 quin_tdm_rx_0_port_mixer_controls,
20000 ARRAY_SIZE(quin_tdm_rx_0_port_mixer_controls)),
20001 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
20002 quin_tdm_rx_1_port_mixer_controls,
20003 ARRAY_SIZE(quin_tdm_rx_1_port_mixer_controls)),
20004 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
20005 quin_tdm_rx_2_port_mixer_controls,
20006 ARRAY_SIZE(quin_tdm_rx_2_port_mixer_controls)),
20007 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
20008 quin_tdm_rx_3_port_mixer_controls,
20009 ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020010 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
20011 int0_mi2s_rx_port_mixer_controls,
20012 ARRAY_SIZE(int0_mi2s_rx_port_mixer_controls)),
20013 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
20014 int4_mi2s_rx_port_mixer_controls,
20015 ARRAY_SIZE(int4_mi2s_rx_port_mixer_controls)),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053020016 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
20017 wsa_cdc_dma_rx_0_port_mixer_controls,
20018 ARRAY_SIZE(wsa_cdc_dma_rx_0_port_mixer_controls)),
20019 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
20020 rx_cdc_dma_rx_0_port_mixer_controls,
20021 ARRAY_SIZE(rx_cdc_dma_rx_0_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020022 SND_SOC_DAPM_MIXER("QCHAT_Tx Mixer",
20023 SND_SOC_NOPM, 0, 0, tx_qchat_mixer_controls,
20024 ARRAY_SIZE(tx_qchat_mixer_controls)),
20025 SND_SOC_DAPM_MIXER("USB_AUDIO_RX_Voice Mixer",
20026 SND_SOC_NOPM, 0, 0, usb_audio_rx_voice_mixer_controls,
20027 ARRAY_SIZE(usb_audio_rx_voice_mixer_controls)),
20028 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
20029 SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
20030 ARRAY_SIZE(usb_rx_port_mixer_controls)),
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080020031 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
20032 SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
20033 ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070020034 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1_Voice Mixer",
20035 SND_SOC_NOPM, 0, 0, display_port_rx1_voice_mixer_controls,
20036 ARRAY_SIZE(display_port_rx1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020037 /* lsm mixer definitions */
20038 SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
20039 lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
20040 SND_SOC_DAPM_MIXER("LSM2 Mixer", SND_SOC_NOPM, 0, 0,
20041 lsm2_mixer_controls, ARRAY_SIZE(lsm2_mixer_controls)),
20042 SND_SOC_DAPM_MIXER("LSM3 Mixer", SND_SOC_NOPM, 0, 0,
20043 lsm3_mixer_controls, ARRAY_SIZE(lsm3_mixer_controls)),
20044 SND_SOC_DAPM_MIXER("LSM4 Mixer", SND_SOC_NOPM, 0, 0,
20045 lsm4_mixer_controls, ARRAY_SIZE(lsm4_mixer_controls)),
20046 SND_SOC_DAPM_MIXER("LSM5 Mixer", SND_SOC_NOPM, 0, 0,
20047 lsm5_mixer_controls, ARRAY_SIZE(lsm5_mixer_controls)),
20048 SND_SOC_DAPM_MIXER("LSM6 Mixer", SND_SOC_NOPM, 0, 0,
20049 lsm6_mixer_controls, ARRAY_SIZE(lsm6_mixer_controls)),
20050 SND_SOC_DAPM_MIXER("LSM7 Mixer", SND_SOC_NOPM, 0, 0,
20051 lsm7_mixer_controls, ARRAY_SIZE(lsm7_mixer_controls)),
20052 SND_SOC_DAPM_MIXER("LSM8 Mixer", SND_SOC_NOPM, 0, 0,
20053 lsm8_mixer_controls, ARRAY_SIZE(lsm8_mixer_controls)),
20054 /* Virtual Pins to force backends ON atm */
20055 SND_SOC_DAPM_OUTPUT("BE_OUT"),
20056 SND_SOC_DAPM_INPUT("BE_IN"),
20057
20058 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
20059 &slim0_rx_vi_fb_lch_mux),
20060 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
20061 &slim0_rx_vi_fb_rch_mux),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020062 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
20063 &wsa_rx_0_vi_fb_lch_mux),
20064 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
20065 &wsa_rx_0_vi_fb_rch_mux),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020066 SND_SOC_DAPM_MUX("PRI_MI2S_RX_VI_FB_MUX", SND_SOC_NOPM, 0, 0,
20067 &mi2s_rx_vi_fb_mux),
20068 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_MONO_CH_MUX", SND_SOC_NOPM, 0, 0,
20069 &int4_mi2s_rx_vi_fb_mono_ch_mux),
20070 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", SND_SOC_NOPM, 0, 0,
20071 &int4_mi2s_rx_vi_fb_stereo_ch_mux),
20072
20073 SND_SOC_DAPM_MUX("VOC_EXT_EC MUX", SND_SOC_NOPM, 0, 0,
20074 &voc_ext_ec_mux),
20075 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL1 MUX", SND_SOC_NOPM, 0, 0,
20076 &ext_ec_ref_mux_ul1),
20077 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL2 MUX", SND_SOC_NOPM, 0, 0,
20078 &ext_ec_ref_mux_ul2),
20079 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL3 MUX", SND_SOC_NOPM, 0, 0,
20080 &ext_ec_ref_mux_ul3),
20081 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL4 MUX", SND_SOC_NOPM, 0, 0,
20082 &ext_ec_ref_mux_ul4),
20083 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL5 MUX", SND_SOC_NOPM, 0, 0,
20084 &ext_ec_ref_mux_ul5),
20085 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL6 MUX", SND_SOC_NOPM, 0, 0,
20086 &ext_ec_ref_mux_ul6),
20087 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL8 MUX", SND_SOC_NOPM, 0, 0,
20088 &ext_ec_ref_mux_ul8),
20089 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL9 MUX", SND_SOC_NOPM, 0, 0,
20090 &ext_ec_ref_mux_ul9),
Laxminath Kasam38070be2017-08-17 18:21:59 +053020091 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL10 MUX", SND_SOC_NOPM, 0, 0,
20092 &ext_ec_ref_mux_ul10),
Asish Bhattacharya34504582017-08-08 12:55:01 +053020093 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL16 MUX", SND_SOC_NOPM, 0, 0,
20094 &ext_ec_ref_mux_ul16),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020095 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL17 MUX", SND_SOC_NOPM, 0, 0,
20096 &ext_ec_ref_mux_ul17),
20097 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL18 MUX", SND_SOC_NOPM, 0, 0,
20098 &ext_ec_ref_mux_ul18),
20099 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL19 MUX", SND_SOC_NOPM, 0, 0,
20100 &ext_ec_ref_mux_ul19),
Meng Wang5c4bab72018-04-25 10:40:01 +080020101 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL28 MUX", SND_SOC_NOPM, 0, 0,
20102 &ext_ec_ref_mux_ul28),
20103 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL29 MUX", SND_SOC_NOPM, 0, 0,
20104 &ext_ec_ref_mux_ul29),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020105};
20106
20107static const struct snd_soc_dapm_route intercon[] = {
20108 {"PRI_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20109 {"PRI_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20110 {"PRI_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20111 {"PRI_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20112 {"PRI_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20113 {"PRI_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20114 {"PRI_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20115 {"PRI_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20116 {"PRI_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20117 {"PRI_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20118 {"PRI_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20119 {"PRI_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20120 {"PRI_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20121 {"PRI_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20122 {"PRI_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20123 {"PRI_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020124 {"PRI_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020125 {"PRI_I2S_RX", NULL, "PRI_RX Audio Mixer"},
20126
20127 {"SEC_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20128 {"SEC_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20129 {"SEC_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20130 {"SEC_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20131 {"SEC_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20132 {"SEC_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20133 {"SEC_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20134 {"SEC_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20135 {"SEC_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20136 {"SEC_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20137 {"SEC_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20138 {"SEC_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20139 {"SEC_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20140 {"SEC_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20141 {"SEC_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20142 {"SEC_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020143 {"SEC_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020144 {"SEC_I2S_RX", NULL, "SEC_RX Audio Mixer"},
20145
20146 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20147 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20148 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20149 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20150 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20151 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20152 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20153 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20154 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20155 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20156 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20157 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20158 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20159 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20160 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20161 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020162 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020163 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Audio Mixer"},
20164
20165 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20166 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20167 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20168 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20169 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20170 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20171 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20172 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20173 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20174 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20175 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20176 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20177 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20178 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20179 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20180 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020181 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020182 {"SLIMBUS_2_RX", NULL, "SLIMBUS_2_RX Audio Mixer"},
20183
20184 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20185 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20186 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20187 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20188 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20189 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20190 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20191 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20192 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20193 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20194 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20195 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20196 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20197 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20198 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20199 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020200 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020201 {"SLIMBUS_5_RX", NULL, "SLIMBUS_5_RX Audio Mixer"},
20202
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020203 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20204 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20205 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20206 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20207 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20208 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20209 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20210 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20211 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20212 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20213 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20214 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20215 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20216 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20217 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20218 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020219 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020220 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Audio Mixer"},
20221
20222 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20223 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20224 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20225 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20226 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20227 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20228 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20229 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20230 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20231 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20232 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20233 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20234 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20235 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20236 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20237 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020238 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020239 {"WSA_CDC_DMA_RX_1", NULL, "WSA_CDC_DMA_RX_1 Audio Mixer"},
20240
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020241 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20242 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20243 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20244 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20245 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20246 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20247 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20248 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20249 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20250 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20251 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20252 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20253 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20254 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20255 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20256 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020257 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020258 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Audio Mixer"},
20259
20260 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20261 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20262 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20263 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20264 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20265 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20266 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20267 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20268 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20269 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20270 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20271 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20272 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20273 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20274 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20275 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020276 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020277 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Audio Mixer"},
20278
20279 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20280 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20281 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20282 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20283 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20284 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20285 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20286 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20287 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20288 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20289 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20290 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20291 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20292 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20293 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20294 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020295 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020296 {"RX_CDC_DMA_RX_2", NULL, "RX_CDC_DMA_RX_2 Audio Mixer"},
20297
20298 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20299 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20300 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20301 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20302 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20303 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20304 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20305 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20306 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20307 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20308 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20309 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20310 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20311 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20312 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20313 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020314 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020315 {"RX_CDC_DMA_RX_3", NULL, "RX_CDC_DMA_RX_3 Audio Mixer"},
20316
20317 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
20318 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
20319 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
20320 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
20321 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
20322 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
20323 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
20324 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
20325 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
20326 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
20327 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
20328 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
20329 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
20330 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
20331 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
20332 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020333 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020334 {"RX_CDC_DMA_RX_4", NULL, "RX_CDC_DMA_RX_4 Audio Mixer"},
20335
20336 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia1", "MM_DL1"},
20337 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia2", "MM_DL2"},
20338 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia3", "MM_DL3"},
20339 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia4", "MM_DL4"},
20340 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia5", "MM_DL5"},
20341 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia6", "MM_DL6"},
20342 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia7", "MM_DL7"},
20343 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia8", "MM_DL8"},
20344 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia9", "MM_DL9"},
20345 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia10", "MM_DL10"},
20346 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia11", "MM_DL11"},
20347 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia12", "MM_DL12"},
20348 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia13", "MM_DL13"},
20349 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia14", "MM_DL14"},
20350 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia15", "MM_DL15"},
20351 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020352 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020353 {"RX_CDC_DMA_RX_5", NULL, "RX_CDC_DMA_RX_5 Audio Mixer"},
20354
20355 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia1", "MM_DL1"},
20356 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia2", "MM_DL2"},
20357 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia3", "MM_DL3"},
20358 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia4", "MM_DL4"},
20359 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia5", "MM_DL5"},
20360 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia6", "MM_DL6"},
20361 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia7", "MM_DL7"},
20362 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia8", "MM_DL8"},
20363 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia9", "MM_DL9"},
20364 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia10", "MM_DL10"},
20365 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia11", "MM_DL11"},
20366 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia12", "MM_DL12"},
20367 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia13", "MM_DL13"},
20368 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia14", "MM_DL14"},
20369 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia15", "MM_DL15"},
20370 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020371 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020372 {"RX_CDC_DMA_RX_6", NULL, "RX_CDC_DMA_RX_6 Audio Mixer"},
20373
20374 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia1", "MM_DL1"},
20375 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia2", "MM_DL2"},
20376 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia3", "MM_DL3"},
20377 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia4", "MM_DL4"},
20378 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia5", "MM_DL5"},
20379 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia6", "MM_DL6"},
20380 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia7", "MM_DL7"},
20381 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia8", "MM_DL8"},
20382 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia9", "MM_DL9"},
20383 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia10", "MM_DL10"},
20384 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia11", "MM_DL11"},
20385 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia12", "MM_DL12"},
20386 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia13", "MM_DL13"},
20387 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia14", "MM_DL14"},
20388 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia15", "MM_DL15"},
20389 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020390 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020391 {"RX_CDC_DMA_RX_7", NULL, "RX_CDC_DMA_RX_7 Audio Mixer"},
20392
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020393 {"HDMI Mixer", "MultiMedia1", "MM_DL1"},
20394 {"HDMI Mixer", "MultiMedia2", "MM_DL2"},
20395 {"HDMI Mixer", "MultiMedia3", "MM_DL3"},
20396 {"HDMI Mixer", "MultiMedia4", "MM_DL4"},
20397 {"HDMI Mixer", "MultiMedia5", "MM_DL5"},
20398 {"HDMI Mixer", "MultiMedia6", "MM_DL6"},
20399 {"HDMI Mixer", "MultiMedia7", "MM_DL7"},
20400 {"HDMI Mixer", "MultiMedia8", "MM_DL8"},
20401 {"HDMI Mixer", "MultiMedia9", "MM_DL9"},
20402 {"HDMI Mixer", "MultiMedia10", "MM_DL10"},
20403 {"HDMI Mixer", "MultiMedia11", "MM_DL11"},
20404 {"HDMI Mixer", "MultiMedia12", "MM_DL12"},
20405 {"HDMI Mixer", "MultiMedia13", "MM_DL13"},
20406 {"HDMI Mixer", "MultiMedia14", "MM_DL14"},
20407 {"HDMI Mixer", "MultiMedia15", "MM_DL15"},
20408 {"HDMI Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020409 {"HDMI Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020410 {"HDMI", NULL, "HDMI Mixer"},
20411
20412 {"DISPLAY_PORT Mixer", "MultiMedia1", "MM_DL1"},
20413 {"DISPLAY_PORT Mixer", "MultiMedia2", "MM_DL2"},
20414 {"DISPLAY_PORT Mixer", "MultiMedia3", "MM_DL3"},
20415 {"DISPLAY_PORT Mixer", "MultiMedia4", "MM_DL4"},
20416 {"DISPLAY_PORT Mixer", "MultiMedia5", "MM_DL5"},
20417 {"DISPLAY_PORT Mixer", "MultiMedia6", "MM_DL6"},
20418 {"DISPLAY_PORT Mixer", "MultiMedia7", "MM_DL7"},
20419 {"DISPLAY_PORT Mixer", "MultiMedia8", "MM_DL8"},
20420 {"DISPLAY_PORT Mixer", "MultiMedia9", "MM_DL9"},
20421 {"DISPLAY_PORT Mixer", "MultiMedia10", "MM_DL10"},
20422 {"DISPLAY_PORT Mixer", "MultiMedia11", "MM_DL11"},
20423 {"DISPLAY_PORT Mixer", "MultiMedia12", "MM_DL12"},
20424 {"DISPLAY_PORT Mixer", "MultiMedia13", "MM_DL13"},
20425 {"DISPLAY_PORT Mixer", "MultiMedia14", "MM_DL14"},
20426 {"DISPLAY_PORT Mixer", "MultiMedia15", "MM_DL15"},
20427 {"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020428 {"DISPLAY_PORT Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020429 {"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
20430
Karthikeyan Mani57550082018-05-03 18:43:58 -070020431 {"DISPLAY_PORT1 Mixer", "MultiMedia1", "MM_DL1"},
20432 {"DISPLAY_PORT1 Mixer", "MultiMedia2", "MM_DL2"},
20433 {"DISPLAY_PORT1 Mixer", "MultiMedia3", "MM_DL3"},
20434 {"DISPLAY_PORT1 Mixer", "MultiMedia4", "MM_DL4"},
20435 {"DISPLAY_PORT1 Mixer", "MultiMedia5", "MM_DL5"},
20436 {"DISPLAY_PORT1 Mixer", "MultiMedia6", "MM_DL6"},
20437 {"DISPLAY_PORT1 Mixer", "MultiMedia7", "MM_DL7"},
20438 {"DISPLAY_PORT1 Mixer", "MultiMedia8", "MM_DL8"},
20439 {"DISPLAY_PORT1 Mixer", "MultiMedia9", "MM_DL9"},
20440 {"DISPLAY_PORT1 Mixer", "MultiMedia10", "MM_DL10"},
20441 {"DISPLAY_PORT1 Mixer", "MultiMedia11", "MM_DL11"},
20442 {"DISPLAY_PORT1 Mixer", "MultiMedia12", "MM_DL12"},
20443 {"DISPLAY_PORT1 Mixer", "MultiMedia13", "MM_DL13"},
20444 {"DISPLAY_PORT1 Mixer", "MultiMedia14", "MM_DL14"},
20445 {"DISPLAY_PORT1 Mixer", "MultiMedia15", "MM_DL15"},
20446 {"DISPLAY_PORT1 Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020447 {"DISPLAY_PORT1 Mixer", "MultiMedia26", "MM_DL26"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070020448 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT1 Mixer"},
20449
Ralf Herzc8701f72018-06-20 11:37:35 +020020450 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20451 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20452 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20453 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20454 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20455 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20456 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20457 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20458 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20459 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20460 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20461 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20462 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20463 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20464 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20465 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020466 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020467 {"PRI_SPDIF_RX", NULL, "PRI_SPDIF_RX Audio Mixer"},
20468
20469 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20470 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20471 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20472 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20473 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20474 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20475 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20476 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20477 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20478 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20479 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20480 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20481 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20482 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20483 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20484 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020485 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020486 {"SEC_SPDIF_RX", NULL, "SEC_SPDIF_RX Audio Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020487
20488 /* incall */
20489 {"Incall_Music Audio Mixer", "MultiMedia1", "MM_DL1"},
20490 {"Incall_Music Audio Mixer", "MultiMedia2", "MM_DL2"},
20491 {"Incall_Music Audio Mixer", "MultiMedia5", "MM_DL5"},
20492 {"Incall_Music Audio Mixer", "MultiMedia9", "MM_DL9"},
20493 {"VOICE_PLAYBACK_TX", NULL, "Incall_Music Audio Mixer"},
20494 {"Incall_Music_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20495 {"Incall_Music_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20496 {"Incall_Music_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20497 {"Incall_Music_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20498 {"VOICE2_PLAYBACK_TX", NULL, "Incall_Music_2 Audio Mixer"},
20499 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20500 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20501 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20502 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20503 {"SLIMBUS_4_RX", NULL, "SLIMBUS_4_RX Audio Mixer"},
20504
20505 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20506 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20507 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20508 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20509 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20510 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20511 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20512 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20513 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20514 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20515 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20516 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20517 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20518 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20519 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20520 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020521 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020522 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Audio Mixer"},
20523
20524 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20525 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20526 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20527 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20528 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20529 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20530 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20531 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20532 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20533 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20534 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20535 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20536 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20537 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20538 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20539 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020540 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020541 {"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
20542
Surendar Karka3ef3d812018-09-28 18:52:35 +053020543 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20544 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20545 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20546 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20547 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20548 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20549 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20550 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20551 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20552 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20553 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20554 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20555 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20556 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20557 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20558 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20559 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
20560 {"SLIMBUS_9_RX", NULL, "SLIMBUS_9_RX Audio Mixer"},
20561
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020562 {"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20563 {"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20564 {"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20565 {"USB_AUDIO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20566 {"USB_AUDIO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20567 {"USB_AUDIO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20568 {"USB_AUDIO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20569 {"USB_AUDIO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20570 {"USB_AUDIO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20571 {"USB_AUDIO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20572 {"USB_AUDIO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20573 {"USB_AUDIO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20574 {"USB_AUDIO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20575 {"USB_AUDIO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20576 {"USB_AUDIO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20577 {"USB_AUDIO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020578 {"USB_AUDIO_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020579 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Audio Mixer"},
20580
20581 {"MultiMedia1 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
20582 {"MultiMedia4 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
20583 {"MultiMedia8 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
20584 {"MultiMedia1 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
20585 {"MultiMedia4 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
20586 {"MultiMedia8 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
20587 {"MultiMedia1 Mixer", "SLIM_4_TX", "SLIMBUS_4_TX"},
20588 {"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20589 {"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
20590 {"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020591 {"MultiMedia1 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020592 {"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20593 {"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020594 {"MultiMedia8 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020595 {"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020596 {"MultiMedia4 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020597 {"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020598 {"MultiMedia17 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020599 {"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020600 {"MultiMedia18 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020601 {"MultiMedia19 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020602 {"MultiMedia19 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020603 {"MultiMedia28 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020604 {"MultiMedia28 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020605 {"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020606 {"MultiMedia29 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020607 {"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020608 {"MultiMedia8 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020609 {"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20610 {"MultiMedia4 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20611 {"MultiMedia17 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20612 {"MultiMedia18 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20613 {"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020614 {"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20615 {"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020616 {"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020617 {"MultiMedia18 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010020618 {"MultiMedia19 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20619 {"MultiMedia28 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20620 {"MultiMedia29 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020621 {"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20622 {"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20623 {"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20624 {"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20625 {"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20626 {"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020627 {"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020628 {"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20629 {"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20630 {"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020631 {"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20632 {"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020633 {"MultiMedia3 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020634 {"MultiMedia5 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020635 {"MultiMedia5 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020636 {"MultiMedia10 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020637 {"MultiMedia10 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020638 {"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020639 {"MultiMedia16 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020640 {"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
20641 {"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020642 {"MultiMedia5 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020643 {"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020644 {"MultiMedia10 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020645 {"MultiMedia18 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010020646 {"MultiMedia19 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20647 {"MultiMedia28 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20648 {"MultiMedia29 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020649 {"MultiMedia18 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010020650 {"MultiMedia19 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
20651 {"MultiMedia28 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
20652 {"MultiMedia29 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020653
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020654 {"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20655 {"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20656 {"MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20657 {"MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20658 {"MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20659 {"MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20660 {"MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20661 {"MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20662 {"MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20663 {"MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20664 {"MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20665 {"MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20666 {"MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20667 {"MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20668 {"MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20669 {"MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020670 {"MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020671 {"MI2S_RX", NULL, "MI2S_RX Audio Mixer"},
20672
20673 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20674 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20675 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20676 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20677 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20678 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20679 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20680 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20681 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20682 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20683 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20684 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20685 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20686 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20687 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020688 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020689 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Audio Mixer"},
20690
20691 {"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20692 {"TERT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20693 {"TERT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20694 {"TERT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20695 {"TERT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20696 {"TERT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20697 {"TERT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20698 {"TERT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20699 {"TERT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20700 {"TERT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20701 {"TERT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20702 {"TERT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20703 {"TERT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20704 {"TERT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020705 {"TERT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020706 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Audio Mixer"},
20707
20708 {"SEC_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20709 {"SEC_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20710 {"SEC_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20711 {"SEC_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20712 {"SEC_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20713 {"SEC_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20714 {"SEC_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20715 {"SEC_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20716 {"SEC_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20717 {"SEC_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20718 {"SEC_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20719 {"SEC_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20720 {"SEC_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20721 {"SEC_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020722 {"SEC_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020723 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Audio Mixer"},
20724
20725 {"SEC_MI2S_RX_SD1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20726 {"SEC_MI2S_RX_SD1", NULL, "SEC_MI2S_RX_SD1 Audio Mixer"},
20727
20728 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20729 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20730
20731 {"PRI_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20732 {"PRI_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20733 {"PRI_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20734 {"PRI_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20735 {"PRI_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20736 {"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20737 {"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20738 {"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20739 {"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20740 {"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20741 {"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20742 {"PRI_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20743 {"PRI_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20744 {"PRI_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20745 {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020746 {"PRI_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020747 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
20748
20749 {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20750 {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20751 {"INT0_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20752 {"INT0_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20753 {"INT0_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20754 {"INT0_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20755 {"INT0_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20756 {"INT0_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20757 {"INT0_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20758 {"INT0_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20759 {"INT0_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20760 {"INT0_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20761 {"INT0_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20762 {"INT0_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20763 {"INT0_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20764 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Audio Mixer"},
20765
20766 {"INT4_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20767 {"INT4_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20768 {"INT4_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20769 {"INT4_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20770 {"INT4_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20771 {"INT4_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20772 {"INT4_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20773 {"INT4_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20774 {"INT4_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20775 {"INT4_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20776 {"INT4_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20777 {"INT4_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20778 {"INT4_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20779 {"INT4_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20780 {"INT4_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20781 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Audio Mixer"},
20782
20783 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20784 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20785 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20786 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20787 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20788 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20789 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20790 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20791 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20792 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20793 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20794 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20795 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20796 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20797 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20798 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20799 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20800 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Audio Mixer"},
20801
20802 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20803 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20804 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20805 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20806 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20807 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20808 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20809 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20810 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20811 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20812 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20813 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20814 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20815 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20816 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20817 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020818 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020819 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Audio Mixer"},
20820
20821 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20822 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20823 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20824 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20825 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20826 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20827 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20828 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20829 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20830 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20831 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20832 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20833 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20834 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20835 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20836 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020837 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020838 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Audio Mixer"},
20839
20840 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20841 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20842 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20843 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20844 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20845 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20846 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20847 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20848 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20849 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20850 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20851 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20852 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20853 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20854 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20855 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020856 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020857 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Audio Mixer"},
20858
20859 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20860 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20861 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20862 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20863 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20864 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20865 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20866 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20867 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20868 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20869 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20870 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20871 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20872 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20873 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20874 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020875 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020876 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Audio Mixer"},
20877
20878 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20879 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20880 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20881 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20882 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20883 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20884 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20885 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20886 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20887 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20888 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20889 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20890 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20891 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20892 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20893 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20894 {"PRI_TDM_TX_0", NULL, "PRI_TDM_TX_0 Audio Mixer"},
20895
20896 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20897 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20898 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20899 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20900 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20901 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20902 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20903 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20904 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20905 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20906 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20907 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20908 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20909 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20910 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20911 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020912 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020913 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Audio Mixer"},
20914
20915 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20916 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20917 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20918 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20919 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20920 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20921 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20922 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20923 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20924 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20925 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20926 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20927 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20928 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20929 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20930 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020931 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020932 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Audio Mixer"},
20933
20934 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20935 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20936 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20937 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20938 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20939 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20940 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20941 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20942 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20943 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20944 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20945 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20946 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20947 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20948 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20949 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020950 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020951 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Audio Mixer"},
20952
20953 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20954 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20955 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20956 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20957 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20958 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20959 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20960 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20961 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20962 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20963 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20964 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20965 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20966 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20967 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20968 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020969 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020970 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Audio Mixer"},
20971
20972 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20973 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20974 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20975 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20976 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20977 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20978 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20979 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20980 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20981 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20982 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20983 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20984 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20985 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20986 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20987 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20988 {"SEC_TDM_TX_0", NULL, "SEC_TDM_TX_0 Audio Mixer"},
20989
20990 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20991 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20992 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20993 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20994 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20995 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20996 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20997 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20998 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20999 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21000 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21001 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21002 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21003 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21004 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21005 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021006 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021007 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Audio Mixer"},
21008
21009 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21010 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21011 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21012 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21013 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21014 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21015 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21016 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21017 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21018 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21019 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21020 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21021 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21022 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21023 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21024 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
21025 {"TERT_TDM_TX_0", NULL, "TERT_TDM_TX_0 Audio Mixer"},
21026
21027 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
21028 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
21029 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
21030 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
21031 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
21032 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
21033 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
21034 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
21035 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
21036 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
21037 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
21038 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
21039 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
21040 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
21041 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
21042 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021043 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021044 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Audio Mixer"},
21045
21046 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
21047 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
21048 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
21049 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
21050 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
21051 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
21052 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
21053 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
21054 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
21055 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
21056 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
21057 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
21058 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
21059 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
21060 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
21061 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021062 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021063 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Audio Mixer"},
21064
21065 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
21066 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
21067 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
21068 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
21069 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
21070 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
21071 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
21072 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
21073 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
21074 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
21075 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
21076 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
21077 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
21078 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
21079 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
21080 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021081 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021082 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Audio Mixer"},
21083
21084 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
21085 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
21086 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
21087 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
21088 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
21089 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
21090 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
21091 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
21092 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
21093 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
21094 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
21095 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
21096 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
21097 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
21098 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
21099 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021100 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021101 {"TERT_TDM_RX_4", NULL, "TERT_TDM_RX_4 Audio Mixer"},
21102
21103 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21104 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21105 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21106 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21107 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21108 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21109 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21110 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21111 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21112 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21113 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21114 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21115 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21116 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21117 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21118 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
21119 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021120 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021121 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Audio Mixer"},
21122
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021123 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21124 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21125 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21126 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21127 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21128 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21129 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21130 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21131 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21132 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21133 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21134 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21135 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21136 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21137 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21138 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
21139 {"QUAT_TDM_TX_0", NULL, "QUAT_TDM_TX_0 Audio Mixer"},
21140
21141 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
21142 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
21143 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
21144 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
21145 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
21146 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
21147 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
21148 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
21149 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
21150 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
21151 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
21152 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
21153 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
21154 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
21155 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
21156 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
21157 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021158 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021159 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Audio Mixer"},
21160
21161 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
21162 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
21163 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
21164 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
21165 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
21166 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
21167 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
21168 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
21169 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
21170 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
21171 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
21172 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
21173 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
21174 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
21175 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
21176 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
21177 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021178 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021179 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Audio Mixer"},
21180
21181 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
21182 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
21183 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
21184 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
21185 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
21186 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
21187 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
21188 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
21189 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
21190 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
21191 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
21192 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
21193 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
21194 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
21195 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
21196 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
21197 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021198 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021199 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
21200
Rohit Kumara5077932017-09-10 22:05:05 +053021201 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21202 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21203 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21204 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21205 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21206 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21207 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21208 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21209 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21210 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21211 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21212 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21213 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21214 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21215 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21216 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
21217 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021218 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053021219 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Audio Mixer"},
21220
21221 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21222 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21223 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21224 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21225 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21226 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21227 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21228 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21229 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21230 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21231 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21232 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21233 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21234 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21235 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21236 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
21237 {"QUIN_TDM_TX_0", NULL, "QUIN_TDM_TX_0 Audio Mixer"},
21238
21239 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
21240 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
21241 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
21242 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
21243 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
21244 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
21245 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
21246 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
21247 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
21248 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
21249 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
21250 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
21251 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
21252 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
21253 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
21254 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
21255 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021256 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053021257 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Audio Mixer"},
21258
21259 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
21260 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
21261 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
21262 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
21263 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
21264 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
21265 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
21266 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
21267 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
21268 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
21269 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
21270 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
21271 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
21272 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
21273 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
21274 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
21275 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021276 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053021277 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Audio Mixer"},
21278
21279 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
21280 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
21281 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
21282 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
21283 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
21284 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
21285 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
21286 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
21287 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
21288 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
21289 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
21290 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
21291 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
21292 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
21293 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
21294 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
21295 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021296 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053021297 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Audio Mixer"},
21298
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021299 {"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
21300 {"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
21301 {"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
21302 {"MultiMedia3 Mixer", "MI2S_TX", "MI2S_TX"},
21303 {"MultiMedia5 Mixer", "MI2S_TX", "MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021304 {"MultiMedia10 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021305 {"MultiMedia16 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021306 {"MultiMedia1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21307 {"MultiMedia2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21308 {"MultiMedia6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21309 {"MultiMedia1 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
21310 {"MultiMedia2 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
21311 {"MultiMedia1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21312 {"MultiMedia2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21313 {"MultiMedia1 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
21314 {"MultiMedia2 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
21315 {"MultiMedia1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21316 {"MultiMedia2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21317 {"MultiMedia1 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053021318 {"MultiMedia1 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021319 {"MultiMedia1 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21320 {"MultiMedia3 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
21321 {"MultiMedia5 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021322 {"MultiMedia10 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021323 {"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21324 {"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
21325 {"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021326 {"MultiMedia10 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021327 {"MultiMedia16 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
21328 {"MultiMedia16 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021329 {"MultiMedia1 Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
21330 {"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
21331 {"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021332 {"MultiMedia10 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021333 {"MultiMedia1 Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
21334 {"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
21335 {"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021336 {"MultiMedia10 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021337 {"MultiMedia16 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021338 {"MultiMedia1 Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
21339 {"MultiMedia3 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
21340 {"MultiMedia5 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021341 {"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21342 {"MultiMedia2 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
21343 {"MultiMedia2 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21344 {"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21345 {"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21346 {"MultiMedia1 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21347 {"MultiMedia2 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21348 {"MultiMedia6 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053021349 {"MultiMedia6 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021350 {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21351 {"MultiMedia3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21352 {"MultiMedia5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021353 {"MultiMedia10 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021354 {"MultiMedia6 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
21355 {"MultiMedia3 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
21356 {"MultiMedia5 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021357 {"MultiMedia10 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021358 {"MultiMedia16 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021359 {"MultiMedia6 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21360 {"MultiMedia3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21361 {"MultiMedia5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021362 {"MultiMedia10 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021363 {"MultiMedia16 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021364 {"MultiMedia17 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21365 {"MultiMedia18 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21366 {"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21367 {"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21368 {"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021369 {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21370 {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21371 {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21372 {"MultiMedia6 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021373 {"MultiMedia6 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021374
21375 {"MultiMedia1 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21376 {"MultiMedia1 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21377 {"MultiMedia1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21378 {"MultiMedia1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21379 {"MultiMedia1 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21380 {"MultiMedia1 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21381 {"MultiMedia1 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21382 {"MultiMedia1 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21383 {"MultiMedia1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21384 {"MultiMedia1 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21385 {"MultiMedia1 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21386 {"MultiMedia1 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21387 {"MultiMedia1 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21388 {"MultiMedia1 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21389 {"MultiMedia1 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21390 {"MultiMedia1 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021391 {"MultiMedia1 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021392 {"MultiMedia1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21393 {"MultiMedia1 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21394 {"MultiMedia1 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21395 {"MultiMedia1 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021396 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21397 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21398 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21399 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21400 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021401 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021402 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21403 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21404 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21405 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21406 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21407 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021408 {"MultiMedia1 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21409 {"MultiMedia1 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021410
21411 {"MultiMedia2 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21412 {"MultiMedia2 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21413 {"MultiMedia2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21414 {"MultiMedia2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21415 {"MultiMedia2 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21416 {"MultiMedia2 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21417 {"MultiMedia2 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21418 {"MultiMedia2 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21419 {"MultiMedia2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21420 {"MultiMedia2 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21421 {"MultiMedia2 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21422 {"MultiMedia2 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21423 {"MultiMedia2 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21424 {"MultiMedia2 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21425 {"MultiMedia2 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21426 {"MultiMedia2 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021427 {"MultiMedia2 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021428 {"MultiMedia2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21429 {"MultiMedia2 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21430 {"MultiMedia2 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21431 {"MultiMedia2 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021432 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21433 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21434 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21435 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21436 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021437 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021438 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21439 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21440 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21441 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21442 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21443 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021444 {"MultiMedia2 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21445 {"MultiMedia2 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021446
21447 {"MultiMedia3 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21448 {"MultiMedia3 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21449 {"MultiMedia3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21450 {"MultiMedia3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21451 {"MultiMedia3 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21452 {"MultiMedia3 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21453 {"MultiMedia3 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21454 {"MultiMedia3 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21455 {"MultiMedia3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21456 {"MultiMedia3 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21457 {"MultiMedia3 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21458 {"MultiMedia3 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21459 {"MultiMedia3 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21460 {"MultiMedia3 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21461 {"MultiMedia3 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21462 {"MultiMedia3 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021463 {"MultiMedia3 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021464 {"MultiMedia3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21465 {"MultiMedia3 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21466 {"MultiMedia3 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21467 {"MultiMedia3 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021468 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21469 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21470 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21471 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21472 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021473 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021474 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21475 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21476 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21477 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21478 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21479 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021480 {"MultiMedia3 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21481 {"MultiMedia3 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021482
21483 {"MultiMedia4 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21484 {"MultiMedia4 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21485 {"MultiMedia4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21486 {"MultiMedia4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21487 {"MultiMedia4 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21488 {"MultiMedia4 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21489 {"MultiMedia4 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21490 {"MultiMedia4 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21491 {"MultiMedia4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21492 {"MultiMedia4 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21493 {"MultiMedia4 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21494 {"MultiMedia4 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21495 {"MultiMedia4 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21496 {"MultiMedia4 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21497 {"MultiMedia4 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21498 {"MultiMedia4 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021499 {"MultiMedia4 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021500 {"MultiMedia4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21501 {"MultiMedia4 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21502 {"MultiMedia4 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21503 {"MultiMedia4 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021504 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21505 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21506 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21507 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21508 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021509 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021510 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21511 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21512 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21513 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21514 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21515 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021516 {"MultiMedia4 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21517 {"MultiMedia4 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021518
21519 {"MultiMedia5 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21520 {"MultiMedia5 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21521 {"MultiMedia5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21522 {"MultiMedia5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21523 {"MultiMedia5 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21524 {"MultiMedia5 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21525 {"MultiMedia5 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21526 {"MultiMedia5 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21527 {"MultiMedia5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21528 {"MultiMedia5 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21529 {"MultiMedia5 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21530 {"MultiMedia5 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21531 {"MultiMedia5 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21532 {"MultiMedia5 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21533 {"MultiMedia5 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21534 {"MultiMedia5 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021535 {"MultiMedia5 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021536 {"MultiMedia5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21537 {"MultiMedia5 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21538 {"MultiMedia5 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21539 {"MultiMedia5 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021540 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21541 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21542 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21543 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21544 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021545 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021546 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21547 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21548 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21549 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21550 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21551 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021552 {"MultiMedia5 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21553 {"MultiMedia5 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021554
21555 {"MultiMedia6 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21556 {"MultiMedia6 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21557 {"MultiMedia6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21558 {"MultiMedia6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21559 {"MultiMedia6 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21560 {"MultiMedia6 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21561 {"MultiMedia6 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21562 {"MultiMedia6 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21563 {"MultiMedia6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21564 {"MultiMedia6 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21565 {"MultiMedia6 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21566 {"MultiMedia6 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21567 {"MultiMedia6 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21568 {"MultiMedia6 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21569 {"MultiMedia6 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21570 {"MultiMedia6 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021571 {"MultiMedia6 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021572 {"MultiMedia6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21573 {"MultiMedia6 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21574 {"MultiMedia6 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21575 {"MultiMedia6 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021576 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21577 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21578 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21579 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21580 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021581 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021582 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21583 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21584 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21585 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21586 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21587 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021588 {"MultiMedia6 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21589 {"MultiMedia6 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021590
21591 {"MultiMedia8 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21592 {"MultiMedia8 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21593 {"MultiMedia8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21594 {"MultiMedia8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21595 {"MultiMedia8 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21596 {"MultiMedia8 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21597 {"MultiMedia8 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21598 {"MultiMedia8 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21599 {"MultiMedia8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21600 {"MultiMedia8 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21601 {"MultiMedia8 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21602 {"MultiMedia8 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21603 {"MultiMedia8 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21604 {"MultiMedia8 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21605 {"MultiMedia8 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21606 {"MultiMedia8 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021607 {"MultiMedia8 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021608 {"MultiMedia8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21609 {"MultiMedia8 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21610 {"MultiMedia8 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21611 {"MultiMedia8 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021612 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21613 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21614 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21615 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21616 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021617 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021618 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21619 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21620 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21621 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21622 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21623 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021624 {"MultiMedia8 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21625 {"MultiMedia8 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021626
Samyak Jain810e42a2019-01-07 17:53:34 +053021627 {"MultiMedia9 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021628 {"MultiMedia9 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21629 {"MultiMedia9 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21630 {"MultiMedia9 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21631 {"MultiMedia9 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21632 {"MultiMedia9 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21633 {"MultiMedia9 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21634 {"MultiMedia9 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21635 {"MultiMedia9 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021636 {"MultiMedia9 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21637 {"MultiMedia9 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21638 {"MultiMedia9 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21639 {"MultiMedia9 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021640 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21641 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21642 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21643 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21644 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021645 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021646 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21647 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21648 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21649 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21650 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21651 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021652 {"MultiMedia9 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21653 {"MultiMedia9 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021654 {"MultiMedia9 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021655
Laxminath Kasam38070be2017-08-17 18:21:59 +053021656 {"MultiMedia10 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21657 {"MultiMedia10 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21658 {"MultiMedia10 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21659 {"MultiMedia10 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21660 {"MultiMedia10 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21661 {"MultiMedia10 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21662 {"MultiMedia10 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21663 {"MultiMedia10 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021664 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21665 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21666 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21667 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21668 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21669 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021670 {"MultiMedia10 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021671
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021672 {"MultiMedia20 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21673 {"MultiMedia20 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21674 {"MultiMedia20 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21675 {"MultiMedia20 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021676 {"MultiMedia20 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021677 {"MultiMedia20 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21678 {"MultiMedia20 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21679 {"MultiMedia20 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21680 {"MultiMedia20 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21681 {"MultiMedia20 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21682 {"MultiMedia20 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21683 {"MultiMedia20 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21684 {"MultiMedia20 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21685 {"MultiMedia20 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21686 {"MultiMedia20 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21687 {"MultiMedia20 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21688 {"MultiMedia20 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21689 {"MultiMedia20 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21690 {"MultiMedia20 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21691 {"MultiMedia20 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21692 {"MultiMedia20 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021693 {"MultiMedia20 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21694 {"MultiMedia20 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21695 {"MultiMedia20 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21696 {"MultiMedia20 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021697 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21698 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21699 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21700 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21701 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021702 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021703 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21704 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21705 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21706 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21707 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21708 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021709 {"MultiMedia20 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21710 {"MultiMedia20 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021711 {"MultiMedia20 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021712
Derek Chen07c6d1c2018-07-05 10:39:25 -070021713 {"MultiMedia21 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21714 {"MultiMedia21 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21715 {"MultiMedia21 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21716 {"MultiMedia21 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21717 {"MultiMedia21 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21718 {"MultiMedia21 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21719 {"MultiMedia21 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21720 {"MultiMedia21 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21721 {"MultiMedia21 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21722 {"MultiMedia21 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21723 {"MultiMedia21 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21724 {"MultiMedia21 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21725 {"MultiMedia21 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21726 {"MultiMedia21 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21727 {"MultiMedia21 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21728 {"MultiMedia21 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21729 {"MultiMedia21 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21730 {"MultiMedia21 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21731 {"MultiMedia21 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21732 {"MultiMedia21 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21733 {"MultiMedia21 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21734 {"MultiMedia21 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053021735 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21736 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21737 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21738 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21739 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021740 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053021741 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21742 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21743 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21744 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21745 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21746 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
21747 {"MultiMedia21 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21748 {"MultiMedia21 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021749 {"MultiMedia21 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021750
Surendar Karkac1cde372018-08-14 18:56:24 +053021751 {"MultiMedia27 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053021752 {"MultiMedia27 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021753 {"MultiMedia27 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
21754 {"MultiMedia27 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053021755 {"MultiMedia27 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021756 {"MultiMedia27 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21757 {"MultiMedia27 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21758 {"MultiMedia27 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21759 {"MultiMedia27 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21760 {"MultiMedia27 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
21761 {"MultiMedia27 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21762 {"MultiMedia27 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021763 {"MultiMedia27 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021764
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021765 {"MultiMedia1 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21766 {"MultiMedia2 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21767 {"MultiMedia4 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21768 {"MultiMedia5 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21769 {"MultiMedia6 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21770 {"MultiMedia8 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021771 {"MultiMedia10 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021772
Asish Bhattacharya34504582017-08-08 12:55:01 +053021773 {"MultiMedia16 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21774 {"MultiMedia16 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21775 {"MultiMedia16 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21776 {"MultiMedia16 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21777 {"MultiMedia16 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21778 {"MultiMedia16 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21779 {"MultiMedia16 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21780 {"MultiMedia16 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21781 {"MultiMedia16 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21782 {"MultiMedia16 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21783 {"MultiMedia16 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21784 {"MultiMedia16 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21785 {"MultiMedia16 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21786 {"MultiMedia16 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21787 {"MultiMedia16 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21788 {"MultiMedia16 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21789 {"MultiMedia16 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021790 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21791 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21792 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21793 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21794 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021795 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021796 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21797 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21798 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21799 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21800 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21801 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021802 {"MultiMedia16 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21803 {"MultiMedia16 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021804 {"MultiMedia16 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021805
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021806 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21807 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21808 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21809 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21810 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21811 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021812 {"MultiMedia17 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021813
21814 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21815 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21816 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21817 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21818 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21819 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021820 {"MultiMedia18 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021821
21822 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21823 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21824 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21825 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21826 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21827 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021828 {"MultiMedia19 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021829
21830 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21831 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21832 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21833 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21834 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21835 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021836 {"MultiMedia28 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021837
21838 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21839 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21840 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21841 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21842 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21843 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021844 {"MultiMedia29 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021845
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021846 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21847 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21848 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21849 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21850 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21851 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21852 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21853 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21854 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21855 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21856 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21857 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21858 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21859 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21860 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21861 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21862 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
21863 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Audio Mixer"},
21864
21865 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21866 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21867 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21868 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21869 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21870 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21871 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21872 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21873 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21874 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21875 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21876 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21877 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21878 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21879 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21880 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21881 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
21882 {"INT_BT_A2DP_RX", NULL, "INTERNAL_A2DP_RX Audio Mixer"},
21883
21884 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21885 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21886 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21887 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21888 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21889 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21890 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21891 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21892 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21893 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21894 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21895 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21896 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21897 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21898 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21899 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21900 {"INT_FM_RX", NULL, "INTERNAL_FM_RX Audio Mixer"},
21901
21902 {"AFE_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21903 {"AFE_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21904 {"AFE_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21905 {"AFE_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21906 {"AFE_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21907 {"AFE_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21908 {"AFE_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21909 {"AFE_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21910 {"AFE_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21911 {"AFE_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21912 {"AFE_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21913 {"AFE_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21914 {"AFE_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21915 {"AFE_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21916 {"AFE_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21917 {"AFE_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21918 {"PCM_RX", NULL, "AFE_PCM_RX Audio Mixer"},
21919
21920 {"MultiMedia1 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21921 {"MultiMedia3 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21922 {"MultiMedia4 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021923 {"MultiMedia10 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021924 {"MultiMedia17 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21925 {"MultiMedia18 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21926 {"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021927 {"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21928 {"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021929 {"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21930 {"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021931 {"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021932 {"MultiMedia1 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21933 {"MultiMedia4 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021934 {"MultiMedia16 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021935 {"MultiMedia17 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21936 {"MultiMedia18 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21937 {"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021938 {"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21939 {"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021940 {"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21941 {"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21942 {"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21943
21944 {"MultiMedia1 Mixer", "AFE_PCM_TX", "PCM_TX"},
21945 {"MultiMedia3 Mixer", "AFE_PCM_TX", "PCM_TX"},
21946 {"MultiMedia4 Mixer", "AFE_PCM_TX", "PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021947 {"MultiMedia10 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021948 {"MultiMedia17 Mixer", "AFE_PCM_TX", "PCM_TX"},
21949 {"MultiMedia18 Mixer", "AFE_PCM_TX", "PCM_TX"},
21950 {"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021951 {"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
21952 {"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021953 {"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
21954 {"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021955 {"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021956 {"MM_UL1", NULL, "MultiMedia1 Mixer"},
21957 {"MultiMedia2 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21958 {"MM_UL2", NULL, "MultiMedia2 Mixer"},
21959 {"MM_UL3", NULL, "MultiMedia3 Mixer"},
21960 {"MM_UL4", NULL, "MultiMedia4 Mixer"},
21961 {"MM_UL5", NULL, "MultiMedia5 Mixer"},
21962 {"MM_UL6", NULL, "MultiMedia6 Mixer"},
21963 {"MM_UL8", NULL, "MultiMedia8 Mixer"},
21964 {"MM_UL9", NULL, "MultiMedia9 Mixer"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021965 {"MM_UL10", NULL, "MultiMedia10 Mixer"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021966 {"MM_UL16", NULL, "MultiMedia16 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021967 {"MM_UL17", NULL, "MultiMedia17 Mixer"},
21968 {"MM_UL18", NULL, "MultiMedia18 Mixer"},
21969 {"MM_UL19", NULL, "MultiMedia19 Mixer"},
21970 {"MM_UL20", NULL, "MultiMedia20 Mixer"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021971 {"MM_UL21", NULL, "MultiMedia21 Mixer"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021972 {"MM_UL27", NULL, "MultiMedia27 Mixer"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021973 {"MM_UL28", NULL, "MultiMedia28 Mixer"},
21974 {"MM_UL29", NULL, "MultiMedia29 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021975
21976 {"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21977 {"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21978 {"AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21979 {"AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21980 {"AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21981 {"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21982 {"AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21983 {"AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21984 {"AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21985 {"AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21986 {"AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21987 {"AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21988 {"AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21989 {"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21990 {"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21991 {"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021992 {"AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021993 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
21994
21995 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21996 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21997 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21998 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21999 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22000 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22001 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22002 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22003 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22004 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22005 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22006 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22007 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22008 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22009 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22010 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070022011 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022012 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
22013
22014 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22015 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22016 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22017 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22018 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22019 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22020 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22021 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22022 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22023 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22024 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22025 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22026 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22027 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22028 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22029 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
22030 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
22031
22032 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22033 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22034 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22035 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22036 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22037 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22038 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22039 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22040 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22041 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22042 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22043 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22044 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22045 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22046 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22047 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
22048 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
22049
Rohit Kumara5077932017-09-10 22:05:05 +053022050 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22051 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22052 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22053 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22054 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22055 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22056 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22057 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22058 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22059 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22060 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22061 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22062 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22063 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22064 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22065 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
22066 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX Audio Mixer"},
22067
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022068 {"PRI_RX_Voice Mixer", "Voip", "VOIP_DL"},
22069 {"PRI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22070 {"PRI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22071 {"PRI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22072 {"PRI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22073 {"PRI_I2S_RX", NULL, "PRI_RX_Voice Mixer"},
22074
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022075 {"SEC_RX_Voice Mixer", "Voip", "VOIP_DL"},
22076 {"SEC_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22077 {"SEC_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22078 {"SEC_I2S_RX", NULL, "SEC_RX_Voice Mixer"},
22079
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022080 {"SEC_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
22081 {"SEC_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22082 {"SEC_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22083 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22084 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22085 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_Voice Mixer"},
22086
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022087 {"SLIM_0_RX_Voice Mixer", "Voip", "VOIP_DL"},
22088 {"SLIM_0_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022089 {"SLIM_0_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22090 {"SLIM_0_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22091 {"SLIM_0_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22092 {"SLIMBUS_0_RX", NULL, "SLIM_0_RX_Voice Mixer"},
22093
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022094 {"SLIM_6_RX_Voice Mixer", "Voip", "VOIP_DL"},
22095 {"SLIM_6_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022096 {"SLIM_6_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22097 {"SLIM_6_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22098 {"SLIM_6_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22099 {"SLIMBUS_6_RX", NULL, "SLIM_6_RX_Voice Mixer"},
22100
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022101 {"USB_AUDIO_RX_Voice Mixer", "Voip", "VOIP_DL"},
22102 {"USB_AUDIO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022103 {"USB_AUDIO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22104 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22105 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22106 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
22107
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080022108 {"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
22109 {"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080022110 {"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22111 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22112 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22113 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
22114
Karthikeyan Mani57550082018-05-03 18:43:58 -070022115 {"DISPLAY_PORT_RX1_Voice Mixer", "Voip", "VOIP_DL"},
22116 {"DISPLAY_PORT_RX1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22117 {"DISPLAY_PORT_RX1_Voice Mixer", "QCHAT", "QCHAT_DL"},
22118 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22119 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22120 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1_Voice Mixer"},
22121
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022122 {"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
22123 {"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22124 {"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22125 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22126 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022127 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX_Voice Mixer"},
22128
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022129 {"AFE_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22130 {"AFE_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22131 {"AFE_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22132 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22133 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22134 {"PCM_RX", NULL, "AFE_PCM_RX_Voice Mixer"},
22135
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022136 {"AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22137 {"AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022138 {"AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22139 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22140 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22141 {"AUX_PCM_RX", NULL, "AUX_PCM_RX_Voice Mixer"},
22142
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022143 {"SEC_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22144 {"SEC_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022145 {"SEC_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22146 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22147 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22148 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
22149
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022150 {"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22151 {"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022152 {"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22153 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22154 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22155 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
22156
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022157 {"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22158 {"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022159 {"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22160 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22161 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22162 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
22163
Rohit Kumara5077932017-09-10 22:05:05 +053022164 {"QUIN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22165 {"QUIN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053022166 {"QUIN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22167 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22168 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22169 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX_Voice Mixer"},
22170
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022171 {"HDMI_RX_Voice Mixer", "Voip", "VOIP_DL"},
22172 {"HDMI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22173 {"HDMI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22174 {"HDMI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22175 {"HDMI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22176 {"HDMI", NULL, "HDMI_RX_Voice Mixer"},
22177 {"HDMI", NULL, "HDMI_DL_HL"},
22178
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022179 {"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022180 {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22181 {"MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22182 {"MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
kunleiz8a60b822017-10-11 15:04:02 +080022183 {"MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022184 {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
22185
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022186 {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022187 {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22188 {"PRI_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22189 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22190 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22191 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"},
22192
22193 {"INT0_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
22194 {"INT0_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22195 {"INT0_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22196 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22197 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22198 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_Voice Mixer"},
22199
22200 {"INT4_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
22201 {"INT4_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22202 {"INT4_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22203 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22204 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22205 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_Voice Mixer"},
22206
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022207 {"TERT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022208 {"TERT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22209 {"TERT_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22210 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22211 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22212 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_Voice Mixer"},
22213
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022214 {"QUAT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022215 {"QUAT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22216 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22217 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22218 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_Voice Mixer"},
22219
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022220 {"QUIN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022221 {"QUIN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22222 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22223 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22224 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"},
22225
22226 {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22227 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"},
22228
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022229 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22230 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22231 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_Voice Mixer"},
22232
22233 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22234 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22235 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_Voice Mixer"},
22236
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022237 {"VOC_EXT_EC MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22238 {"VOC_EXT_EC MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22239 {"VOC_EXT_EC MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22240 {"VOC_EXT_EC MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022241 {"VOC_EXT_EC MUX", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022242 {"VOC_EXT_EC MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Karthikeyan Mania1eb9382018-07-25 10:52:58 -070022243 {"VOC_EXT_EC MUX", "SEC_TDM_TX", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022244 {"VOIP_UL", NULL, "VOC_EXT_EC MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022245 {"VOICEMMODE1_UL", NULL, "VOC_EXT_EC MUX"},
22246 {"VOICEMMODE2_UL", NULL, "VOC_EXT_EC MUX"},
22247
22248 {"AUDIO_REF_EC_UL1 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22249 {"AUDIO_REF_EC_UL1 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22250 {"AUDIO_REF_EC_UL1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22251 {"AUDIO_REF_EC_UL1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22252 {"AUDIO_REF_EC_UL1 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
22253 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22254 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
22255 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
22256 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
22257 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070022258 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
22259 {"AUDIO_REF_EC_UL1 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022260
22261 {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22262 {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22263 {"AUDIO_REF_EC_UL2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22264 {"AUDIO_REF_EC_UL2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22265
22266 {"AUDIO_REF_EC_UL3 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22267 {"AUDIO_REF_EC_UL3 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22268 {"AUDIO_REF_EC_UL3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22269 {"AUDIO_REF_EC_UL3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22270
22271 {"AUDIO_REF_EC_UL4 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22272 {"AUDIO_REF_EC_UL4 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22273 {"AUDIO_REF_EC_UL4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22274 {"AUDIO_REF_EC_UL4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22275
22276 {"AUDIO_REF_EC_UL5 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22277 {"AUDIO_REF_EC_UL5 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22278 {"AUDIO_REF_EC_UL5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22279 {"AUDIO_REF_EC_UL5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22280
22281 {"AUDIO_REF_EC_UL6 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22282 {"AUDIO_REF_EC_UL6 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22283 {"AUDIO_REF_EC_UL6 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22284 {"AUDIO_REF_EC_UL6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22285
22286 {"AUDIO_REF_EC_UL8 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22287 {"AUDIO_REF_EC_UL8 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22288 {"AUDIO_REF_EC_UL8 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22289 {"AUDIO_REF_EC_UL8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22290
22291 {"AUDIO_REF_EC_UL9 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22292 {"AUDIO_REF_EC_UL9 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22293 {"AUDIO_REF_EC_UL9 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22294 {"AUDIO_REF_EC_UL9 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22295
Laxminath Kasam38070be2017-08-17 18:21:59 +053022296 {"AUDIO_REF_EC_UL10 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22297 {"AUDIO_REF_EC_UL10 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22298 {"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22299 {"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22300 {"AUDIO_REF_EC_UL10 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
22301 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22302 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
22303 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
22304 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
22305 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070022306 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
22307 {"AUDIO_REF_EC_UL10 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Vikram Panduranga016c49f2017-09-11 15:15:56 -070022308
22309 {"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22310 {"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22311 {"AUDIO_REF_EC_UL16 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22312 {"AUDIO_REF_EC_UL16 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22313
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022314 {"AUDIO_REF_EC_UL17 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22315 {"AUDIO_REF_EC_UL17 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22316 {"AUDIO_REF_EC_UL17 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22317 {"AUDIO_REF_EC_UL17 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22318
22319 {"AUDIO_REF_EC_UL18 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22320 {"AUDIO_REF_EC_UL18 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22321 {"AUDIO_REF_EC_UL18 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22322 {"AUDIO_REF_EC_UL18 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22323
22324 {"AUDIO_REF_EC_UL19 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22325 {"AUDIO_REF_EC_UL19 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22326 {"AUDIO_REF_EC_UL19 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22327 {"AUDIO_REF_EC_UL19 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22328
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053022329 {"AUDIO_REF_EC_UL28 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22330 {"AUDIO_REF_EC_UL28 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22331 {"AUDIO_REF_EC_UL28 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22332 {"AUDIO_REF_EC_UL28 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22333
22334 {"AUDIO_REF_EC_UL29 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22335 {"AUDIO_REF_EC_UL29 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22336 {"AUDIO_REF_EC_UL29 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22337 {"AUDIO_REF_EC_UL29 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Yunfei Zhang3efc4a22017-11-07 16:30:13 +080022338
22339 {"LSM1_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22340 {"LSM2_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22341 {"LSM3_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22342 {"LSM4_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22343 {"LSM5_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22344 {"LSM6_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22345 {"LSM7_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22346 {"LSM8_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22347
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022348 {"MM_UL1", NULL, "AUDIO_REF_EC_UL1 MUX"},
22349 {"MM_UL2", NULL, "AUDIO_REF_EC_UL2 MUX"},
22350 {"MM_UL3", NULL, "AUDIO_REF_EC_UL3 MUX"},
22351 {"MM_UL4", NULL, "AUDIO_REF_EC_UL4 MUX"},
22352 {"MM_UL5", NULL, "AUDIO_REF_EC_UL5 MUX"},
22353 {"MM_UL6", NULL, "AUDIO_REF_EC_UL6 MUX"},
22354 {"MM_UL8", NULL, "AUDIO_REF_EC_UL8 MUX"},
22355 {"MM_UL9", NULL, "AUDIO_REF_EC_UL9 MUX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053022356 {"MM_UL10", NULL, "AUDIO_REF_EC_UL10 MUX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053022357 {"MM_UL16", NULL, "AUDIO_REF_EC_UL16 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022358 {"MM_UL17", NULL, "AUDIO_REF_EC_UL17 MUX"},
22359 {"MM_UL18", NULL, "AUDIO_REF_EC_UL18 MUX"},
22360 {"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053022361 {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
22362 {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022363
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022364 {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
22365 {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
22366 {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"},
22367 {"VoiceMMode1_Tx Mixer", "TERT_MI2S_TX_MMode1", "TERT_MI2S_TX"},
22368 {"VoiceMMode1_Tx Mixer", "INT3_MI2S_TX_MMode1", "INT3_MI2S_TX"},
22369 {"VoiceMMode1_Tx Mixer", "SLIM_0_TX_MMode1", "SLIMBUS_0_TX"},
22370 {"VoiceMMode1_Tx Mixer", "SLIM_7_TX_MMode1", "SLIMBUS_7_TX"},
22371 {"VoiceMMode1_Tx Mixer", "SLIM_8_TX_MMode1", "SLIMBUS_8_TX"},
22372 {"VoiceMMode1_Tx Mixer", "USB_AUDIO_TX_MMode1", "USB_AUDIO_TX"},
22373 {"VoiceMMode1_Tx Mixer", "INT_BT_SCO_TX_MMode1", "INT_BT_SCO_TX"},
22374 {"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
22375 {"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
22376 {"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
22377 {"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
22378 {"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022379 {"VoiceMMode1_Tx Mixer", "QUIN_AUX_PCM_TX_MMode1", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022380 {"VoiceMMode1_Tx Mixer", "QUAT_TDM_TX_0_MMode1", "QUAT_TDM_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022381 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_0_MMode1", "TX_CDC_DMA_TX_0"},
22382 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_1_MMode1", "TX_CDC_DMA_TX_1"},
22383 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_2_MMode1", "TX_CDC_DMA_TX_2"},
22384 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_3_MMode1", "TX_CDC_DMA_TX_3"},
22385 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_4_MMode1", "TX_CDC_DMA_TX_4"},
22386 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_5_MMode1", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022387 {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
22388
22389 {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
22390 {"VoiceMMode2_Tx Mixer", "PRI_MI2S_TX_MMode2", "PRI_MI2S_TX"},
22391 {"VoiceMMode2_Tx Mixer", "MI2S_TX_MMode2", "MI2S_TX"},
22392 {"VoiceMMode2_Tx Mixer", "TERT_MI2S_TX_MMode2", "TERT_MI2S_TX"},
22393 {"VoiceMMode2_Tx Mixer", "INT3_MI2S_TX_MMode2", "INT3_MI2S_TX"},
22394 {"VoiceMMode2_Tx Mixer", "SLIM_0_TX_MMode2", "SLIMBUS_0_TX"},
22395 {"VoiceMMode2_Tx Mixer", "SLIM_7_TX_MMode2", "SLIMBUS_7_TX"},
22396 {"VoiceMMode2_Tx Mixer", "SLIM_8_TX_MMode2", "SLIMBUS_8_TX"},
22397 {"VoiceMMode2_Tx Mixer", "USB_AUDIO_TX_MMode2", "USB_AUDIO_TX"},
22398 {"VoiceMMode2_Tx Mixer", "INT_BT_SCO_TX_MMode2", "INT_BT_SCO_TX"},
22399 {"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
22400 {"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
22401 {"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
22402 {"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
22403 {"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022404 {"VoiceMMode2_Tx Mixer", "QUIN_AUX_PCM_TX_MMode2", "QUIN_AUX_PCM_TX"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022405 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_0_MMode2", "TX_CDC_DMA_TX_0"},
22406 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_1_MMode2", "TX_CDC_DMA_TX_1"},
22407 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_2_MMode2", "TX_CDC_DMA_TX_2"},
22408 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_3_MMode2", "TX_CDC_DMA_TX_3"},
22409 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_4_MMode2", "TX_CDC_DMA_TX_4"},
22410 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_5_MMode2", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022411 {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
22412
22413 {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
22414 {"Voip_Tx Mixer", "MI2S_TX_Voip", "MI2S_TX"},
22415 {"Voip_Tx Mixer", "TERT_MI2S_TX_Voip", "TERT_MI2S_TX"},
22416 {"Voip_Tx Mixer", "INT3_MI2S_TX_Voip", "INT3_MI2S_TX"},
22417 {"Voip_Tx Mixer", "SLIM_0_TX_Voip", "SLIMBUS_0_TX"},
22418 {"Voip_Tx Mixer", "SLIM_7_TX_Voip", "SLIMBUS_7_TX"},
22419 {"Voip_Tx Mixer", "SLIM_8_TX_Voip", "SLIMBUS_8_TX"},
22420 {"Voip_Tx Mixer", "USB_AUDIO_TX_Voip", "USB_AUDIO_TX"},
22421 {"Voip_Tx Mixer", "INTERNAL_BT_SCO_TX_Voip", "INT_BT_SCO_TX"},
22422 {"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
22423 {"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
22424 {"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
22425 {"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
22426 {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022427 {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022428 {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
22429 {"VOIP_UL", NULL, "Voip_Tx Mixer"},
22430
22431 {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},
22432 {"SLIMBUS_0_RX", NULL, "SLIMBUS_DL_HL"},
22433 {"SLIMBUS1_DL_HL", "Switch", "SLIM1_DL_HL"},
22434 {"SLIMBUS_1_RX", NULL, "SLIMBUS1_DL_HL"},
22435 {"SLIMBUS3_DL_HL", "Switch", "SLIM3_DL_HL"},
22436 {"SLIMBUS_3_RX", NULL, "SLIMBUS3_DL_HL"},
22437 {"SLIMBUS4_DL_HL", "Switch", "SLIM4_DL_HL"},
22438 {"SLIMBUS_4_RX", NULL, "SLIMBUS4_DL_HL"},
22439 {"SLIMBUS6_DL_HL", "Switch", "SLIM0_DL_HL"},
22440 {"SLIMBUS_6_RX", NULL, "SLIMBUS6_DL_HL"},
22441 {"SLIM0_UL_HL", NULL, "SLIMBUS_0_TX"},
22442 {"SLIM1_UL_HL", NULL, "SLIMBUS_1_TX"},
22443 {"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
22444 {"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
22445 {"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053022446 {"WSA_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
22447 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_DL_HL"},
22448 {"CDC_DMA_UL_HL", NULL, "VA_CDC_DMA_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022449 {"RX_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
22450 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_DL_HL"},
22451 {"TX3_CDC_DMA_UL_HL", NULL, "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022452 {"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22453 {"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22454 {"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22455 {"LSM1 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22456 {"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22457 {"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22458 {"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22459 {"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022460 {"LSM1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22461 {"LSM1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022462 {"LSM1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022463 {"LSM1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022464 {"LSM1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022465 {"LSM1_UL_HL", NULL, "LSM1 Mixer"},
22466
22467 {"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22468 {"LSM2 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22469 {"LSM2 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22470 {"LSM2 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22471 {"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22472 {"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22473 {"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22474 {"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022475 {"LSM2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22476 {"LSM2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022477 {"LSM2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022478 {"LSM2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022479 {"LSM2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022480 {"LSM2_UL_HL", NULL, "LSM2 Mixer"},
22481
22482
22483 {"LSM3 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22484 {"LSM3 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22485 {"LSM3 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22486 {"LSM3 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22487 {"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22488 {"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22489 {"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22490 {"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022491 {"LSM3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22492 {"LSM3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022493 {"LSM3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022494 {"LSM3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022495 {"LSM3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022496 {"LSM3_UL_HL", NULL, "LSM3 Mixer"},
22497
22498
22499 {"LSM4 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22500 {"LSM4 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22501 {"LSM4 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22502 {"LSM4 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22503 {"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22504 {"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22505 {"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22506 {"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022507 {"LSM4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22508 {"LSM4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022509 {"LSM4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022510 {"LSM4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022511 {"LSM4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022512 {"LSM4_UL_HL", NULL, "LSM4 Mixer"},
22513
22514 {"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22515 {"LSM5 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22516 {"LSM5 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22517 {"LSM5 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22518 {"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22519 {"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22520 {"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22521 {"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022522 {"LSM5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22523 {"LSM5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022524 {"LSM5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022525 {"LSM5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022526 {"LSM5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022527 {"LSM5_UL_HL", NULL, "LSM5 Mixer"},
22528
22529 {"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22530 {"LSM6 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22531 {"LSM6 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22532 {"LSM6 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22533 {"LSM6 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22534 {"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022535 {"LSM6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22536 {"LSM6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022537 {"LSM6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022538 {"LSM6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022539 {"LSM6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022540 {"LSM6_UL_HL", NULL, "LSM6 Mixer"},
22541
22542 {"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22543 {"LSM7 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22544 {"LSM7 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22545 {"LSM7 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22546 {"LSM7 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22547 {"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022548 {"LSM7 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22549 {"LSM7 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022550 {"LSM7 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022551 {"LSM7 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022552 {"LSM7 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022553 {"LSM7_UL_HL", NULL, "LSM7 Mixer"},
22554
22555 {"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22556 {"LSM8 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22557 {"LSM8 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22558 {"LSM8 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22559 {"LSM8 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22560 {"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022561 {"LSM8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22562 {"LSM8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022563 {"LSM8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022564 {"LSM8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022565 {"LSM8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022566 {"LSM8_UL_HL", NULL, "LSM8 Mixer"},
22567
22568
22569 {"CPE_LSM_UL_HL", NULL, "BE_IN"},
22570 {"QCHAT_Tx Mixer", "PRI_TX_QCHAT", "PRI_I2S_TX"},
22571 {"QCHAT_Tx Mixer", "SLIM_0_TX_QCHAT", "SLIMBUS_0_TX"},
22572 {"QCHAT_Tx Mixer", "SLIM_7_TX_QCHAT", "SLIMBUS_7_TX"},
22573 {"QCHAT_Tx Mixer", "SLIM_8_TX_QCHAT", "SLIMBUS_8_TX"},
22574 {"QCHAT_Tx Mixer", "INTERNAL_BT_SCO_TX_QCHAT", "INT_BT_SCO_TX"},
22575 {"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
22576 {"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
22577 {"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
22578 {"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
22579 {"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022580 {"QCHAT_Tx Mixer", "QUIN_AUX_PCM_TX_QCHAT", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022581 {"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
22582 {"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
22583 {"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
22584 {"QCHAT_Tx Mixer", "INT3_MI2S_TX_QCHAT", "INT3_MI2S_TX"},
22585 {"QCHAT_Tx Mixer", "USB_AUDIO_TX_QCHAT", "USB_AUDIO_TX"},
22586 {"QCHAT_UL", NULL, "QCHAT_Tx Mixer"},
22587
22588 {"INT_FM_RX", NULL, "INTFM_DL_HL"},
22589 {"INTFM_UL_HL", NULL, "INT_FM_TX"},
22590 {"INTHFP_UL_HL", NULL, "HFP_PRI_AUX_UL_HL"},
22591 {"HFP_PRI_AUX_UL_HL", "Switch", "AUX_PCM_TX"},
22592 {"INTHFP_UL_HL", NULL, "HFP_AUX_UL_HL"},
22593 {"HFP_AUX_UL_HL", "Switch", "SEC_AUX_PCM_TX"},
22594 {"INTHFP_UL_HL", NULL, "HFP_INT_UL_HL"},
22595 {"HFP_INT_UL_HL", "Switch", "INT_BT_SCO_TX"},
22596 {"SLIM7_UL_HL", NULL, "HFP_SLIM7_UL_HL"},
22597 {"HFP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
22598 {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"},
22599 {"AUX_PCM_RX", NULL, "INTHFP_DL_HL"},
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080022600 {"SLIM7_UL_HL", NULL, "A2DP_SLIM7_UL_HL"},
22601 {"A2DP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022602 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022603 {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022604 {"SEC_AUXPCM_UL_HL", NULL, "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022605 {"MI2S_RX", NULL, "MI2S_DL_HL"},
22606 {"MI2S_UL_HL", NULL, "MI2S_TX"},
22607 {"PCM_RX_DL_HL", "Switch", "SLIM0_DL_HL"},
22608 {"PCM_RX", NULL, "PCM_RX_DL_HL"},
22609
22610 /* connect to INT4_MI2S_DL_HL since same pcm_id */
22611 {"INT0_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
22612 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_DL_HL"},
22613 {"INT4_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
22614 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_DL_HL"},
22615 {"PRI_MI2S_RX_DL_HL", "Switch", "PRI_MI2S_DL_HL"},
22616 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_DL_HL"},
22617 {"SEC_MI2S_RX_DL_HL", "Switch", "SEC_MI2S_DL_HL"},
22618 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_DL_HL"},
22619 {"TERT_MI2S_RX_DL_HL", "Switch", "TERT_MI2S_DL_HL"},
22620 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_DL_HL"},
22621
22622 {"QUAT_MI2S_RX_DL_HL", "Switch", "QUAT_MI2S_DL_HL"},
22623 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053022624 {"QUIN_MI2S_RX_DL_HL", "Switch", "QUIN_MI2S_DL_HL"},
22625 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022626 {"MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
22627 {"INT3_MI2S_UL_HL", NULL, "INT3_MI2S_TX"},
22628 {"TERT_MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
22629 {"SEC_I2S_RX", NULL, "SEC_I2S_DL_HL"},
22630 {"PRI_MI2S_UL_HL", NULL, "PRI_MI2S_TX"},
22631 {"SEC_MI2S_UL_HL", NULL, "SEC_MI2S_TX"},
22632 {"SEC_MI2S_RX", NULL, "SEC_MI2S_DL_HL"},
22633 {"PRI_MI2S_RX", NULL, "PRI_MI2S_DL_HL"},
22634 {"TERT_MI2S_RX", NULL, "TERT_MI2S_DL_HL"},
22635 {"QUAT_MI2S_UL_HL", NULL, "QUAT_MI2S_TX"},
22636
22637 {"PRI_TDM_TX_0_UL_HL", NULL, "PRI_TDM_TX_0"},
22638 {"PRI_TDM_TX_1_UL_HL", NULL, "PRI_TDM_TX_1"},
22639 {"PRI_TDM_TX_2_UL_HL", NULL, "PRI_TDM_TX_2"},
22640 {"PRI_TDM_TX_3_UL_HL", NULL, "PRI_TDM_TX_3"},
22641 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_DL_HL"},
22642 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_DL_HL"},
22643 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_DL_HL"},
22644 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_DL_HL"},
22645 {"SEC_TDM_TX_0_UL_HL", NULL, "SEC_TDM_TX_0"},
22646 {"SEC_TDM_TX_1_UL_HL", NULL, "SEC_TDM_TX_1"},
22647 {"SEC_TDM_TX_2_UL_HL", NULL, "SEC_TDM_TX_2"},
22648 {"SEC_TDM_TX_3_UL_HL", NULL, "SEC_TDM_TX_3"},
22649 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0_DL_HL"},
22650 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
22651 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
22652 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
Derek Chenfdcc0982018-10-02 15:14:03 -070022653 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022654 {"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
22655 {"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
22656 {"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
22657 {"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070022658 {"TERT_TDM_TX_7_UL_HL", NULL, "TERT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022659 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
22660 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
22661 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
22662 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3_DL_HL"},
22663 {"QUAT_TDM_TX_0_UL_HL", NULL, "QUAT_TDM_TX_0"},
22664 {"QUAT_TDM_TX_1_UL_HL", NULL, "QUAT_TDM_TX_1"},
22665 {"QUAT_TDM_TX_2_UL_HL", NULL, "QUAT_TDM_TX_2"},
22666 {"QUAT_TDM_TX_3_UL_HL", NULL, "QUAT_TDM_TX_3"},
22667 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0_DL_HL"},
22668 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1_DL_HL"},
22669 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_DL_HL"},
22670 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053022671 {"QUIN_TDM_TX_0_UL_HL", NULL, "QUIN_TDM_TX_0"},
22672 {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"},
22673 {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"},
22674 {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"},
22675 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"},
22676 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"},
22677 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"},
22678 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022679
22680 {"PRI_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22681 {"PRI_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22682 {"PRI_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22683 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22684 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22685 {"PRI_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22686 {"PRI_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22687 {"PRI_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22688 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22689 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22690 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22691 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22692 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22693 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22694 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22695 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022696 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22697 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22698 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22699 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022700 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Port Mixer"},
22701
22702 {"PRI_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22703 {"PRI_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22704 {"PRI_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22705 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22706 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22707 {"PRI_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22708 {"PRI_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22709 {"PRI_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22710 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22711 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22712 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22713 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22714 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22715 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22716 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22717 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022718 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22719 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22720 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22721 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022722 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Port Mixer"},
22723
22724 {"PRI_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22725 {"PRI_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22726 {"PRI_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22727 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22728 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22729 {"PRI_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22730 {"PRI_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22731 {"PRI_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22732 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22733 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22734 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22735 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22736 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22737 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22738 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22739 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022740 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22741 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22742 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22743 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022744 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Port Mixer"},
22745
22746 {"PRI_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22747 {"PRI_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22748 {"PRI_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22749 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22750 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22751 {"PRI_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22752 {"PRI_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22753 {"PRI_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22754 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22755 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22756 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22757 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22758 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22759 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22760 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22761 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022762 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22763 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22764 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22765 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022766 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Port Mixer"},
22767
22768 {"SEC_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22769 {"SEC_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22770 {"SEC_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22771 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22772 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22773 {"SEC_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22774 {"SEC_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22775 {"SEC_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22776 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22777 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22778 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22779 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22780 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22781 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22782 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22783 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022784 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22785 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22786 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22787 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022788 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Port Mixer"},
22789
22790 {"SEC_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22791 {"SEC_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22792 {"SEC_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22793 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22794 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22795 {"SEC_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22796 {"SEC_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22797 {"SEC_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22798 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22799 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22800 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22801 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22802 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22803 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22804 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22805 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022806 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22807 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22808 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22809 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022810 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Port Mixer"},
22811
22812 {"SEC_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22813 {"SEC_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22814 {"SEC_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22815 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22816 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22817 {"SEC_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22818 {"SEC_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22819 {"SEC_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22820 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22821 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22822 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22823 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22824 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22825 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22826 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22827 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022828 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22829 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22830 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22831 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022832 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Port Mixer"},
22833
22834 {"SEC_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22835 {"SEC_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22836 {"SEC_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22837 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22838 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22839 {"SEC_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22840 {"SEC_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22841 {"SEC_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22842 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22843 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22844 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22845 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22846 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22847 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22848 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22849 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022850 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22851 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22852 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22853 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022854 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
22855
Derek Chenfdcc0982018-10-02 15:14:03 -070022856 {"SEC_TDM_RX_7 Port Mixer", "TERT_TDM_TX_7", "TERT_TDM_TX_7"},
22857 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7 Port Mixer"},
22858
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022859 {"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22860 {"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22861 {"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22862 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22863 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22864 {"TERT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22865 {"TERT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22866 {"TERT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22867 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22868 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22869 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22870 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22871 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22872 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22873 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22874 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022875 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22876 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22877 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22878 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022879 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Port Mixer"},
22880
22881 {"TERT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22882 {"TERT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22883 {"TERT_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22884 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22885 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22886 {"TERT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22887 {"TERT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22888 {"TERT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22889 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22890 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22891 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22892 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22893 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22894 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22895 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22896 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022897 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22898 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22899 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22900 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022901 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Port Mixer"},
22902
22903 {"TERT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22904 {"TERT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22905 {"TERT_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22906 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22907 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22908 {"TERT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22909 {"TERT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22910 {"TERT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22911 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22912 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22913 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22914 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22915 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22916 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22917 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22918 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022919 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22920 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22921 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22922 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022923 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Port Mixer"},
22924
22925 {"TERT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22926 {"TERT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22927 {"TERT_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22928 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22929 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22930 {"TERT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22931 {"TERT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22932 {"TERT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22933 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22934 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22935 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22936 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22937 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22938 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22939 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22940 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022941 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22942 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22943 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22944 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022945 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Port Mixer"},
22946
22947 {"QUAT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22948 {"QUAT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22949 {"QUAT_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22950 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22951 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22952 {"QUAT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22953 {"QUAT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22954 {"QUAT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22955 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22956 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22957 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22958 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22959 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22960 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22961 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22962 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022963 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22964 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22965 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22966 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022967 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Port Mixer"},
22968
22969 {"QUAT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22970 {"QUAT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22971 {"QUAT_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22972 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22973 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22974 {"QUAT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22975 {"QUAT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22976 {"QUAT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22977 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22978 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22979 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22980 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22981 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22982 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22983 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22984 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022985 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22986 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22987 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22988 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022989 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Port Mixer"},
22990
22991 {"QUAT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22992 {"QUAT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22993 {"QUAT_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22994 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22995 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22996 {"QUAT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22997 {"QUAT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22998 {"QUAT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22999 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23000 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23001 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23002 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23003 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23004 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23005 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23006 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023007 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23008 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23009 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23010 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023011 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Port Mixer"},
23012
23013 {"QUAT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23014 {"QUAT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23015 {"QUAT_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23016 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23017 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23018 {"QUAT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23019 {"QUAT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23020 {"QUAT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23021 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23022 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23023 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23024 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23025 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23026 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23027 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23028 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023029 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23030 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23031 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23032 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023033 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Port Mixer"},
23034
Rohit Kumara5077932017-09-10 22:05:05 +053023035 {"QUIN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23036 {"QUIN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23037 {"QUIN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23038 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23039 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23040 {"QUIN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23041 {"QUIN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23042 {"QUIN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23043 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23044 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23045 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23046 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23047 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23048 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23049 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23050 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
23051 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23052 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23053 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23054 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053023055 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053023056
23057 {"QUIN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23058 {"QUIN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23059 {"QUIN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23060 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23061 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23062 {"QUIN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23063 {"QUIN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23064 {"QUIN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23065 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23066 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23067 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23068 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23069 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23070 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23071 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23072 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
23073 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23074 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23075 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23076 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053023077 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053023078
23079 {"QUIN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23080 {"QUIN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23081 {"QUIN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23082 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23083 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23084 {"QUIN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23085 {"QUIN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23086 {"QUIN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23087 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23088 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23089 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23090 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23091 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23092 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23093 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23094 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
23095 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23096 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23097 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23098 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053023099 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053023100
23101 {"QUIN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23102 {"QUIN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23103 {"QUIN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23104 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23105 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23106 {"QUIN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23107 {"QUIN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23108 {"QUIN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23109 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23110 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23111 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23112 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23113 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23114 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23115 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23116 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
23117 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23118 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23119 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23120 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053023121 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053023122
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023123 {"INT0_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23124 {"INT0_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23125 {"INT0_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23126 {"INT0_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023127 {"INT0_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023128 {"INT0_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
23129 {"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23130 {"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23131 {"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023132 {"INT0_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023133 {"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23134 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
23135
23136 {"INT4_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23137 {"INT4_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23138 {"INT4_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23139 {"INT4_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023140 {"INT4_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023141 {"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
23142 {"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23143 {"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023144 {"INT4_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023145 {"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23146 {"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23147 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
23148
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053023149 {"WSA_CDC_DMA_RX_0 Port Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
23150 {"WSA_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080023151 {"WSA_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080023152 {"WSA_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Meng Wangbbf77922019-03-01 13:24:14 +080023153 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Port Mixer"},
23154
23155 {"RX_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
23156 {"RX_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080023157 {"RX_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Meng Wangbbf77922019-03-01 13:24:14 +080023158 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Port Mixer"},
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053023159
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023160 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23161 {"SLIMBUS_0_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23162 {"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23163 {"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23164 {"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023165 {"SLIMBUS_0_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023166 {"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23167 {"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23168 {"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
23169 {"SLIMBUS_0_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023170 {"SLIMBUS_0_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023171 {"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23172 {"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23173 {"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23174 {"SLIMBUS_0_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23175 {"SLIMBUS_0_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023176 {"SLIMBUS_0_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023177 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23178 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
23179 {"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23180 {"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23181 {"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
23182 {"USB_AUDIO_RX Port Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
23183 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Port Mixer"},
23184 {"USB_DL_HL", "Switch", "USBAUDIO_DL_HL"},
23185 {"USB_AUDIO_RX", NULL, "USB_DL_HL"},
23186 {"USBAUDIO_UL_HL", NULL, "USB_AUDIO_TX"},
23187
23188
23189 {"AUX_PCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23190 {"AUX_PCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23191 {"AUX_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23192 {"AUX_PCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23193 {"AUX_PCM_RX Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080023194 {"AUX_PCM_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023195 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Port Mixer"},
23196
23197 {"SEC_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23198 {"SEC_AUXPCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23199 {"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080023200 {"SEC_AUXPCM_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023201 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
23202
23203 {"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23204 {"TERT_AUXPCM_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
23205 {"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23206 {"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
23207
23208 {"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23209 {"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
23210 {"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23211 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
23212
Rohit Kumara5077932017-09-10 22:05:05 +053023213 {"QUIN_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23214 {"QUIN_AUXPCM_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
23215 {"QUIN_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23216 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUXPCM_RX Port Mixer"},
23217
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023218 {"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
23219 {"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23220 {"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23221 {"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
23222 {"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23223 {"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23224 {"Voice Stub Tx Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
23225 {"Voice Stub Tx Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023226 {"Voice Stub Tx Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023227 {"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
23228 {"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23229 {"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23230 {"Voice Stub Tx Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
23231 {"Voice Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23232 {"Voice Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23233 {"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
23234 {"Voice Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23235 {"Voice Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23236 {"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
23237 {"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
23238
23239 {"VoLTE Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
23240 {"VoLTE Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23241 {"VoLTE Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
23242 {"VoLTE Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23243 {"VoLTE Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23244 {"VoLTE Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
23245 {"VoLTE Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23246 {"VoLTE Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23247 {"VoLTE Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
23248 {"VoLTE Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23249 {"VoLTE Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23250 {"VOLTE_STUB_UL", NULL, "VoLTE Stub Tx Mixer"},
23251
23252 {"Voice2 Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
23253 {"Voice2 Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23254 {"Voice2 Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
23255 {"Voice2 Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23256 {"Voice2 Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23257 {"Voice2 Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
23258 {"Voice2 Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23259 {"Voice2 Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23260 {"Voice2 Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
23261 {"Voice2 Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23262 {"Voice2 Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23263 {"VOICE2_STUB_UL", NULL, "Voice2 Stub Tx Mixer"},
23264
kunleizdf5a00a2017-11-27 15:27:36 +080023265 {"STUB_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
23266 {"STUB_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023267 {"STUB_RX", NULL, "STUB_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080023268
23269 {"SLIMBUS_1_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
23270 {"SLIMBUS_1_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023271 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080023272
23273 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
23274 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023275 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
23276
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023277 {"SLIM_7_RX_Voice Mixer", "Voip", "VOIP_DL"},
23278 {"SLIM_7_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023279 {"SLIM_7_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
23280 {"SLIM_7_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
23281 {"SLIM_7_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
23282 {"SLIMBUS_7_RX", NULL, "SLIM_7_RX_Voice Mixer"},
23283
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023284 {"SLIM_8_RX_Voice Mixer", "Voip", "VOIP_DL"},
23285 {"SLIM_8_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023286 {"SLIM_8_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
23287 {"SLIM_8_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
23288 {"SLIM_8_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
23289 {"SLIMBUS_8_RX", NULL, "SLIM_8_RX_Voice Mixer"},
23290
23291 {"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23292 {"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23293 {"SLIMBUS_1_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23294 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
23295 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23296 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23297 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
23298 {"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
23299 {"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23300 {"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
23301 {"SLIMBUS_3_RX Port Mixer", "AUX_PCM_RX", "AUX_PCM_RX"},
23302 {"SLIMBUS_3_RX Port Mixer", "SLIM_0_RX", "SLIMBUS_0_RX"},
23303 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
23304
23305 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23306 {"SLIMBUS_6_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23307 {"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23308 {"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23309 {"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023310 {"SLIMBUS_6_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023311 {"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23312 {"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23313 {"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23314 {"SLIMBUS_6_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23315 {"SLIMBUS_6_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23316 {"SLIMBUS_6_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23317 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23318 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Port Mixer"},
23319
23320 {"HDMI_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23321 {"HDMI", NULL, "HDMI_RX Port Mixer"},
23322
23323 {"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23324 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
23325
Karthikeyan Mani57550082018-05-03 18:43:58 -070023326 {"DISPLAY_PORT_RX1 Port Mixer", "MI2S_TX", "MI2S_TX"},
23327 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1 Port Mixer"},
23328
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023329 {"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23330 {"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
23331
23332 {"MI2S_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23333 {"MI2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23334 {"MI2S_RX", NULL, "MI2S_RX Port Mixer"},
23335
23336 {"PRI_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23337 {"PRI_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23338 {"PRI_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23339 {"PRI_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023340 {"PRI_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023341 {"PRI_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23342 {"PRI_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23343 {"PRI_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23344 {"PRI_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080023345 {"PRI_MI2S_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023346 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Port Mixer"},
23347
23348 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23349 {"SEC_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23350 {"SEC_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23351 {"SEC_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023352 {"SEC_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023353 {"SEC_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23354 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23355 {"SEC_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080023356 {"SEC_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023357 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Port Mixer"},
23358
23359 {"TERT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23360 {"TERT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23361 {"TERT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23362 {"TERT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023363 {"TERT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023364 {"TERT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23365 {"TERT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23366 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Port Mixer"},
23367
23368 {"QUAT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23369 {"QUAT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23370 {"QUAT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23371 {"QUAT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023372 {"QUAT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023373 {"QUAT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23374 {"QUAT_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23375 {"QUAT_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23376 {"QUAT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23377 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Port Mixer"},
23378
Rohit Kumara5077932017-09-10 22:05:05 +053023379 {"QUIN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23380 {"QUIN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23381 {"QUIN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23382 {"QUIN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23383 {"QUIN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
23384 {"QUIN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23385 {"QUIN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23386 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Port Mixer"},
23387
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023388 /* Backend Enablement */
23389
23390 {"BE_OUT", NULL, "PRI_I2S_RX"},
23391 {"BE_OUT", NULL, "SEC_I2S_RX"},
23392 {"BE_OUT", NULL, "SLIMBUS_0_RX"},
23393 {"BE_OUT", NULL, "SLIMBUS_1_RX"},
23394 {"BE_OUT", NULL, "SLIMBUS_2_RX"},
23395 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
23396 {"BE_OUT", NULL, "SLIMBUS_4_RX"},
23397 {"BE_OUT", NULL, "SLIMBUS_5_RX"},
23398 {"BE_OUT", NULL, "SLIMBUS_6_RX"},
23399 {"BE_OUT", NULL, "SLIMBUS_7_RX"},
23400 {"BE_OUT", NULL, "SLIMBUS_8_RX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023401 {"BE_OUT", NULL, "SLIMBUS_9_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023402 {"BE_OUT", NULL, "USB_AUDIO_RX"},
23403 {"BE_OUT", NULL, "HDMI"},
23404 {"BE_OUT", NULL, "DISPLAY_PORT"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070023405 {"BE_OUT", NULL, "DISPLAY_PORT1"},
Ralf Herzc8701f72018-06-20 11:37:35 +020023406 {"BE_OUT", NULL, "PRI_SPDIF_RX"},
23407 {"BE_OUT", NULL, "SEC_SPDIF_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023408 {"BE_OUT", NULL, "MI2S_RX"},
23409 {"BE_OUT", NULL, "QUAT_MI2S_RX"},
23410 {"BE_OUT", NULL, "QUIN_MI2S_RX"},
23411 {"BE_OUT", NULL, "TERT_MI2S_RX"},
23412 {"BE_OUT", NULL, "SEC_MI2S_RX"},
23413 {"BE_OUT", NULL, "SEC_MI2S_RX_SD1"},
23414 {"BE_OUT", NULL, "PRI_MI2S_RX"},
23415 {"BE_OUT", NULL, "INT0_MI2S_RX"},
23416 {"BE_OUT", NULL, "INT4_MI2S_RX"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023417 {"BE_OUT", NULL, "INT2_MI2S_RX"},
23418 {"BE_OUT", NULL, "INT3_MI2S_RX"},
23419 {"BE_OUT", NULL, "INT5_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023420 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
23421 {"BE_OUT", NULL, "INT_BT_A2DP_RX"},
23422 {"BE_OUT", NULL, "INT_FM_RX"},
23423 {"BE_OUT", NULL, "PCM_RX"},
23424 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
23425 {"BE_OUT", NULL, "AUX_PCM_RX"},
23426 {"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
23427 {"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
23428 {"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023429 {"BE_OUT", NULL, "QUIN_AUX_PCM_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023430 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
23431 {"BE_OUT", NULL, "INT_FM_RX"},
23432 {"BE_OUT", NULL, "PCM_RX"},
23433 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
23434 {"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
23435 {"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
23436 {"BE_OUT", NULL, "PRI_TDM_RX_0"},
23437 {"BE_OUT", NULL, "PRI_TDM_RX_1"},
23438 {"BE_OUT", NULL, "PRI_TDM_RX_2"},
23439 {"BE_OUT", NULL, "PRI_TDM_RX_3"},
23440 {"BE_OUT", NULL, "SEC_TDM_RX_0"},
23441 {"BE_OUT", NULL, "SEC_TDM_RX_1"},
23442 {"BE_OUT", NULL, "SEC_TDM_RX_2"},
23443 {"BE_OUT", NULL, "SEC_TDM_RX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070023444 {"BE_OUT", NULL, "SEC_TDM_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023445 {"BE_OUT", NULL, "TERT_TDM_RX_0"},
23446 {"BE_OUT", NULL, "TERT_TDM_RX_1"},
23447 {"BE_OUT", NULL, "TERT_TDM_RX_2"},
23448 {"BE_OUT", NULL, "TERT_TDM_RX_3"},
23449 {"BE_OUT", NULL, "TERT_TDM_RX_4"},
23450 {"BE_OUT", NULL, "QUAT_TDM_RX_0"},
23451 {"BE_OUT", NULL, "QUAT_TDM_RX_1"},
23452 {"BE_OUT", NULL, "QUAT_TDM_RX_2"},
23453 {"BE_OUT", NULL, "QUAT_TDM_RX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023454 {"BE_OUT", NULL, "QUIN_TDM_RX_0"},
23455 {"BE_OUT", NULL, "QUIN_TDM_RX_1"},
23456 {"BE_OUT", NULL, "QUIN_TDM_RX_2"},
23457 {"BE_OUT", NULL, "QUIN_TDM_RX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023458 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_0"},
23459 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023460 {"BE_OUT", NULL, "RX_CDC_DMA_RX_0"},
23461 {"BE_OUT", NULL, "RX_CDC_DMA_RX_1"},
23462 {"BE_OUT", NULL, "RX_CDC_DMA_RX_2"},
23463 {"BE_OUT", NULL, "RX_CDC_DMA_RX_3"},
23464 {"BE_OUT", NULL, "RX_CDC_DMA_RX_4"},
23465 {"BE_OUT", NULL, "RX_CDC_DMA_RX_5"},
23466 {"BE_OUT", NULL, "RX_CDC_DMA_RX_6"},
23467 {"BE_OUT", NULL, "RX_CDC_DMA_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023468
23469 {"PRI_I2S_TX", NULL, "BE_IN"},
23470 {"MI2S_TX", NULL, "BE_IN"},
23471 {"QUAT_MI2S_TX", NULL, "BE_IN"},
23472 {"QUIN_MI2S_TX", NULL, "BE_IN"},
23473 {"PRI_MI2S_TX", NULL, "BE_IN"},
23474 {"TERT_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023475 {"INT0_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023476 {"INT2_MI2S_TX", NULL, "BE_IN"},
23477 {"INT3_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023478 {"INT4_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023479 {"INT5_MI2S_TX", NULL, "BE_IN"},
23480 {"SEC_MI2S_TX", NULL, "BE_IN"},
23481 {"SENARY_MI2S_TX", NULL, "BE_IN" },
23482 {"SLIMBUS_0_TX", NULL, "BE_IN" },
23483 {"SLIMBUS_1_TX", NULL, "BE_IN" },
23484 {"SLIMBUS_3_TX", NULL, "BE_IN" },
23485 {"SLIMBUS_4_TX", NULL, "BE_IN" },
23486 {"SLIMBUS_5_TX", NULL, "BE_IN" },
23487 {"SLIMBUS_6_TX", NULL, "BE_IN" },
23488 {"SLIMBUS_7_TX", NULL, "BE_IN" },
23489 {"SLIMBUS_8_TX", NULL, "BE_IN" },
Surendar Karka3ef3d812018-09-28 18:52:35 +053023490 {"SLIMBUS_9_TX", NULL, "BE_IN" },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023491 {"USB_AUDIO_TX", NULL, "BE_IN" },
23492 {"INT_BT_SCO_TX", NULL, "BE_IN"},
23493 {"INT_FM_TX", NULL, "BE_IN"},
23494 {"PCM_TX", NULL, "BE_IN"},
23495 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
23496 {"BE_OUT", NULL, "STUB_RX"},
23497 {"STUB_TX", NULL, "BE_IN"},
23498 {"STUB_1_TX", NULL, "BE_IN"},
23499 {"BE_OUT", NULL, "AUX_PCM_RX"},
23500 {"AUX_PCM_TX", NULL, "BE_IN"},
23501 {"SEC_AUX_PCM_TX", NULL, "BE_IN"},
23502 {"TERT_AUX_PCM_TX", NULL, "BE_IN"},
23503 {"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053023504 {"QUIN_AUX_PCM_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023505 {"INCALL_RECORD_TX", NULL, "BE_IN"},
23506 {"INCALL_RECORD_RX", NULL, "BE_IN"},
23507 {"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
23508 {"SLIM0_RX_VI_FB_RCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023509 {"WSA_RX_0_VI_FB_LCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
23510 {"WSA_RX_0_VI_FB_RCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023511 {"PRI_MI2S_RX_VI_FB_MUX", "SENARY_TX", "SENARY_TX"},
23512 {"INT4_MI2S_RX_VI_FB_MONO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
23513 {"INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
23514 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_LCH_MUX"},
23515 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_RCH_MUX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023516 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_LCH_MUX"},
23517 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_RCH_MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023518 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_VI_FB_MUX"},
23519 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_MONO_CH_MUX"},
23520 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_STEREO_CH_MUX"},
23521 {"PRI_TDM_TX_0", NULL, "BE_IN"},
23522 {"PRI_TDM_TX_1", NULL, "BE_IN"},
23523 {"PRI_TDM_TX_2", NULL, "BE_IN"},
23524 {"PRI_TDM_TX_3", NULL, "BE_IN"},
23525 {"SEC_TDM_TX_0", NULL, "BE_IN"},
23526 {"SEC_TDM_TX_1", NULL, "BE_IN"},
23527 {"SEC_TDM_TX_2", NULL, "BE_IN"},
23528 {"SEC_TDM_TX_3", NULL, "BE_IN"},
23529 {"TERT_TDM_TX_0", NULL, "BE_IN"},
23530 {"TERT_TDM_TX_1", NULL, "BE_IN"},
23531 {"TERT_TDM_TX_2", NULL, "BE_IN"},
23532 {"TERT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenfdcc0982018-10-02 15:14:03 -070023533 {"TERT_TDM_TX_7", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023534 {"QUAT_TDM_TX_0", NULL, "BE_IN"},
23535 {"QUAT_TDM_TX_1", NULL, "BE_IN"},
23536 {"QUAT_TDM_TX_2", NULL, "BE_IN"},
23537 {"QUAT_TDM_TX_3", NULL, "BE_IN"},
Surendar Karkad47fda42018-05-20 19:21:10 +053023538 {"AFE_LOOPBACK_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053023539 {"QUIN_TDM_TX_0", NULL, "BE_IN"},
23540 {"QUIN_TDM_TX_1", NULL, "BE_IN"},
23541 {"QUIN_TDM_TX_2", NULL, "BE_IN"},
23542 {"QUIN_TDM_TX_3", NULL, "BE_IN"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023543 {"WSA_CDC_DMA_TX_0", NULL, "BE_IN"},
23544 {"WSA_CDC_DMA_TX_1", NULL, "BE_IN"},
23545 {"WSA_CDC_DMA_TX_2", NULL, "BE_IN"},
23546 {"VA_CDC_DMA_TX_0", NULL, "BE_IN"},
23547 {"VA_CDC_DMA_TX_1", NULL, "BE_IN"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080023548 {"VA_CDC_DMA_TX_2", NULL, "BE_IN"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023549 {"TX_CDC_DMA_TX_0", NULL, "BE_IN"},
23550 {"TX_CDC_DMA_TX_1", NULL, "BE_IN"},
23551 {"TX_CDC_DMA_TX_2", NULL, "BE_IN"},
23552 {"TX_CDC_DMA_TX_3", NULL, "BE_IN"},
23553 {"TX_CDC_DMA_TX_4", NULL, "BE_IN"},
23554 {"TX_CDC_DMA_TX_5", NULL, "BE_IN"},
Ralf Herzc8701f72018-06-20 11:37:35 +020023555 {"PRI_SPDIF_TX", NULL, "BE_IN"},
23556 {"SEC_SPDIF_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023557};
23558
23559static int msm_pcm_routing_hw_params(struct snd_pcm_substream *substream,
23560 struct snd_pcm_hw_params *params)
23561{
23562 struct snd_soc_pcm_runtime *rtd = substream->private_data;
23563 unsigned int be_id = rtd->dai_link->id;
23564
23565 if (be_id >= MSM_BACKEND_DAI_MAX) {
23566 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
23567 return -EINVAL;
23568 }
23569
23570 mutex_lock(&routing_lock);
23571 msm_bedais[be_id].sample_rate = params_rate(params);
23572 msm_bedais[be_id].channel = params_channels(params);
23573 msm_bedais[be_id].format = params_format(params);
23574 pr_debug("%s: BE Sample Rate (%d) format (%d) BE id %d\n",
23575 __func__, msm_bedais[be_id].sample_rate,
23576 msm_bedais[be_id].format, be_id);
23577 mutex_unlock(&routing_lock);
23578 return 0;
23579}
23580
23581static int msm_pcm_routing_close(struct snd_pcm_substream *substream)
23582{
23583 struct snd_soc_pcm_runtime *rtd = substream->private_data;
23584 unsigned int be_id = rtd->dai_link->id;
23585 int i, session_type, path_type, topology;
23586 struct msm_pcm_routing_bdai_data *bedai;
23587 struct msm_pcm_routing_fdai_data *fdai;
23588
23589 pr_debug("%s: substream->pcm->id:%s\n",
23590 __func__, substream->pcm->id);
23591
23592 if (be_id >= MSM_BACKEND_DAI_MAX) {
23593 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
23594 return -EINVAL;
23595 }
23596
23597 bedai = &msm_bedais[be_id];
23598 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
23599 0 : 1);
23600 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
23601 path_type = ADM_PATH_PLAYBACK;
23602 else
23603 path_type = ADM_PATH_LIVE_REC;
23604
23605 mutex_lock(&routing_lock);
23606 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
23607 if (!is_mm_lsm_fe_id(i))
23608 continue;
23609 fdai = &fe_dai_map[i][session_type];
23610 if (fdai->strm_id != INVALID_SESSION) {
23611 int idx;
23612 int port_id;
23613 unsigned long copp =
23614 session_copp_map[i][session_type][be_id];
23615 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
23616 if (test_bit(idx, &copp))
23617 break;
Vignesh Kulothungane59d3152018-10-10 14:19:59 -070023618
23619 if (idx >= MAX_COPPS_PER_PORT) {
23620 pr_debug("%s: copp idx is invalid, exiting\n",
23621 __func__);
23622 continue;
23623 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023624 fdai->be_srate = bedai->sample_rate;
Surendar Karkae7507512018-07-20 15:46:54 +053023625 port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023626 topology = adm_get_topology_for_port_copp_idx(port_id,
23627 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023628 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +053023629 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023630 pr_debug("%s: copp:%ld,idx bit fe:%d, type:%d,be:%d topology=0x%x\n",
23631 __func__, copp, i, session_type, be_id,
23632 topology);
23633 clear_bit(idx,
23634 &session_copp_map[i][session_type][be_id]);
23635 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023636 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053023637 msm_pcm_routing_deinit_pp(port_id,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023638 topology);
23639 }
23640 }
23641
23642 bedai->active = 0;
23643 bedai->sample_rate = 0;
23644 bedai->channel = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023645 mutex_unlock(&routing_lock);
23646
23647 return 0;
23648}
23649
23650static int msm_pcm_routing_prepare(struct snd_pcm_substream *substream)
23651{
23652 struct snd_soc_pcm_runtime *rtd = substream->private_data;
23653 unsigned int be_id = rtd->dai_link->id;
23654 int i, path_type, topology;
23655 int session_type = INVALID_SESSION;
23656 struct msm_pcm_routing_bdai_data *bedai;
23657 u32 channels, sample_rate;
23658 uint16_t bits_per_sample = 16, voc_path_type;
23659 struct msm_pcm_routing_fdai_data *fdai;
23660 u32 session_id;
23661 struct media_format_info voc_be_media_format;
23662 bool is_lsm;
23663
23664 pr_debug("%s: substream->pcm->id:%s\n",
23665 __func__, substream->pcm->id);
23666
23667 if (be_id >= MSM_BACKEND_DAI_MAX) {
23668 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
23669 return -EINVAL;
23670 }
23671
23672 bedai = &msm_bedais[be_id];
23673
23674 mutex_lock(&routing_lock);
23675 if (bedai->active == 1)
23676 goto done; /* Ignore prepare if back-end already active */
23677
23678 /* AFE port is not active at this point. However, still
23679 * go ahead setting active flag under the notion that
23680 * QDSP6 is able to handle ADM starting before AFE port
23681 * is started.
23682 */
23683 bedai->active = 1;
23684
23685 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
23686 if (!(is_mm_lsm_fe_id(i) &&
23687 route_check_fe_id_adm_support(i)))
23688 continue;
23689
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023690 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
23691 SESSION_TYPE_RX : SESSION_TYPE_TX;
23692 fdai = &fe_dai_map[i][session_type];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023693 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023694 if (fdai->passthr_mode != LEGACY_PCM)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023695 path_type = ADM_PATH_COMPRESSED_RX;
23696 else
23697 path_type = ADM_PATH_PLAYBACK;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023698 } else {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023699 if ((fdai->passthr_mode != LEGACY_PCM) &&
23700 (fdai->passthr_mode != LISTEN))
Ralf Herzc8701f72018-06-20 11:37:35 +020023701 path_type = ADM_PATH_COMPRESSED_TX;
23702 else
23703 path_type = ADM_PATH_LIVE_REC;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023704 }
23705
23706 is_lsm = (i >= MSM_FRONTEND_DAI_LSM1) &&
23707 (i <= MSM_FRONTEND_DAI_LSM8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023708 if (fdai->strm_id != INVALID_SESSION) {
23709 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +053023710 int port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023711
23712 if (session_type == SESSION_TYPE_TX &&
23713 fdai->be_srate &&
23714 (fdai->be_srate != bedai->sample_rate)) {
23715 pr_debug("%s: flush strm %d diff BE rates\n",
23716 __func__,
23717 fdai->strm_id);
23718
23719 if (fdai->event_info.event_func)
23720 fdai->event_info.event_func(
23721 MSM_PCM_RT_EVT_BUF_RECFG,
23722 fdai->event_info.priv_data);
23723 fdai->be_srate = 0; /* might not need it */
23724 }
23725 bits_per_sample = msm_routing_get_bit_width(
23726 bedai->format);
23727
23728 app_type =
23729 fe_dai_app_type_cfg[i][session_type][be_id].app_type;
23730 if (app_type && is_lsm) {
23731 app_type_idx =
23732 msm_pcm_routing_get_lsm_app_type_idx(app_type);
23733 sample_rate =
23734 fe_dai_app_type_cfg[i][session_type][be_id]
23735 .sample_rate;
23736 bits_per_sample =
23737 lsm_app_type_cfg[app_type_idx].bit_width;
23738 } else if (app_type) {
23739 app_type_idx =
23740 msm_pcm_routing_get_app_type_idx(app_type);
23741 sample_rate =
23742 fe_dai_app_type_cfg[i][session_type]
23743 [be_id].sample_rate;
23744 bits_per_sample =
23745 app_type_cfg[app_type_idx].bit_width;
23746 } else
23747 sample_rate = bedai->sample_rate;
23748 /*
23749 * check if ADM needs to be configured with different
23750 * channel mapping than backend
23751 */
23752 if (!bedai->adm_override_ch)
23753 channels = bedai->channel;
23754 else
23755 channels = bedai->adm_override_ch;
23756 acdb_dev_id =
23757 fe_dai_app_type_cfg[i][session_type][be_id].acdb_dev_id;
23758 topology = msm_routing_get_adm_topology(i, session_type,
23759 be_id);
Ralf Herzc8701f72018-06-20 11:37:35 +020023760
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023761 if ((fdai->passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
23762 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_GEN)
23763 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_IEC61937))
Ralf Herzc8701f72018-06-20 11:37:35 +020023764 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
23765
Surendar Karkae7507512018-07-20 15:46:54 +053023766 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023767 sample_rate, channels, topology,
23768 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +053023769 app_type, acdb_dev_id,
23770 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023771 if ((copp_idx < 0) ||
23772 (copp_idx >= MAX_COPPS_PER_PORT)) {
23773 pr_err("%s: adm open failed\n", __func__);
23774 mutex_unlock(&routing_lock);
23775 return -EINVAL;
23776 }
23777 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
23778 __func__, i, session_type, be_id);
23779 set_bit(copp_idx,
23780 &session_copp_map[i][session_type][be_id]);
23781
23782 if (msm_is_resample_needed(
23783 sample_rate,
23784 bedai->sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +053023785 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023786 bedai->sample_rate);
23787
23788 msm_pcm_routing_build_matrix(i, session_type, path_type,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023789 fdai->perf_mode, fdai->passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023790 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023791 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053023792 msm_pcm_routing_cfg_pp(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023793 topology, channels);
23794 }
23795 }
23796
23797 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
23798 session_id = msm_pcm_routing_get_voc_sessionid(i);
23799 if (session_id) {
23800 pr_debug("%s voice session_id: 0x%x\n", __func__,
23801 session_id);
23802
23803 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
23804 voc_path_type = RX_PATH;
23805 else
23806 voc_path_type = TX_PATH;
23807
23808 voc_set_route_flag(session_id, voc_path_type, 1);
23809
23810 memset(&voc_be_media_format, 0,
23811 sizeof(struct media_format_info));
23812
23813 voc_be_media_format.port_id = bedai->port_id;
23814 voc_be_media_format.num_channels = bedai->channel;
23815 voc_be_media_format.sample_rate = bedai->sample_rate;
23816 voc_be_media_format.bits_per_sample = bedai->format;
23817 /* Defaulting this to 1 for voice call usecases */
23818 voc_be_media_format.channel_mapping[0] = 1;
23819
23820 voc_set_device_config(session_id, voc_path_type,
23821 &voc_be_media_format);
23822
23823 if (voc_get_route_flag(session_id, RX_PATH) &&
23824 voc_get_route_flag(session_id, TX_PATH))
23825 voc_enable_device(session_id);
23826 }
23827 }
23828
23829 /* Check if backend is an external ec ref port and set as needed */
23830 if (unlikely(bedai->port_id == voc_get_ext_ec_ref_port_id())) {
23831
23832 memset(&voc_be_media_format, 0,
23833 sizeof(struct media_format_info));
23834
23835 /* Get format info for ec ref port from msm_bedais[] */
23836 voc_be_media_format.port_id = bedai->port_id;
23837 voc_be_media_format.num_channels = bedai->channel;
23838 voc_be_media_format.bits_per_sample = bedai->format;
23839 voc_be_media_format.sample_rate = bedai->sample_rate;
23840 /* Defaulting this to 1 for voice call usecases */
23841 voc_be_media_format.channel_mapping[0] = 1;
23842 voc_set_ext_ec_ref_media_fmt_info(&voc_be_media_format);
23843 pr_debug("%s: EC Ref media format info set to port_id=%d, num_channels=%d, bits_per_sample=%d, sample_rate=%d\n",
23844 __func__, voc_be_media_format.port_id,
23845 voc_be_media_format.num_channels,
23846 voc_be_media_format.bits_per_sample,
23847 voc_be_media_format.sample_rate);
23848 }
23849
23850done:
23851 mutex_unlock(&routing_lock);
23852
23853 return 0;
23854}
23855
23856static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
23857 int fe_id)
23858{
23859 int index, topo_id, be_idx;
23860 unsigned long pp_config = 0;
23861 bool mute_on;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023862 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023863 bool compr_passthr_mode = true;
23864
23865 pr_debug("%s: port_id %d, copp_idx %d\n", __func__, port_id, copp_idx);
23866
23867 if (port_id != HDMI_RX && port_id != DISPLAY_PORT_RX) {
23868 pr_err("%s: Device pp params on invalid port %d\n",
23869 __func__, port_id);
23870 return -EINVAL;
23871 }
23872
23873 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
23874 if (port_id == msm_bedais[be_idx].port_id)
23875 break;
23876 }
23877
23878 if (be_idx >= MSM_BACKEND_DAI_MAX) {
23879 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
23880 return -EINVAL;
23881 }
23882
23883 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
23884 if (msm_bedais_pp_params[index].port_id == port_id)
23885 break;
23886 }
23887 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
23888 pr_err("%s: Invalid backend pp params index %d\n",
23889 __func__, index);
23890 return -EINVAL;
23891 }
23892
23893 topo_id = adm_get_topology_for_port_copp_idx(port_id, copp_idx);
23894 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY) {
23895 pr_err("%s: Invalid passthrough topology 0x%x\n",
23896 __func__, topo_id);
23897 return -EINVAL;
23898 }
23899
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023900 session_type =
23901 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
23902 SESSION_TYPE_RX : SESSION_TYPE_TX;
23903
23904 if ((fe_dai_map[fe_id][session_type].passthr_mode == LEGACY_PCM) ||
23905 (fe_dai_map[fe_id][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023906 compr_passthr_mode = false;
23907
23908 pp_config = msm_bedais_pp_params[index].pp_params_config;
23909 if (test_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config)) {
23910 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
23911 clear_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config);
23912 mute_on = msm_bedais_pp_params[index].mute_on;
23913 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23914 adm_send_compressed_device_mute(port_id,
23915 copp_idx,
23916 mute_on);
23917 }
23918 if (test_bit(ADM_PP_PARAM_LATENCY_BIT, &pp_config)) {
23919 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
23920 clear_bit(ADM_PP_PARAM_LATENCY_BIT,
23921 &pp_config);
23922 latency = msm_bedais_pp_params[index].latency;
23923 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23924 adm_send_compressed_device_latency(port_id,
23925 copp_idx,
23926 latency);
23927 }
23928 return 0;
23929}
23930
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023931static uint32_t msm_routing_get_topology(size_t data_size, void *data)
23932{
23933 uint32_t topology = NULL_COPP_TOPOLOGY;
23934 void *cal_info = NULL;
23935 uint32_t size = 0;
23936
23937 /* Retrieve cal_info size from cal data*/
23938 size = data_size - sizeof(struct audio_cal_type_basic);
23939 cal_info = kzalloc(size, GFP_KERNEL);
23940
23941 if (!cal_info)
23942 goto done;
23943
23944 memcpy(cal_info,
23945 ((uint8_t *)data + sizeof(struct audio_cal_type_basic)), size);
23946
23947 topology = ((struct audio_cal_info_adm_top *)cal_info)->topology;
23948 kfree(cal_info);
23949 cal_info = NULL;
23950
23951done:
23952 pr_debug("%s: Using topology %d\n", __func__, topology);
23953
23954 return topology;
23955}
23956
23957static void msm_routing_load_topology(size_t data_size, void *data)
23958{
23959 uint32_t topology_id;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053023960 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023961
23962 topology_id = msm_routing_get_topology(data_size, data);
23963 if (topology_id != NULL_COPP_TOPOLOGY)
23964 ret = q6core_load_unload_topo_modules(topology_id,
23965 CORE_LOAD_TOPOLOGY);
23966 if (ret < 0)
23967 pr_debug("%s %d load topology failed\n",
23968 __func__, topology_id);
23969
23970}
23971
23972static void msm_routing_unload_topology(uint32_t topology_id)
23973{
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053023974 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023975
23976 if (topology_id != NULL_COPP_TOPOLOGY)
23977 ret = q6core_load_unload_topo_modules(topology_id,
23978 CORE_UNLOAD_TOPOLOGY);
23979 if (ret < 0)
23980 pr_debug("%s %d unload topology failed\n",
23981 __func__, topology_id);
23982
23983}
23984
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023985static int msm_routing_put_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
23986 struct snd_ctl_elem_value *ucontrol)
23987{
23988 int pp_id = ucontrol->value.integer.value[0];
23989 int port_id = 0;
23990 int index, be_idx, i, topo_id, idx;
23991 bool mute;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023992 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023993 bool compr_passthr_mode = true;
23994
23995 pr_debug("%s: pp_id: 0x%x\n", __func__, pp_id);
23996
23997 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
23998 port_id = msm_bedais[be_idx].port_id;
23999 if (port_id == HDMI_RX || port_id == DISPLAY_PORT_RX)
24000 break;
24001 }
24002
24003 if (be_idx >= MSM_BACKEND_DAI_MAX) {
24004 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
24005 return -EINVAL;
24006 }
24007
24008 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
24009 if (msm_bedais_pp_params[index].port_id == port_id)
24010 break;
24011 }
24012 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
24013 pr_err("%s: Invalid pp params backend index %d\n",
24014 __func__, index);
24015 return -EINVAL;
24016 }
24017
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053024018 session_type =
24019 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
24020 SESSION_TYPE_RX : SESSION_TYPE_TX;
24021
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024022 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
24023 MSM_FRONTEND_DAI_MM_SIZE) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053024024 if ((fe_dai_map[i][session_type].passthr_mode == LEGACY_PCM) ||
24025 (fe_dai_map[i][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024026 compr_passthr_mode = false;
24027
24028 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
24029 unsigned long copp =
24030 session_copp_map[i]
24031 [SESSION_TYPE_RX][be_idx];
24032 if (!test_bit(idx, &copp))
24033 continue;
24034 topo_id = adm_get_topology_for_port_copp_idx(port_id,
24035 idx);
24036 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY)
24037 continue;
24038 pr_debug("%s: port: 0x%x, copp %ld, be active: %d, passt: %d\n",
24039 __func__, port_id, copp, msm_bedais[be_idx].active,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053024040 fe_dai_map[i][session_type].passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024041 switch (pp_id) {
24042 case ADM_PP_PARAM_MUTE_ID:
24043 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
24044 mute = ucontrol->value.integer.value[1] ? true : false;
24045 msm_bedais_pp_params[index].mute_on = mute;
24046 set_bit(ADM_PP_PARAM_MUTE_BIT,
24047 &msm_bedais_pp_params[index].pp_params_config);
24048 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
24049 adm_send_compressed_device_mute(port_id,
24050 idx, mute);
24051 break;
24052 case ADM_PP_PARAM_LATENCY_ID:
24053 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
24054 msm_bedais_pp_params[index].latency =
24055 ucontrol->value.integer.value[1];
24056 set_bit(ADM_PP_PARAM_LATENCY_BIT,
24057 &msm_bedais_pp_params[index].pp_params_config);
24058 latency = msm_bedais_pp_params[index].latency =
24059 ucontrol->value.integer.value[1];
24060 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
24061 adm_send_compressed_device_latency(port_id,
24062 idx, latency);
24063 break;
24064 default:
24065 pr_info("%s, device pp param %d not supported\n",
24066 __func__, pp_id);
24067 break;
24068 }
24069 }
24070 }
24071 return 0;
24072}
24073
24074static int msm_routing_get_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
24075 struct snd_ctl_elem_value *ucontrol)
24076{
24077 pr_debug("%s:msm_routing_get_device_pp_params_mixer", __func__);
24078 return 0;
24079}
24080
24081static const struct snd_kcontrol_new device_pp_params_mixer_controls[] = {
24082 SOC_SINGLE_MULTI_EXT("Device PP Params", SND_SOC_NOPM, 0, 0xFFFFFFFF,
24083 0, 3, msm_routing_get_device_pp_params_mixer,
24084 msm_routing_put_device_pp_params_mixer),
24085};
24086
24087static int msm_aptx_dec_license_control_get(struct snd_kcontrol *kcontrol,
24088 struct snd_ctl_elem_value *ucontrol)
24089{
24090 ucontrol->value.integer.value[0] =
24091 core_get_license_status(ASM_MEDIA_FMT_APTX);
24092 pr_debug("%s: status %ld\n", __func__,
24093 ucontrol->value.integer.value[0]);
24094 return 0;
24095}
24096
24097static int msm_aptx_dec_license_control_put(struct snd_kcontrol *kcontrol,
24098 struct snd_ctl_elem_value *ucontrol)
24099{
24100 int32_t status = 0;
24101
24102 status = core_set_license(ucontrol->value.integer.value[0],
24103 APTX_CLASSIC_DEC_LICENSE_ID);
24104 pr_debug("%s: status %d\n", __func__, status);
24105 return status;
24106}
24107
24108static const struct snd_kcontrol_new aptx_dec_license_controls[] = {
24109 SOC_SINGLE_EXT("APTX Dec License", SND_SOC_NOPM, 0,
24110 0xFFFF, 0, msm_aptx_dec_license_control_get,
24111 msm_aptx_dec_license_control_put),
24112};
24113
24114static int msm_routing_be_dai_name_table_info(struct snd_kcontrol *kcontrol,
24115 struct snd_ctl_elem_info *uinfo)
24116{
24117 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
24118 uinfo->count = sizeof(be_dai_name_table);
24119 return 0;
24120}
24121
24122static int msm_routing_be_dai_name_table_tlv_get(struct snd_kcontrol *kcontrol,
24123 unsigned int __user *bytes,
24124 unsigned int size)
24125{
24126 int i;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053024127 int ret = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024128
24129 if (size < sizeof(be_dai_name_table)) {
24130 pr_err("%s: invalid size %d requested, returning\n",
24131 __func__, size);
24132 ret = -EINVAL;
24133 goto done;
24134 }
24135
24136 /*
24137 * Fill be_dai_name_table from msm_bedais table to reduce code changes
24138 * needed when adding new backends
24139 */
24140 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
24141 be_dai_name_table[i].be_id = i;
24142 strlcpy(be_dai_name_table[i].be_name,
24143 msm_bedais[i].name,
24144 LPASS_BE_NAME_MAX_LENGTH);
24145 }
24146
24147 ret = copy_to_user(bytes, &be_dai_name_table,
24148 sizeof(be_dai_name_table));
24149 if (ret) {
24150 pr_err("%s: failed to copy be_dai_name_table\n", __func__);
24151 ret = -EFAULT;
24152 }
24153
24154done:
24155 return ret;
24156}
24157
24158static const struct snd_kcontrol_new
24159 msm_routing_be_dai_name_table_mixer_controls[] = {
24160 {
24161 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
24162 SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
24163 .info = msm_routing_be_dai_name_table_info,
24164 .name = "Backend DAI Name Table",
24165 .tlv.c = snd_soc_bytes_tlv_callback,
24166 .private_value = (unsigned long) &(struct soc_bytes_ext) {
24167 .max = sizeof(be_dai_name_table),
24168 .get = msm_routing_be_dai_name_table_tlv_get,
24169 }
24170 },
24171};
24172
24173static int msm_routing_stereo_channel_reverse_control_get(
24174 struct snd_kcontrol *kcontrol,
24175 struct snd_ctl_elem_value *ucontrol)
24176{
24177 ucontrol->value.integer.value[0] = swap_ch;
24178 pr_debug("%s: Swap channel value: %ld\n", __func__,
24179 ucontrol->value.integer.value[0]);
24180 return 0;
24181}
24182
24183static int msm_routing_stereo_channel_reverse_control_put(
24184 struct snd_kcontrol *kcontrol,
24185 struct snd_ctl_elem_value *ucontrol)
24186{
24187 int i, idx, be_index, port_id;
24188 int ret = 0;
24189 unsigned long copp;
24190
24191 pr_debug("%s Swap channel value:%ld\n", __func__,
24192 ucontrol->value.integer.value[0]);
24193
24194 swap_ch = ucontrol->value.integer.value[0];
24195
24196 mutex_lock(&routing_lock);
24197 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
24198 port_id = msm_bedais[be_index].port_id;
24199 if (!msm_bedais[be_index].active)
24200 continue;
24201
24202 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
24203 MSM_FRONTEND_DAI_MM_SIZE) {
24204 copp = session_copp_map[i][SESSION_TYPE_RX][be_index];
24205 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
24206 if (!test_bit(idx, &copp))
24207 continue;
24208
24209 pr_debug("%s: swap channel control of portid:%d, coppid:%d\n",
24210 __func__, port_id, idx);
24211 ret = adm_swap_speaker_channels(
24212 port_id, idx,
24213 msm_bedais[be_index].sample_rate,
24214 swap_ch);
24215 if (ret) {
24216 pr_err("%s:Swap_channel failed, err=%d\n",
24217 __func__, ret);
24218 goto done;
24219 }
24220 }
24221 }
24222 }
24223done:
24224 mutex_unlock(&routing_lock);
24225 return ret;
24226}
24227
24228static const struct snd_kcontrol_new stereo_channel_reverse_control[] = {
24229 SOC_SINGLE_EXT("Swap channel", SND_SOC_NOPM, 0,
24230 1, 0, msm_routing_stereo_channel_reverse_control_get,
24231 msm_routing_stereo_channel_reverse_control_put),
24232};
24233
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080024234static int msm_routing_instance_id_support_info(struct snd_kcontrol *kcontrol,
24235 struct snd_ctl_elem_info *uinfo)
24236{
24237 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
24238 uinfo->count = 1;
24239 return 0;
24240}
24241
24242static int msm_routing_instance_id_support_put(
24243 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
24244{
24245 bool supported = ucontrol->value.integer.value[0] ? true : false;
24246
24247 q6common_update_instance_id_support(supported);
24248 return 0;
24249}
24250
24251static int msm_routing_instance_id_support_get(
24252 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
24253{
24254 bool supported = false;
24255
24256 supported = q6common_is_instance_id_supported();
24257 ucontrol->value.integer.value[0] = supported ? 1 : 0;
24258
24259 return 0;
24260}
24261
24262static const struct snd_kcontrol_new
24263 msm_routing_feature_support_mixer_controls[] = {
24264 {
24265 .access = SNDRV_CTL_ELEM_ACCESS_READ |
24266 SNDRV_CTL_ELEM_ACCESS_WRITE,
24267 .info = msm_routing_instance_id_support_info,
24268 .name = "Instance ID Support",
24269 .put = msm_routing_instance_id_support_put,
24270 .get = msm_routing_instance_id_support_get,
24271 },
24272};
24273
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024274static const struct snd_pcm_ops msm_routing_pcm_ops = {
24275 .hw_params = msm_pcm_routing_hw_params,
24276 .close = msm_pcm_routing_close,
24277 .prepare = msm_pcm_routing_prepare,
24278};
24279
24280/* Not used but frame seems to require it */
Meng Wangee084a02018-09-04 16:11:58 +080024281static int msm_routing_probe(struct snd_soc_component *component)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024282{
Meng Wangee084a02018-09-04 16:11:58 +080024283 snd_soc_dapm_new_controls(&component->dapm, msm_qdsp6_widgets,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024284 ARRAY_SIZE(msm_qdsp6_widgets));
Meng Wangee084a02018-09-04 16:11:58 +080024285 snd_soc_dapm_add_routes(&component->dapm, intercon,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024286 ARRAY_SIZE(intercon));
24287
Meng Wangee084a02018-09-04 16:11:58 +080024288 snd_soc_dapm_new_widgets(component->dapm.card);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024289
Meng Wangee084a02018-09-04 16:11:58 +080024290 snd_soc_add_component_controls(component, lsm_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024291 ARRAY_SIZE(lsm_controls));
24292
Meng Wangee084a02018-09-04 16:11:58 +080024293 snd_soc_add_component_controls(component, aanc_slim_0_rx_mux,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024294 ARRAY_SIZE(aanc_slim_0_rx_mux));
24295
Meng Wangee084a02018-09-04 16:11:58 +080024296 snd_soc_add_component_controls(component, aanc_noise_level,
Sudheer Papothic07b37a2018-05-04 05:56:47 +053024297 ARRAY_SIZE(aanc_noise_level));
24298
Meng Wangee084a02018-09-04 16:11:58 +080024299 snd_soc_add_component_controls(component, msm_voc_session_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024300 ARRAY_SIZE(msm_voc_session_controls));
24301
Meng Wangee084a02018-09-04 16:11:58 +080024302 snd_soc_add_component_controls(component, app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024303 ARRAY_SIZE(app_type_cfg_controls));
24304
Meng Wangee084a02018-09-04 16:11:58 +080024305 snd_soc_add_component_controls(component, lsm_app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024306 ARRAY_SIZE(lsm_app_type_cfg_controls));
24307
Meng Wangee084a02018-09-04 16:11:58 +080024308 snd_soc_add_component_controls(component, module_cfg_controls,
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070024309 ARRAY_SIZE(module_cfg_controls));
24310
Meng Wangee084a02018-09-04 16:11:58 +080024311 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024312 stereo_to_custom_stereo_controls,
24313 ARRAY_SIZE(stereo_to_custom_stereo_controls));
24314
Meng Wangee084a02018-09-04 16:11:58 +080024315 snd_soc_add_component_controls(component, ec_ref_param_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024316 ARRAY_SIZE(ec_ref_param_controls));
24317
Meng Wangee084a02018-09-04 16:11:58 +080024318 snd_soc_add_component_controls(component, channel_mixer_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024319 ARRAY_SIZE(channel_mixer_controls));
24320
Meng Wangee084a02018-09-04 16:11:58 +080024321 msm_qti_pp_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024322
Meng Wangee084a02018-09-04 16:11:58 +080024323 msm_dts_srs_tm_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024324
Meng Wangee084a02018-09-04 16:11:58 +080024325 msm_dolby_dap_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024326
Meng Wangee084a02018-09-04 16:11:58 +080024327 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024328 use_ds1_or_ds2_controls,
24329 ARRAY_SIZE(use_ds1_or_ds2_controls));
24330
Meng Wangee084a02018-09-04 16:11:58 +080024331 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024332 device_pp_params_mixer_controls,
24333 ARRAY_SIZE(device_pp_params_mixer_controls));
24334
Meng Wangee084a02018-09-04 16:11:58 +080024335 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024336 msm_routing_be_dai_name_table_mixer_controls,
24337 ARRAY_SIZE(msm_routing_be_dai_name_table_mixer_controls));
24338
Meng Wangee084a02018-09-04 16:11:58 +080024339 snd_soc_add_component_controls(component, msm_source_tracking_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024340 ARRAY_SIZE(msm_source_tracking_controls));
Meng Wangee084a02018-09-04 16:11:58 +080024341 snd_soc_add_component_controls(component, adm_channel_config_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024342 ARRAY_SIZE(adm_channel_config_controls));
24343
Meng Wangee084a02018-09-04 16:11:58 +080024344 snd_soc_add_component_controls(component, aptx_dec_license_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024345 ARRAY_SIZE(aptx_dec_license_controls));
Meng Wangee084a02018-09-04 16:11:58 +080024346 snd_soc_add_component_controls(component,
24347 stereo_channel_reverse_control,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024348 ARRAY_SIZE(stereo_channel_reverse_control));
Meng Wangee084a02018-09-04 16:11:58 +080024349 snd_soc_add_component_controls(
24350 component, msm_routing_feature_support_mixer_controls,
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080024351 ARRAY_SIZE(msm_routing_feature_support_mixer_controls));
24352
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024353 return 0;
24354}
24355
24356int msm_routing_pcm_new(struct snd_soc_pcm_runtime *runtime)
24357{
24358 return msm_pcm_routing_hwdep_new(runtime, msm_bedais);
24359}
24360
24361void msm_routing_pcm_free(struct snd_pcm *pcm)
24362{
24363 msm_pcm_routing_hwdep_free(pcm);
24364}
24365
Meng Wangee084a02018-09-04 16:11:58 +080024366static struct snd_soc_component_driver msm_soc_routing_component = {
24367 .name = DRV_NAME,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024368 .ops = &msm_routing_pcm_ops,
24369 .probe = msm_routing_probe,
24370 .pcm_new = msm_routing_pcm_new,
24371 .pcm_free = msm_routing_pcm_free,
24372};
24373
24374static int msm_routing_pcm_probe(struct platform_device *pdev)
24375{
24376
24377 dev_dbg(&pdev->dev, "dev name %s\n", dev_name(&pdev->dev));
Meng Wangee084a02018-09-04 16:11:58 +080024378 return snd_soc_register_component(&pdev->dev,
24379 &msm_soc_routing_component,
24380 NULL, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024381}
24382
24383static int msm_routing_pcm_remove(struct platform_device *pdev)
24384{
Meng Wangee084a02018-09-04 16:11:58 +080024385 snd_soc_unregister_component(&pdev->dev);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024386 return 0;
24387}
24388
24389static const struct of_device_id msm_pcm_routing_dt_match[] = {
24390 {.compatible = "qcom,msm-pcm-routing"},
24391 {}
24392};
24393MODULE_DEVICE_TABLE(of, msm_pcm_routing_dt_match);
24394
24395static struct platform_driver msm_routing_pcm_driver = {
24396 .driver = {
24397 .name = "msm-pcm-routing",
24398 .owner = THIS_MODULE,
24399 .of_match_table = msm_pcm_routing_dt_match,
24400 },
24401 .probe = msm_routing_pcm_probe,
24402 .remove = msm_routing_pcm_remove,
24403};
24404
24405int msm_routing_check_backend_enabled(int fedai_id)
24406{
24407 int i;
24408
24409 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
24410 /* bad ID assigned in machine driver */
24411 pr_err("%s: bad MM ID\n", __func__);
24412 return 0;
24413 }
24414 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
24415 if (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))
24416 return msm_bedais[i].active;
24417 }
24418 return 0;
24419}
24420
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024421static int get_cal_type_index(int32_t cal_type)
24422{
24423 int ret = -EINVAL;
24424
24425 switch (cal_type) {
24426 case ADM_TOPOLOGY_CAL_TYPE:
24427 ret = ADM_TOPOLOGY_CAL_TYPE_IDX;
24428 break;
24429 case ADM_LSM_TOPOLOGY_CAL_TYPE:
24430 ret = ADM_LSM_TOPOLOGY_CAL_TYPE_IDX;
24431 break;
24432 default:
24433 pr_err("%s: Invalid cal type %d\n", __func__, cal_type);
24434 }
24435 return ret;
24436}
24437
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024438static int msm_routing_set_cal(int32_t cal_type,
24439 size_t data_size, void *data)
24440{
24441 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024442 int cal_index;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024443 pr_debug("%s\n", __func__);
24444
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024445 cal_index = get_cal_type_index(cal_type);
24446 if (cal_index < 0) {
24447 pr_err("%s: Could not get cal index %d\n",
24448 __func__, cal_index);
24449 ret = -EINVAL;
24450 goto done;
24451 }
24452
24453 ret = cal_utils_set_cal(data_size, data, cal_data[cal_index], 0, NULL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024454 if (ret < 0) {
24455 pr_err("%s: cal_utils_set_cal failed, ret = %d, cal type = %d!\n",
24456 __func__, ret, cal_type);
24457 ret = -EINVAL;
24458 goto done;
24459 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070024460 /* Pre-load if it is ADM topology */
24461 if ((cal_index == ADM_TOPOLOGY_CAL_TYPE_IDX) ||
24462 (cal_index == ADM_LSM_TOPOLOGY_CAL_TYPE_IDX)) {
24463 msm_routing_load_topology(data_size, data);
24464 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024465done:
24466 return ret;
24467}
24468
24469static void msm_routing_delete_cal_data(void)
24470{
24471 pr_debug("%s\n", __func__);
24472
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024473 cal_utils_destroy_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024474}
24475
24476static int msm_routing_init_cal_data(void)
24477{
24478 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024479 struct cal_type_info cal_type_info[] = {
24480 {{ADM_TOPOLOGY_CAL_TYPE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024481 {NULL, NULL, NULL,
24482 msm_routing_set_cal, NULL, NULL} },
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024483 {NULL, NULL, cal_utils_match_buf_num} },
24484
24485 {{ADM_LSM_TOPOLOGY_CAL_TYPE,
24486 {NULL, NULL, NULL,
24487 msm_routing_set_cal, NULL, NULL} },
24488 {NULL, NULL, cal_utils_match_buf_num} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024489 };
24490 pr_debug("%s\n", __func__);
24491
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024492 ret = cal_utils_create_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0],
24493 &cal_type_info[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024494 if (ret < 0) {
24495 pr_err("%s: could not create cal type!\n",
24496 __func__);
24497 ret = -EINVAL;
24498 goto err;
24499 }
24500
24501 return ret;
24502err:
24503 msm_routing_delete_cal_data();
24504 return ret;
24505}
24506
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053024507int __init msm_soc_routing_platform_init(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024508{
24509 mutex_init(&routing_lock);
24510 if (msm_routing_init_cal_data())
24511 pr_err("%s: could not init cal data!\n", __func__);
24512
24513 afe_set_routing_callback(
24514 (routing_cb)msm_pcm_get_dev_acdb_id_by_port_id);
24515
24516 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
24517 memset(&last_be_id_configured, 0, sizeof(last_be_id_configured));
24518
24519 return platform_driver_register(&msm_routing_pcm_driver);
24520}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024521
Asish Bhattacharya5faacb32017-12-04 17:23:15 +053024522void msm_soc_routing_platform_exit(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024523{
24524 msm_routing_delete_cal_data();
24525 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
24526 mutex_destroy(&routing_lock);
24527 platform_driver_unregister(&msm_routing_pcm_driver);
24528}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024529
24530MODULE_DESCRIPTION("MSM routing platform driver");
24531MODULE_LICENSE("GPL v2");