blob: 5a75609149d0eba2b38f82756eb3cfe58b9c07fb [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;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018091 } else {
18092 pr_err("%s: mixer ctl name=%s, could not derive valid port id\n",
18093 __func__, kcontrol->id.name);
18094
18095 ret = -EINVAL;
18096 goto done;
18097 }
18098 pr_debug("%s: mixer ctl name=%s, derived port_id=%d\n",
18099 __func__, kcontrol->id.name, *port_id);
18100
18101done:
18102 return ret;
18103}
18104
18105static int msm_audio_sound_focus_put(struct snd_kcontrol *kcontrol,
18106 struct snd_ctl_elem_value *ucontrol)
18107{
18108 int ret = 0;
18109 struct sound_focus_param soundFocusData;
18110 int port_id, copp_idx;
18111
18112 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
18113 "Sound Focus Audio Tx ", &port_id);
18114 if (ret != 0) {
18115 pr_err("%s: Error in deriving port id, err=%d\n",
18116 __func__, ret);
18117
18118 ret = -EINVAL;
18119 goto done;
18120 }
18121
18122 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
18123 &copp_idx);
18124 if (ret) {
18125 pr_err("%s: Could not get copp idx for port_id=%d\n",
18126 __func__, port_id);
18127
18128 ret = -EINVAL;
18129 goto done;
18130 }
18131
18132 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
18133 sizeof(struct sound_focus_param));
18134
18135 ret = adm_set_sound_focus(port_id, copp_idx, soundFocusData);
18136 if (ret) {
18137 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
18138 __func__, ret);
18139
18140 ret = -EINVAL;
18141 goto done;
18142 }
18143
18144done:
18145 return ret;
18146}
18147
18148static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
18149 struct snd_ctl_elem_value *ucontrol)
18150{
18151 int ret = 0;
18152 struct sound_focus_param soundFocusData;
18153 int port_id, copp_idx;
18154
18155 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
18156 "Sound Focus Audio Tx ", &port_id);
18157 if (ret) {
18158 pr_err("%s: Error in deriving port id, err=%d\n",
18159 __func__, ret);
18160
18161 ret = -EINVAL;
18162 goto done;
18163 }
18164
18165 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
18166 &copp_idx);
18167 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070018168 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018169 __func__, port_id);
18170
18171 ret = -EINVAL;
18172 goto done;
18173 }
18174
18175 ret = adm_get_sound_focus(port_id, copp_idx, &soundFocusData);
18176 if (ret) {
18177 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
18178 __func__, ret);
18179
18180 ret = -EINVAL;
18181 goto done;
18182 }
18183
18184 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
18185 sizeof(struct sound_focus_param));
18186
18187done:
18188 return ret;
18189}
18190
18191static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
18192 struct snd_ctl_elem_value *ucontrol)
18193{
18194 int ret = 0;
18195 struct source_tracking_param sourceTrackingData;
18196 int port_id, copp_idx;
18197
18198 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
18199 "Source Tracking Audio Tx ", &port_id);
18200 if (ret) {
18201 pr_err("%s: Error in deriving port id, err=%d\n",
18202 __func__, ret);
18203
18204 ret = -EINVAL;
18205 goto done;
18206 }
18207
18208 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
18209 &copp_idx);
18210 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070018211 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018212 __func__, port_id);
18213
18214 ret = -EINVAL;
18215 goto done;
18216 }
18217
18218 ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
18219 if (ret) {
18220 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
18221 __func__, ret);
18222
18223 ret = -EINVAL;
18224 goto done;
18225 }
18226
18227 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
18228 sizeof(struct source_tracking_param));
18229
18230done:
18231 return ret;
18232}
18233
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053018234static int msm_doa_tracking_mon_info(struct snd_kcontrol *kcontrol,
18235 struct snd_ctl_elem_info *uinfo)
18236{
18237 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
18238 uinfo->count = sizeof(struct doa_tracking_mon_param);
18239
18240 return 0;
18241}
18242
18243static int msm_doa_tracking_mon_get(struct snd_kcontrol *kcontrol,
18244 struct snd_ctl_elem_value *ucontrol)
18245{
18246 int ret = 0;
18247 struct doa_tracking_mon_param doa_tracking_data;
18248 int port_id, copp_idx;
18249
18250 memset(&doa_tracking_data, 0, sizeof(struct doa_tracking_mon_param));
18251 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
18252 "Doa Tracking Monitor Listen ", &port_id);
18253 if (ret) {
18254 pr_err("%s: Error in deriving port id, err=%d\n",
18255 __func__, ret);
18256 ret = -EINVAL;
18257 goto done;
18258 }
18259
18260 /*
18261 * If copp id exists for given port id, query adm to get doa data.
18262 * Else query afe for doa tracking params.
18263 * This is to support in cases where LSM directly connects to
18264 * AFE for FFNS.
18265 */
18266 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
18267 &copp_idx);
18268 if (!ret)
18269 ret = adm_get_doa_tracking_mon(port_id, copp_idx,
18270 &doa_tracking_data);
18271 else
18272 ret = afe_get_doa_tracking_mon(port_id, &doa_tracking_data);
18273
18274 if (ret) {
18275 pr_err("%s: Error getting Doa Tracking Params, err=%d\n",
18276 __func__, ret);
18277 ret = -EINVAL;
18278 goto done;
18279 }
18280
18281 memcpy(ucontrol->value.bytes.data, (void *)&doa_tracking_data,
18282 sizeof(struct doa_tracking_mon_param));
18283done:
18284 return ret;
18285}
18286
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018287static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
18288 {
18289 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18290 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18291 .name = "Sound Focus Voice Tx SLIMBUS_0",
18292 .info = msm_sound_focus_info,
18293 .get = msm_voice_sound_focus_get,
18294 .put = msm_voice_sound_focus_put,
18295 },
18296 {
18297 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18298 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18299 .name = "Source Tracking Voice Tx SLIMBUS_0",
18300 .info = msm_source_tracking_info,
18301 .get = msm_voice_source_tracking_get,
18302 },
18303 {
18304 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18305 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18306 .name = "Sound Focus Audio Tx SLIMBUS_0",
18307 .info = msm_sound_focus_info,
18308 .get = msm_audio_sound_focus_get,
18309 .put = msm_audio_sound_focus_put,
18310 },
18311 {
18312 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18313 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18314 .name = "Source Tracking Audio Tx SLIMBUS_0",
18315 .info = msm_source_tracking_info,
18316 .get = msm_audio_source_tracking_get,
18317 },
18318 {
18319 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18320 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18321 .name = "Sound Focus Voice Tx TERT_MI2S",
18322 .info = msm_sound_focus_info,
18323 .get = msm_voice_sound_focus_get,
18324 .put = msm_voice_sound_focus_put,
18325 },
18326 {
18327 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18328 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18329 .name = "Source Tracking Voice Tx TERT_MI2S",
18330 .info = msm_source_tracking_info,
18331 .get = msm_voice_source_tracking_get,
18332 },
18333 {
18334 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18335 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18336 .name = "Sound Focus Audio Tx TERT_MI2S",
18337 .info = msm_sound_focus_info,
18338 .get = msm_audio_sound_focus_get,
18339 .put = msm_audio_sound_focus_put,
18340 },
18341 {
18342 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18343 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18344 .name = "Source Tracking Audio Tx TERT_MI2S",
18345 .info = msm_source_tracking_info,
18346 .get = msm_audio_source_tracking_get,
18347 },
18348 {
18349 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18350 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18351 .name = "Sound Focus Voice Tx INT3_MI2S",
18352 .info = msm_sound_focus_info,
18353 .get = msm_voice_sound_focus_get,
18354 .put = msm_voice_sound_focus_put,
18355 },
18356 {
18357 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18358 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18359 .name = "Source Tracking Voice Tx INT3_MI2S",
18360 .info = msm_source_tracking_info,
18361 .get = msm_voice_source_tracking_get,
18362 },
18363 {
18364 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18365 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18366 .name = "Sound Focus Audio Tx INT3_MI2S",
18367 .info = msm_sound_focus_info,
18368 .get = msm_audio_sound_focus_get,
18369 .put = msm_audio_sound_focus_put,
18370 },
18371 {
18372 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18373 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18374 .name = "Source Tracking Audio Tx INT3_MI2S",
18375 .info = msm_source_tracking_info,
18376 .get = msm_audio_source_tracking_get,
18377 },
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053018378 {
18379 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18380 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18381 .name = "Sound Focus Voice Tx VA_CDC_DMA_TX_0",
18382 .info = msm_sound_focus_info,
18383 .get = msm_voice_sound_focus_get,
18384 .put = msm_voice_sound_focus_put,
18385 },
18386 {
18387 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18388 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18389 .name = "Source Tracking Voice Tx VA_CDC_DMA_TX_0",
18390 .info = msm_source_tracking_info,
18391 .get = msm_voice_source_tracking_get,
18392 },
18393 {
18394 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18395 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18396 .name = "Sound Focus Audio Tx VA_CDC_DMA_TX_0",
18397 .info = msm_sound_focus_info,
18398 .get = msm_audio_sound_focus_get,
18399 .put = msm_audio_sound_focus_put,
18400 },
18401 {
18402 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18403 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18404 .name = "Source Tracking Audio Tx VA_CDC_DMA_TX_0",
18405 .info = msm_source_tracking_info,
18406 .get = msm_audio_source_tracking_get,
18407 },
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053018408 {
18409 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18410 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18411 .name = "Sound Focus Voice Tx TX_CDC_DMA_TX_3",
18412 .info = msm_sound_focus_info,
18413 .get = msm_voice_sound_focus_get,
18414 .put = msm_voice_sound_focus_put,
18415 },
18416 {
18417 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18418 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18419 .name = "Source Tracking Voice Tx TX_CDC_DMA_TX_3",
18420 .info = msm_source_tracking_info,
18421 .get = msm_voice_source_tracking_get,
18422 },
18423 {
18424 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18425 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18426 .name = "Sound Focus Audio Tx TX_CDC_DMA_TX_3",
18427 .info = msm_sound_focus_info,
18428 .get = msm_audio_sound_focus_get,
18429 .put = msm_audio_sound_focus_put,
18430 },
18431 {
18432 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18433 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18434 .name = "Source Tracking Audio Tx TX_CDC_DMA_TX_3",
18435 .info = msm_source_tracking_info,
18436 .get = msm_audio_source_tracking_get,
18437 },
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053018438 {
18439 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18440 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18441 .name = "Sound Focus Voice Tx QUIN_TDM_TX_0",
18442 .info = msm_sound_focus_info,
18443 .get = msm_voice_sound_focus_get,
18444 .put = msm_voice_sound_focus_put,
18445 },
18446 {
18447 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18448 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18449 .name = "Source Tracking Voice Tx QUIN_TDM_TX_0",
18450 .info = msm_source_tracking_info,
18451 .get = msm_voice_source_tracking_get,
18452 },
18453 {
18454 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18455 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18456 .name = "Sound Focus Audio Tx QUIN_TDM_TX_0",
18457 .info = msm_sound_focus_info,
18458 .get = msm_audio_sound_focus_get,
18459 .put = msm_audio_sound_focus_put,
18460 },
18461 {
18462 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18463 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18464 .name = "Source Tracking Audio Tx QUIN_TDM_TX_0",
18465 .info = msm_source_tracking_info,
18466 .get = msm_audio_source_tracking_get,
18467 },
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053018468 {
18469 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18470 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18471 .name = "Doa Tracking Monitor Listen VA_CDC_DMA_TX_0",
18472 .info = msm_doa_tracking_mon_info,
18473 .get = msm_doa_tracking_mon_get,
18474 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018475};
18476
18477static int spkr_prot_put_vi_lch_port(struct snd_kcontrol *kcontrol,
18478 struct snd_ctl_elem_value *ucontrol)
18479{
18480 int ret = 0;
18481 int item;
18482 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
18483
18484 pr_debug("%s item is %d\n", __func__,
18485 ucontrol->value.enumerated.item[0]);
18486 mutex_lock(&routing_lock);
18487 item = ucontrol->value.enumerated.item[0];
18488 if (item < e->items) {
18489 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
18490 __func__, e->shift_l, e->values[item]);
18491 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
18492 e->values[item] < MSM_BACKEND_DAI_MAX)
18493 /* Enable feedback TX path */
18494 ret = afe_spk_prot_feed_back_cfg(
18495 msm_bedais[e->values[item]].port_id,
18496 msm_bedais[e->shift_l].port_id, 1, 0, 1);
18497 else {
18498 pr_debug("%s values are out of range item %d\n",
18499 __func__, e->values[item]);
18500 /* Disable feedback TX path */
18501 if (e->values[item] == MSM_BACKEND_DAI_MAX)
18502 ret = afe_spk_prot_feed_back_cfg(0, 0, 0, 0, 0);
18503 else
18504 ret = -EINVAL;
18505 }
18506 } else {
18507 pr_err("%s item value is out of range item\n", __func__);
18508 ret = -EINVAL;
18509 }
18510 mutex_unlock(&routing_lock);
18511 return ret;
18512}
18513
18514static int spkr_prot_put_vi_rch_port(struct snd_kcontrol *kcontrol,
18515 struct snd_ctl_elem_value *ucontrol)
18516{
18517 int ret = 0;
18518 int item;
18519 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
18520
18521 pr_debug("%s item is %d\n", __func__,
18522 ucontrol->value.enumerated.item[0]);
18523 mutex_lock(&routing_lock);
18524 item = ucontrol->value.enumerated.item[0];
18525 if (item < e->items) {
18526 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
18527 __func__, e->shift_l, e->values[item]);
18528 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
18529 e->values[item] < MSM_BACKEND_DAI_MAX)
18530 /* Enable feedback TX path */
18531 ret = afe_spk_prot_feed_back_cfg(
18532 msm_bedais[e->values[item]].port_id,
18533 msm_bedais[e->shift_l].port_id,
18534 1, 1, 1);
18535 else {
18536 pr_debug("%s values are out of range item %d\n",
18537 __func__, e->values[item]);
18538 /* Disable feedback TX path */
18539 if (e->values[item] == MSM_BACKEND_DAI_MAX)
18540 ret = afe_spk_prot_feed_back_cfg(0,
18541 0, 0, 0, 0);
18542 else
18543 ret = -EINVAL;
18544 }
18545 } else {
18546 pr_err("%s item value is out of range item\n", __func__);
18547 ret = -EINVAL;
18548 }
18549 mutex_unlock(&routing_lock);
18550 return ret;
18551}
18552
18553static int spkr_prot_get_vi_lch_port(struct snd_kcontrol *kcontrol,
18554 struct snd_ctl_elem_value *ucontrol)
18555{
18556 pr_debug("%s\n", __func__);
18557 return 0;
18558}
18559
18560static int spkr_prot_get_vi_rch_port(struct snd_kcontrol *kcontrol,
18561 struct snd_ctl_elem_value *ucontrol)
18562{
18563 pr_debug("%s\n", __func__);
18564 ucontrol->value.enumerated.item[0] = 0;
18565 return 0;
18566}
18567
18568static const char * const slim0_rx_vi_fb_tx_lch_mux_text[] = {
18569 "ZERO", "SLIM4_TX"
18570};
18571
18572static const char * const slim0_rx_vi_fb_tx_rch_mux_text[] = {
18573 "ZERO", "SLIM4_TX"
18574};
18575
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018576static const char * const wsa_rx_0_vi_fb_tx_lch_mux_text[] = {
18577 "ZERO", "WSA_CDC_DMA_TX_0"
18578};
18579
18580static const char * const wsa_rx_0_vi_fb_tx_rch_mux_text[] = {
18581 "ZERO", "WSA_CDC_DMA_TX_0"
18582};
18583
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018584static const char * const mi2s_rx_vi_fb_tx_mux_text[] = {
18585 "ZERO", "SENARY_TX"
18586};
18587
18588static const char * const int4_mi2s_rx_vi_fb_tx_mono_mux_text[] = {
18589 "ZERO", "INT5_MI2S_TX"
18590};
18591
18592static const char * const int4_mi2s_rx_vi_fb_tx_stereo_mux_text[] = {
18593 "ZERO", "INT5_MI2S_TX"
18594};
18595
Josh Kirschea69fed2018-12-11 16:15:08 -080018596static const int slim0_rx_vi_fb_tx_lch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018597 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
18598};
18599
Josh Kirschea69fed2018-12-11 16:15:08 -080018600static const int slim0_rx_vi_fb_tx_rch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018601 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
18602};
18603
Josh Kirschea69fed2018-12-11 16:15:08 -080018604static const int wsa_rx_0_vi_fb_tx_lch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018605 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
18606};
18607
Josh Kirschea69fed2018-12-11 16:15:08 -080018608static const int wsa_rx_0_vi_fb_tx_rch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018609 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
18610};
18611
18612
Josh Kirschea69fed2018-12-11 16:15:08 -080018613static const int mi2s_rx_vi_fb_tx_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018614 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SENARY_MI2S_TX
18615};
18616
Josh Kirschea69fed2018-12-11 16:15:08 -080018617static const int int4_mi2s_rx_vi_fb_tx_mono_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018618 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
18619};
18620
Josh Kirschea69fed2018-12-11 16:15:08 -080018621static const int int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018622 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
18623};
18624
18625static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
18626 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
18627 ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
18628 slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
18629
18630static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
18631 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
18632 ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
18633 slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
18634
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018635static const struct soc_enum wsa_rx_0_vi_fb_lch_mux_enum =
18636 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
18637 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_lch_mux_text),
18638 wsa_rx_0_vi_fb_tx_lch_mux_text, wsa_rx_0_vi_fb_tx_lch_value);
18639
18640static const struct soc_enum wsa_rx_0_vi_fb_rch_mux_enum =
18641 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
18642 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_rch_mux_text),
18643 wsa_rx_0_vi_fb_tx_rch_mux_text, wsa_rx_0_vi_fb_tx_rch_value);
18644
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018645static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
18646 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
18647 ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
18648 mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
18649
18650static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
18651 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
18652 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
18653 int4_mi2s_rx_vi_fb_tx_mono_mux_text,
18654 int4_mi2s_rx_vi_fb_tx_mono_ch_value);
18655
18656static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
18657 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
18658 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
18659 int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
18660 int4_mi2s_rx_vi_fb_tx_stereo_ch_value);
18661
18662static const struct snd_kcontrol_new slim0_rx_vi_fb_lch_mux =
18663 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_LCH_MUX",
18664 slim0_rx_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
18665 spkr_prot_put_vi_lch_port);
18666
18667static const struct snd_kcontrol_new slim0_rx_vi_fb_rch_mux =
18668 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_RCH_MUX",
18669 slim0_rx_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
18670 spkr_prot_put_vi_rch_port);
18671
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018672static const struct snd_kcontrol_new wsa_rx_0_vi_fb_lch_mux =
18673 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_LCH_MUX",
18674 wsa_rx_0_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
18675 spkr_prot_put_vi_lch_port);
18676
18677static const struct snd_kcontrol_new wsa_rx_0_vi_fb_rch_mux =
18678 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_RCH_MUX",
18679 wsa_rx_0_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
18680 spkr_prot_put_vi_rch_port);
18681
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018682static const struct snd_kcontrol_new mi2s_rx_vi_fb_mux =
18683 SOC_DAPM_ENUM_EXT("PRI_MI2S_RX_VI_FB_MUX",
18684 mi2s_rx_vi_fb_mux_enum, spkr_prot_get_vi_lch_port,
18685 spkr_prot_put_vi_lch_port);
18686
18687static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_mono_ch_mux =
18688 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_MONO_CH_MUX",
18689 int4_mi2s_rx_vi_fb_mono_ch_mux_enum, spkr_prot_get_vi_lch_port,
18690 spkr_prot_put_vi_lch_port);
18691
18692static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_stereo_ch_mux =
18693 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX",
18694 int4_mi2s_rx_vi_fb_stereo_ch_mux_enum, spkr_prot_get_vi_rch_port,
18695 spkr_prot_put_vi_rch_port);
18696
18697static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
18698 /* Frontend AIF */
18699 /* Widget name equals to Front-End DAI name<Need confirmation>,
18700 * Stream name must contains substring of front-end dai name
18701 */
18702 SND_SOC_DAPM_AIF_IN("MM_DL1", "MultiMedia1 Playback", 0, 0, 0, 0),
18703 SND_SOC_DAPM_AIF_IN("MM_DL2", "MultiMedia2 Playback", 0, 0, 0, 0),
18704 SND_SOC_DAPM_AIF_IN("MM_DL3", "MultiMedia3 Playback", 0, 0, 0, 0),
18705 SND_SOC_DAPM_AIF_IN("MM_DL4", "MultiMedia4 Playback", 0, 0, 0, 0),
18706 SND_SOC_DAPM_AIF_IN("MM_DL5", "MultiMedia5 Playback", 0, 0, 0, 0),
18707 SND_SOC_DAPM_AIF_IN("MM_DL6", "MultiMedia6 Playback", 0, 0, 0, 0),
18708 SND_SOC_DAPM_AIF_IN("MM_DL7", "MultiMedia7 Playback", 0, 0, 0, 0),
18709 SND_SOC_DAPM_AIF_IN("MM_DL8", "MultiMedia8 Playback", 0, 0, 0, 0),
18710 SND_SOC_DAPM_AIF_IN("MM_DL9", "MultiMedia9 Playback", 0, 0, 0, 0),
18711 SND_SOC_DAPM_AIF_IN("MM_DL10", "MultiMedia10 Playback", 0, 0, 0, 0),
18712 SND_SOC_DAPM_AIF_IN("MM_DL11", "MultiMedia11 Playback", 0, 0, 0, 0),
18713 SND_SOC_DAPM_AIF_IN("MM_DL12", "MultiMedia12 Playback", 0, 0, 0, 0),
18714 SND_SOC_DAPM_AIF_IN("MM_DL13", "MultiMedia13 Playback", 0, 0, 0, 0),
18715 SND_SOC_DAPM_AIF_IN("MM_DL14", "MultiMedia14 Playback", 0, 0, 0, 0),
18716 SND_SOC_DAPM_AIF_IN("MM_DL15", "MultiMedia15 Playback", 0, 0, 0, 0),
18717 SND_SOC_DAPM_AIF_IN("MM_DL16", "MultiMedia16 Playback", 0, 0, 0, 0),
18718 SND_SOC_DAPM_AIF_IN("MM_DL20", "MultiMedia20 Playback", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070018719 SND_SOC_DAPM_AIF_IN("MM_DL21", "MultiMedia21 Playback", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053018720 SND_SOC_DAPM_AIF_IN("MM_DL26", "MultiMedia26 Playback", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018721 SND_SOC_DAPM_AIF_IN("VOIP_DL", "VoIP Playback", 0, 0, 0, 0),
18722 SND_SOC_DAPM_AIF_OUT("MM_UL1", "MultiMedia1 Capture", 0, 0, 0, 0),
18723 SND_SOC_DAPM_AIF_OUT("MM_UL2", "MultiMedia2 Capture", 0, 0, 0, 0),
18724 SND_SOC_DAPM_AIF_OUT("MM_UL3", "MultiMedia3 Capture", 0, 0, 0, 0),
18725 SND_SOC_DAPM_AIF_OUT("MM_UL4", "MultiMedia4 Capture", 0, 0, 0, 0),
18726 SND_SOC_DAPM_AIF_OUT("MM_UL5", "MultiMedia5 Capture", 0, 0, 0, 0),
18727 SND_SOC_DAPM_AIF_OUT("MM_UL6", "MultiMedia6 Capture", 0, 0, 0, 0),
18728 SND_SOC_DAPM_AIF_OUT("MM_UL8", "MultiMedia8 Capture", 0, 0, 0, 0),
18729 SND_SOC_DAPM_AIF_OUT("MM_UL9", "MultiMedia9 Capture", 0, 0, 0, 0),
Laxminath Kasam38070be2017-08-17 18:21:59 +053018730 SND_SOC_DAPM_AIF_OUT("MM_UL10", "MultiMedia10 Capture", 0, 0, 0, 0),
Asish Bhattacharya34504582017-08-08 12:55:01 +053018731 SND_SOC_DAPM_AIF_OUT("MM_UL16", "MultiMedia16 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018732 SND_SOC_DAPM_AIF_OUT("MM_UL17", "MultiMedia17 Capture", 0, 0, 0, 0),
18733 SND_SOC_DAPM_AIF_OUT("MM_UL18", "MultiMedia18 Capture", 0, 0, 0, 0),
18734 SND_SOC_DAPM_AIF_OUT("MM_UL19", "MultiMedia19 Capture", 0, 0, 0, 0),
18735 SND_SOC_DAPM_AIF_OUT("MM_UL20", "MultiMedia20 Capture", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070018736 SND_SOC_DAPM_AIF_OUT("MM_UL21", "MultiMedia21 Capture", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053018737 SND_SOC_DAPM_AIF_OUT("MM_UL27", "MultiMedia27 Capture", 0, 0, 0, 0),
Meng Wang5c4bab72018-04-25 10:40:01 +080018738 SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
18739 SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018740 SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
18741 SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
18742 "VoiceMMode1 Playback", 0, 0, 0, 0),
18743 SND_SOC_DAPM_AIF_OUT("VOICEMMODE1_UL",
18744 "VoiceMMode1 Capture", 0, 0, 0, 0),
18745 SND_SOC_DAPM_AIF_IN("VOICEMMODE2_DL",
18746 "VoiceMMode2 Playback", 0, 0, 0, 0),
18747 SND_SOC_DAPM_AIF_OUT("VOICEMMODE2_UL",
18748 "VoiceMMode2 Capture", 0, 0, 0, 0),
18749 SND_SOC_DAPM_AIF_IN("SLIM0_DL_HL", "SLIMBUS0_HOSTLESS Playback",
18750 0, 0, 0, 0),
18751 SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
18752 0, 0, 0, 0),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053018753 SND_SOC_DAPM_AIF_IN("CDC_DMA_DL_HL", "CDC_DMA_HOSTLESS Playback",
18754 0, 0, 0, 0),
18755 SND_SOC_DAPM_AIF_OUT("CDC_DMA_UL_HL", "CDC_DMA_HOSTLESS Capture",
18756 0, 0, 0, 0),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053018757 SND_SOC_DAPM_AIF_OUT("TX3_CDC_DMA_UL_HL",
18758 "TX3_CDC_DMA_HOSTLESS Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018759 SND_SOC_DAPM_AIF_OUT("CPE_LSM_UL_HL", "CPE LSM capture",
18760 0, 0, 0, 0),
18761 SND_SOC_DAPM_AIF_IN("SLIM1_DL_HL", "SLIMBUS1_HOSTLESS Playback",
18762 0, 0, 0, 0),
18763 SND_SOC_DAPM_AIF_OUT("SLIM1_UL_HL", "SLIMBUS1_HOSTLESS Capture",
18764 0, 0, 0, 0),
18765 SND_SOC_DAPM_AIF_IN("SLIM3_DL_HL", "SLIMBUS3_HOSTLESS Playback",
18766 0, 0, 0, 0),
18767 SND_SOC_DAPM_AIF_OUT("SLIM3_UL_HL", "SLIMBUS3_HOSTLESS Capture",
18768 0, 0, 0, 0),
18769 SND_SOC_DAPM_AIF_IN("SLIM4_DL_HL", "SLIMBUS4_HOSTLESS Playback",
18770 0, 0, 0, 0),
18771 SND_SOC_DAPM_AIF_OUT("SLIM4_UL_HL", "SLIMBUS4_HOSTLESS Capture",
18772 0, 0, 0, 0),
18773 SND_SOC_DAPM_AIF_IN("SLIM6_DL_HL", "SLIMBUS6_HOSTLESS Playback",
18774 0, 0, 0, 0),
18775 SND_SOC_DAPM_AIF_OUT("SLIM6_UL_HL", "SLIMBUS6_HOSTLESS Capture",
18776 0, 0, 0, 0),
18777 SND_SOC_DAPM_AIF_IN("SLIM7_DL_HL", "SLIMBUS7_HOSTLESS Playback",
18778 0, 0, 0, 0),
18779 SND_SOC_DAPM_AIF_OUT("SLIM7_UL_HL", "SLIMBUS7_HOSTLESS Capture",
18780 0, 0, 0, 0),
18781 SND_SOC_DAPM_AIF_IN("SLIM8_DL_HL", "SLIMBUS8_HOSTLESS Playback",
18782 0, 0, 0, 0),
18783 SND_SOC_DAPM_AIF_OUT("SLIM8_UL_HL", "SLIMBUS8_HOSTLESS Capture",
18784 0, 0, 0, 0),
18785 SND_SOC_DAPM_AIF_IN("INTFM_DL_HL", "INT_FM_HOSTLESS Playback",
18786 0, 0, 0, 0),
18787 SND_SOC_DAPM_AIF_OUT("INTFM_UL_HL", "INT_FM_HOSTLESS Capture",
18788 0, 0, 0, 0),
18789 SND_SOC_DAPM_AIF_IN("INTHFP_DL_HL", "INT_HFP_BT_HOSTLESS Playback",
18790 0, 0, 0, 0),
18791 SND_SOC_DAPM_AIF_OUT("INTHFP_UL_HL", "INT_HFP_BT_HOSTLESS Capture",
18792 0, 0, 0, 0),
18793 SND_SOC_DAPM_AIF_IN("USBAUDIO_DL_HL", "USBAUDIO_HOSTLESS Playback",
18794 0, 0, 0, 0),
18795 SND_SOC_DAPM_AIF_OUT("USBAUDIO_UL_HL", "USBAUDIO_HOSTLESS Capture",
18796 0, 0, 0, 0),
18797 SND_SOC_DAPM_AIF_IN("HDMI_DL_HL", "HDMI_HOSTLESS Playback", 0, 0, 0, 0),
18798 SND_SOC_DAPM_AIF_IN("SEC_I2S_DL_HL", "SEC_I2S_RX_HOSTLESS Playback",
18799 0, 0, 0, 0),
18800 SND_SOC_DAPM_AIF_IN("INT0_MI2S_DL_HL",
18801 "INT0 MI2S_RX Hostless Playback",
18802 0, 0, 0, 0),
18803 SND_SOC_DAPM_AIF_IN("INT4_MI2S_DL_HL",
18804 "INT4 MI2S_RX Hostless Playback",
18805 0, 0, 0, 0),
18806 SND_SOC_DAPM_AIF_IN("PRI_MI2S_DL_HL",
18807 "Primary MI2S_RX Hostless Playback",
18808 0, 0, 0, 0),
18809 SND_SOC_DAPM_AIF_IN("SEC_MI2S_DL_HL",
18810 "Secondary MI2S_RX Hostless Playback",
18811 0, 0, 0, 0),
18812 SND_SOC_DAPM_AIF_IN("TERT_MI2S_DL_HL",
18813 "Tertiary MI2S_RX Hostless Playback",
18814 0, 0, 0, 0),
18815 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_DL_HL",
18816 "Quaternary MI2S_RX Hostless Playback",
18817 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018818 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_DL_HL",
18819 "Quinary MI2S_RX Hostless Playback",
18820 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018821
18822 SND_SOC_DAPM_AIF_IN("AUXPCM_DL_HL", "AUXPCM_HOSTLESS Playback",
18823 0, 0, 0, 0),
18824 SND_SOC_DAPM_AIF_OUT("AUXPCM_UL_HL", "AUXPCM_HOSTLESS Capture",
18825 0, 0, 0, 0),
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080018826 SND_SOC_DAPM_AIF_IN("SEC_AUXPCM_DL_HL", "SEC_AUXPCM_HOSTLESS Playback",
18827 0, 0, 0, 0),
18828 SND_SOC_DAPM_AIF_OUT("SEC_AUXPCM_UL_HL", "SEC_AUXPCM_HOSTLESS Capture",
18829 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018830 SND_SOC_DAPM_AIF_OUT("MI2S_UL_HL", "MI2S_TX_HOSTLESS Capture",
18831 0, 0, 0, 0),
18832 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_UL_HL",
18833 "INT3 MI2S_TX Hostless Capture",
18834 0, 0, 0, 0),
18835 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_UL_HL",
18836 "Tertiary MI2S_TX Hostless Capture",
18837 0, 0, 0, 0),
18838 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_UL_HL",
18839 "Secondary MI2S_TX Hostless Capture",
18840 0, 0, 0, 0),
18841 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_UL_HL",
18842 "Primary MI2S_TX Hostless Capture",
18843 0, 0, 0, 0),
18844 SND_SOC_DAPM_AIF_OUT("MI2S_DL_HL", "MI2S_RX_HOSTLESS Playback",
18845 0, 0, 0, 0),
18846 SND_SOC_DAPM_AIF_IN("DTMF_DL_HL", "DTMF_RX_HOSTLESS Playback",
18847 0, 0, 0, 0),
18848 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_UL_HL",
18849 "Quaternary MI2S_TX Hostless Capture",
18850 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018851 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_UL_HL",
18852 "Quinary MI2S_TX Hostless Capture",
18853 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018854
18855 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_0_DL_HL",
18856 "Primary TDM0 Hostless Playback",
18857 0, 0, 0, 0),
18858 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_0_UL_HL",
18859 "Primary TDM0 Hostless Capture",
18860 0, 0, 0, 0),
18861 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_1_DL_HL",
18862 "Primary TDM1 Hostless Playback",
18863 0, 0, 0, 0),
18864 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_1_UL_HL",
18865 "Primary TDM1 Hostless Capture",
18866 0, 0, 0, 0),
18867 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_2_DL_HL",
18868 "Primary TDM2 Hostless Playback",
18869 0, 0, 0, 0),
18870 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_2_UL_HL",
18871 "Primary TDM2 Hostless Capture",
18872 0, 0, 0, 0),
18873 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_3_DL_HL",
18874 "Primary TDM3 Hostless Playback",
18875 0, 0, 0, 0),
18876 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_3_UL_HL",
18877 "Primary TDM3 Hostless Capture",
18878 0, 0, 0, 0),
18879 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_4_DL_HL",
18880 "Primary TDM4 Hostless Playback",
18881 0, 0, 0, 0),
18882 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_4_UL_HL",
18883 "Primary TDM4 Hostless Capture",
18884 0, 0, 0, 0),
18885 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_5_DL_HL",
18886 "Primary TDM5 Hostless Playback",
18887 0, 0, 0, 0),
18888 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_5_UL_HL",
18889 "Primary TDM5 Hostless Capture",
18890 0, 0, 0, 0),
18891 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_6_DL_HL",
18892 "Primary TDM6 Hostless Playback",
18893 0, 0, 0, 0),
18894 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_6_UL_HL",
18895 "Primary TDM6 Hostless Capture",
18896 0, 0, 0, 0),
18897 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_7_DL_HL",
18898 "Primary TDM7 Hostless Playback",
18899 0, 0, 0, 0),
18900 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_7_UL_HL",
18901 "Primary TDM7 Hostless Capture",
18902 0, 0, 0, 0),
18903 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_0_DL_HL",
18904 "Secondary TDM0 Hostless Playback",
18905 0, 0, 0, 0),
18906 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_0_UL_HL",
18907 "Secondary TDM0 Hostless Capture",
18908 0, 0, 0, 0),
18909 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_1_DL_HL",
18910 "Secondary TDM1 Hostless Playback",
18911 0, 0, 0, 0),
18912 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_1_UL_HL",
18913 "Secondary TDM1 Hostless Capture",
18914 0, 0, 0, 0),
18915 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_2_DL_HL",
18916 "Secondary TDM2 Hostless Playback",
18917 0, 0, 0, 0),
18918 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_2_UL_HL",
18919 "Secondary TDM2 Hostless Capture",
18920 0, 0, 0, 0),
18921 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_3_DL_HL",
18922 "Secondary TDM3 Hostless Playback",
18923 0, 0, 0, 0),
18924 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_3_UL_HL",
18925 "Secondary TDM3 Hostless Capture",
18926 0, 0, 0, 0),
18927 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_4_DL_HL",
18928 "Secondary TDM4 Hostless Playback",
18929 0, 0, 0, 0),
18930 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_4_UL_HL",
18931 "Secondary TDM4 Hostless Capture",
18932 0, 0, 0, 0),
18933 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_5_DL_HL",
18934 "Secondary TDM5 Hostless Playback",
18935 0, 0, 0, 0),
18936 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_5_UL_HL",
18937 "Secondary TDM5 Hostless Capture",
18938 0, 0, 0, 0),
18939 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_6_DL_HL",
18940 "Secondary TDM6 Hostless Playback",
18941 0, 0, 0, 0),
18942 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_6_UL_HL",
18943 "Secondary TDM6 Hostless Capture",
18944 0, 0, 0, 0),
18945 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_7_DL_HL",
18946 "Secondary TDM7 Hostless Playback",
18947 0, 0, 0, 0),
18948 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_7_UL_HL",
18949 "Secondary TDM7 Hostless Capture",
18950 0, 0, 0, 0),
18951 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_0_DL_HL",
18952 "Tertiary TDM0 Hostless Playback",
18953 0, 0, 0, 0),
18954 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_0_UL_HL",
18955 "Tertiary TDM0 Hostless Capture",
18956 0, 0, 0, 0),
18957 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_1_DL_HL",
18958 "Tertiary TDM1 Hostless Playback",
18959 0, 0, 0, 0),
18960 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_1_UL_HL",
18961 "Tertiary TDM1 Hostless Capture",
18962 0, 0, 0, 0),
18963 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_2_DL_HL",
18964 "Tertiary TDM2 Hostless Playback",
18965 0, 0, 0, 0),
18966 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_2_UL_HL",
18967 "Tertiary TDM2 Hostless Capture",
18968 0, 0, 0, 0),
18969 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_3_DL_HL",
18970 "Tertiary TDM3 Hostless Playback",
18971 0, 0, 0, 0),
18972 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_3_UL_HL",
18973 "Tertiary TDM3 Hostless Capture",
18974 0, 0, 0, 0),
18975 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_4_DL_HL",
18976 "Tertiary TDM4 Hostless Playback",
18977 0, 0, 0, 0),
18978 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_4_UL_HL",
18979 "Tertiary TDM4 Hostless Capture",
18980 0, 0, 0, 0),
18981 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_5_DL_HL",
18982 "Tertiary TDM5 Hostless Playback",
18983 0, 0, 0, 0),
18984 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_5_UL_HL",
18985 "Tertiary TDM5 Hostless Capture",
18986 0, 0, 0, 0),
18987 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_6_DL_HL",
18988 "Tertiary TDM6 Hostless Playback",
18989 0, 0, 0, 0),
18990 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_6_UL_HL",
18991 "Tertiary TDM6 Hostless Capture",
18992 0, 0, 0, 0),
18993 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_7_DL_HL",
18994 "Tertiary TDM7 Hostless Playback",
18995 0, 0, 0, 0),
18996 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_7_UL_HL",
18997 "Tertiary TDM7 Hostless Capture",
18998 0, 0, 0, 0),
18999 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_0_DL_HL",
19000 "Quaternary TDM0 Hostless Playback",
19001 0, 0, 0, 0),
19002 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_0_UL_HL",
19003 "Quaternary TDM0 Hostless Capture",
19004 0, 0, 0, 0),
19005 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_1_DL_HL",
19006 "Quaternary TDM1 Hostless Playback",
19007 0, 0, 0, 0),
19008 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_1_UL_HL",
19009 "Quaternary TDM1 Hostless Capture",
19010 0, 0, 0, 0),
19011 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_2_DL_HL",
19012 "Quaternary TDM2 Hostless Playback",
19013 0, 0, 0, 0),
19014 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_2_UL_HL",
19015 "Quaternary TDM2 Hostless Capture",
19016 0, 0, 0, 0),
19017 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_3_DL_HL",
19018 "Quaternary TDM3 Hostless Playback",
19019 0, 0, 0, 0),
19020 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_3_UL_HL",
19021 "Quaternary TDM3 Hostless Capture",
19022 0, 0, 0, 0),
19023 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_4_DL_HL",
19024 "Quaternary TDM4 Hostless Playback",
19025 0, 0, 0, 0),
19026 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_4_UL_HL",
19027 "Quaternary TDM4 Hostless Capture",
19028 0, 0, 0, 0),
19029 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_5_DL_HL",
19030 "Quaternary TDM5 Hostless Playback",
19031 0, 0, 0, 0),
19032 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_5_UL_HL",
19033 "Quaternary TDM5 Hostless Capture",
19034 0, 0, 0, 0),
19035 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_6_DL_HL",
19036 "Quaternary TDM6 Hostless Playback",
19037 0, 0, 0, 0),
19038 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_6_UL_HL",
19039 "Quaternary TDM6 Hostless Capture",
19040 0, 0, 0, 0),
19041 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_7_DL_HL",
19042 "Quaternary TDM7 Hostless Playback",
19043 0, 0, 0, 0),
19044 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_7_UL_HL",
19045 "Quaternary TDM7 Hostless Capture",
19046 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053019047 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_0_DL_HL",
19048 "Quinary TDM0 Hostless Playback",
19049 0, 0, 0, 0),
19050 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_0_UL_HL",
19051 "Quinary TDM0 Hostless Capture",
19052 0, 0, 0, 0),
19053 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_1_DL_HL",
19054 "Quinary TDM1 Hostless Playback",
19055 0, 0, 0, 0),
19056 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_1_UL_HL",
19057 "Quinary TDM1 Hostless Capture",
19058 0, 0, 0, 0),
19059 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_2_DL_HL",
19060 "Quinary TDM2 Hostless Playback",
19061 0, 0, 0, 0),
19062 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_2_UL_HL",
19063 "Quinary TDM2 Hostless Capture",
19064 0, 0, 0, 0),
19065 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_3_DL_HL",
19066 "Quinary TDM3 Hostless Playback",
19067 0, 0, 0, 0),
19068 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_3_UL_HL",
19069 "Quinary TDM3 Hostless Capture",
19070 0, 0, 0, 0),
19071 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_4_DL_HL",
19072 "Quinary TDM4 Hostless Playback",
19073 0, 0, 0, 0),
19074 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_4_UL_HL",
19075 "Quinary TDM4 Hostless Capture",
19076 0, 0, 0, 0),
19077 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_5_DL_HL",
19078 "Quinary TDM5 Hostless Playback",
19079 0, 0, 0, 0),
19080 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_5_UL_HL",
19081 "Quinary TDM5 Hostless Capture",
19082 0, 0, 0, 0),
19083 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_6_DL_HL",
19084 "Quinary TDM6 Hostless Playback",
19085 0, 0, 0, 0),
19086 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_6_UL_HL",
19087 "Quinary TDM6 Hostless Capture",
19088 0, 0, 0, 0),
19089 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_7_DL_HL",
19090 "Quinary TDM7 Hostless Playback",
19091 0, 0, 0, 0),
19092 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_7_UL_HL",
19093 "Quinary TDM7 Hostless Capture",
19094 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019095
19096 /* LSM */
19097 SND_SOC_DAPM_AIF_OUT("LSM1_UL_HL", "Listen 1 Audio Service Capture",
19098 0, 0, 0, 0),
19099 SND_SOC_DAPM_AIF_OUT("LSM2_UL_HL", "Listen 2 Audio Service Capture",
19100 0, 0, 0, 0),
19101 SND_SOC_DAPM_AIF_OUT("LSM3_UL_HL", "Listen 3 Audio Service Capture",
19102 0, 0, 0, 0),
19103 SND_SOC_DAPM_AIF_OUT("LSM4_UL_HL", "Listen 4 Audio Service Capture",
19104 0, 0, 0, 0),
19105 SND_SOC_DAPM_AIF_OUT("LSM5_UL_HL", "Listen 5 Audio Service Capture",
19106 0, 0, 0, 0),
19107 SND_SOC_DAPM_AIF_OUT("LSM6_UL_HL", "Listen 6 Audio Service Capture",
19108 0, 0, 0, 0),
19109 SND_SOC_DAPM_AIF_OUT("LSM7_UL_HL", "Listen 7 Audio Service Capture",
19110 0, 0, 0, 0),
19111 SND_SOC_DAPM_AIF_OUT("LSM8_UL_HL", "Listen 8 Audio Service Capture",
19112 0, 0, 0, 0),
19113 SND_SOC_DAPM_AIF_IN("QCHAT_DL", "QCHAT Playback", 0, 0, 0, 0),
19114 SND_SOC_DAPM_AIF_OUT("QCHAT_UL", "QCHAT Capture", 0, 0, 0, 0),
19115 /* Backend AIF */
19116 /* Stream name equals to backend dai link stream name */
19117 SND_SOC_DAPM_AIF_OUT("PRI_I2S_RX", "Primary I2S Playback", 0, 0, 0, 0),
19118 SND_SOC_DAPM_AIF_OUT("SEC_I2S_RX", "Secondary I2S Playback",
19119 0, 0, 0, 0),
Ralf Herzc8701f72018-06-20 11:37:35 +020019120 SND_SOC_DAPM_AIF_OUT("PRI_SPDIF_RX", "Primary SPDIF Playback",
19121 0, 0, 0, 0),
19122 SND_SOC_DAPM_AIF_IN("PRI_SPDIF_TX", "Primary SPDIF Capture",
19123 0, 0, 0, 0),
19124 SND_SOC_DAPM_AIF_OUT("SEC_SPDIF_RX", "Secondary SPDIF Playback",
19125 0, 0, 0, 0),
19126 SND_SOC_DAPM_AIF_IN("SEC_SPDIF_TX", "Secondary SPDIF Capture",
19127 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019128 SND_SOC_DAPM_AIF_OUT("SLIMBUS_0_RX", "Slimbus Playback", 0, 0, 0, 0),
19129 SND_SOC_DAPM_AIF_OUT("SLIMBUS_2_RX", "Slimbus2 Playback", 0, 0, 0, 0),
19130 SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_RX", "Slimbus5 Playback", 0, 0, 0, 0),
19131 SND_SOC_DAPM_AIF_OUT("HDMI", "HDMI Playback", 0, 0, 0, 0),
19132 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT", "Display Port Playback",
19133 0, 0, 0, 0),
Karthikeyan Mani57550082018-05-03 18:43:58 -070019134 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT1", "Display Port1 Playback",
19135 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019136 SND_SOC_DAPM_AIF_OUT("MI2S_RX", "MI2S Playback", 0, 0, 0, 0),
19137 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_RX", "Quaternary MI2S Playback",
19138 0, 0, 0, 0),
19139 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_RX", "Tertiary MI2S Playback",
19140 0, 0, 0, 0),
19141 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX", "Secondary MI2S Playback",
19142 0, 0, 0, 0),
19143 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX_SD1",
19144 "Secondary MI2S Playback SD1",
19145 0, 0, 0, 0),
19146 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_RX", "Primary MI2S Playback",
19147 0, 0, 0, 0),
19148 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_RX", "INT0 MI2S Playback",
19149 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053019150 SND_SOC_DAPM_AIF_OUT("INT2_MI2S_RX", "INT2 MI2S Playback",
19151 0, 0, 0, 0),
19152 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_RX", "INT3 MI2S Playback",
19153 0, 0, 0, 0),
19154 SND_SOC_DAPM_AIF_OUT("INT5_MI2S_RX", "INT5 MI2S Playback",
19155 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019156 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_RX", "INT4 MI2S Playback",
19157 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053019158 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_TX", "INT4 MI2S Capture",
19159 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019160 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_RX", "Quinary MI2S Playback",
19161 0, 0, 0, 0),
19162 SND_SOC_DAPM_AIF_IN("PRI_I2S_TX", "Primary I2S Capture", 0, 0, 0, 0),
19163 SND_SOC_DAPM_AIF_IN("MI2S_TX", "MI2S Capture", 0, 0, 0, 0),
19164 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_TX", "Quaternary MI2S Capture",
19165 0, 0, 0, 0),
19166 SND_SOC_DAPM_AIF_IN("PRI_MI2S_TX", "Primary MI2S Capture",
19167 0, 0, 0, 0),
19168 SND_SOC_DAPM_AIF_IN("TERT_MI2S_TX", "Tertiary MI2S Capture",
19169 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053019170 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_TX", "INT0 MI2S Capture",
19171 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019172 SND_SOC_DAPM_AIF_IN("INT2_MI2S_TX", "INT2 MI2S Capture",
19173 0, 0, 0, 0),
19174 SND_SOC_DAPM_AIF_IN("INT3_MI2S_TX", "INT3 MI2S Capture",
19175 0, 0, 0, 0),
19176 SND_SOC_DAPM_AIF_IN("SEC_MI2S_TX", "Secondary MI2S Capture",
19177 0, 0, 0, 0),
19178 SND_SOC_DAPM_AIF_IN("SLIMBUS_0_TX", "Slimbus Capture", 0, 0, 0, 0),
19179 SND_SOC_DAPM_AIF_IN("SLIMBUS_2_TX", "Slimbus2 Capture", 0, 0, 0, 0),
19180 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_TX", "Quinary MI2S Capture",
19181 0, 0, 0, 0),
19182 SND_SOC_DAPM_AIF_IN("SENARY_MI2S_TX", "Senary MI2S Capture",
19183 0, 0, 0, 0),
19184 SND_SOC_DAPM_AIF_OUT("INT_BT_SCO_RX", "Internal BT-SCO Playback",
19185 0, 0, 0, 0),
19186 SND_SOC_DAPM_AIF_IN("INT_BT_SCO_TX", "Internal BT-SCO Capture",
19187 0, 0, 0, 0),
19188 SND_SOC_DAPM_AIF_OUT("INT_BT_A2DP_RX", "Internal BT-A2DP Playback",
19189 0, 0, 0, 0),
19190 SND_SOC_DAPM_AIF_OUT("INT_FM_RX", "Internal FM Playback",
19191 0, 0, 0, 0),
19192 SND_SOC_DAPM_AIF_IN("INT_FM_TX", "Internal FM Capture",
19193 0, 0, 0, 0),
19194 SND_SOC_DAPM_AIF_OUT("PCM_RX", "AFE Playback",
19195 0, 0, 0, 0),
19196 SND_SOC_DAPM_AIF_IN("PCM_TX", "AFE Capture",
19197 0, 0, 0, 0),
19198 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_0", "Primary TDM0 Playback",
19199 0, 0, 0, 0),
19200 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_0", "Primary TDM0 Capture",
19201 0, 0, 0, 0),
19202 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_1", "Primary TDM1 Playback",
19203 0, 0, 0, 0),
19204 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_1", "Primary TDM1 Capture",
19205 0, 0, 0, 0),
19206 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_2", "Primary TDM2 Playback",
19207 0, 0, 0, 0),
19208 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_2", "Primary TDM2 Capture",
19209 0, 0, 0, 0),
19210 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_3", "Primary TDM3 Playback",
19211 0, 0, 0, 0),
19212 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_3", "Primary TDM3 Capture",
19213 0, 0, 0, 0),
19214 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_4", "Primary TDM4 Playback",
19215 0, 0, 0, 0),
19216 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_4", "Primary TDM4 Capture",
19217 0, 0, 0, 0),
19218 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_5", "Primary TDM5 Playback",
19219 0, 0, 0, 0),
19220 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_5", "Primary TDM5 Capture",
19221 0, 0, 0, 0),
19222 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_6", "Primary TDM6 Playback",
19223 0, 0, 0, 0),
19224 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_6", "Primary TDM6 Capture",
19225 0, 0, 0, 0),
19226 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_7", "Primary TDM7 Playback",
19227 0, 0, 0, 0),
19228 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_7", "Primary TDM7 Capture",
19229 0, 0, 0, 0),
19230 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_0", "Secondary TDM0 Playback",
19231 0, 0, 0, 0),
19232 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_0", "Secondary TDM0 Capture",
19233 0, 0, 0, 0),
19234 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_1", "Secondary TDM1 Playback",
19235 0, 0, 0, 0),
19236 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_1", "Secondary TDM1 Capture",
19237 0, 0, 0, 0),
19238 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_2", "Secondary TDM2 Playback",
19239 0, 0, 0, 0),
19240 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_2", "Secondary TDM2 Capture",
19241 0, 0, 0, 0),
19242 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_3", "Secondary TDM3 Playback",
19243 0, 0, 0, 0),
19244 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_3", "Secondary TDM3 Capture",
19245 0, 0, 0, 0),
19246 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_4", "Secondary TDM4 Playback",
19247 0, 0, 0, 0),
19248 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_4", "Secondary TDM4 Capture",
19249 0, 0, 0, 0),
19250 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_5", "Secondary TDM5 Playback",
19251 0, 0, 0, 0),
19252 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_5", "Secondary TDM5 Capture",
19253 0, 0, 0, 0),
19254 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_6", "Secondary TDM6 Playback",
19255 0, 0, 0, 0),
19256 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_6", "Secondary TDM6 Capture",
19257 0, 0, 0, 0),
19258 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_7", "Secondary TDM7 Playback",
19259 0, 0, 0, 0),
19260 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_7", "Secondary TDM7 Capture",
19261 0, 0, 0, 0),
19262 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_0", "Tertiary TDM0 Playback",
19263 0, 0, 0, 0),
19264 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_0", "Tertiary TDM0 Capture",
19265 0, 0, 0, 0),
19266 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_1", "Tertiary TDM1 Playback",
19267 0, 0, 0, 0),
19268 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_1", "Tertiary TDM1 Capture",
19269 0, 0, 0, 0),
19270 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_2", "Tertiary TDM2 Playback",
19271 0, 0, 0, 0),
19272 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_2", "Tertiary TDM2 Capture",
19273 0, 0, 0, 0),
19274 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_3", "Tertiary TDM3 Playback",
19275 0, 0, 0, 0),
19276 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_3", "Tertiary TDM3 Capture",
19277 0, 0, 0, 0),
19278 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_4", "Tertiary TDM4 Playback",
19279 0, 0, 0, 0),
19280 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_4", "Tertiary TDM4 Capture",
19281 0, 0, 0, 0),
19282 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_5", "Tertiary TDM5 Playback",
19283 0, 0, 0, 0),
19284 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_5", "Tertiary TDM5 Capture",
19285 0, 0, 0, 0),
19286 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_6", "Tertiary TDM6 Playback",
19287 0, 0, 0, 0),
19288 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_6", "Tertiary TDM6 Capture",
19289 0, 0, 0, 0),
19290 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_7", "Tertiary TDM7 Playback",
19291 0, 0, 0, 0),
19292 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_7", "Tertiary TDM7 Capture",
19293 0, 0, 0, 0),
19294 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_0", "Quaternary TDM0 Playback",
19295 0, 0, 0, 0),
19296 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_0", "Quaternary TDM0 Capture",
19297 0, 0, 0, 0),
19298 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_1", "Quaternary TDM1 Playback",
19299 0, 0, 0, 0),
19300 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_1", "Quaternary TDM1 Capture",
19301 0, 0, 0, 0),
19302 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_2", "Quaternary TDM2 Playback",
19303 0, 0, 0, 0),
19304 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_2", "Quaternary TDM2 Capture",
19305 0, 0, 0, 0),
19306 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_3", "Quaternary TDM3 Playback",
19307 0, 0, 0, 0),
19308 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_3", "Quaternary TDM3 Capture",
19309 0, 0, 0, 0),
19310 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_4", "Quaternary TDM4 Playback",
19311 0, 0, 0, 0),
19312 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_4", "Quaternary TDM4 Capture",
19313 0, 0, 0, 0),
19314 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_5", "Quaternary TDM5 Playback",
19315 0, 0, 0, 0),
19316 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_5", "Quaternary TDM5 Capture",
19317 0, 0, 0, 0),
19318 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_6", "Quaternary TDM6 Playback",
19319 0, 0, 0, 0),
19320 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_6", "Quaternary TDM6 Capture",
19321 0, 0, 0, 0),
19322 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_7", "Quaternary TDM7 Playback",
19323 0, 0, 0, 0),
19324 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_7", "Quaternary TDM7 Capture",
19325 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053019326 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_0", "Quinary TDM0 Playback",
19327 0, 0, 0, 0),
19328 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_0", "Quinary TDM0 Capture",
19329 0, 0, 0, 0),
19330 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_1", "Quinary TDM1 Playback",
19331 0, 0, 0, 0),
19332 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_1", "Quinary TDM1 Capture",
19333 0, 0, 0, 0),
19334 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_2", "Quinary TDM2 Playback",
19335 0, 0, 0, 0),
19336 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_2", "Quinary TDM2 Capture",
19337 0, 0, 0, 0),
19338 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_3", "Quinary TDM3 Playback",
19339 0, 0, 0, 0),
19340 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_3", "Quinary TDM3 Capture",
19341 0, 0, 0, 0),
19342 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_4", "Quinary TDM4 Playback",
19343 0, 0, 0, 0),
19344 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_4", "Quinary TDM4 Capture",
19345 0, 0, 0, 0),
19346 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_5", "Quinary TDM5 Playback",
19347 0, 0, 0, 0),
19348 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_5", "Quinary TDM5 Capture",
19349 0, 0, 0, 0),
19350 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_6", "Quinary TDM6 Playback",
19351 0, 0, 0, 0),
19352 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_6", "Quinary TDM6 Capture",
19353 0, 0, 0, 0),
19354 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_7", "Quinary TDM7 Playback",
19355 0, 0, 0, 0),
19356 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_7", "Quinary TDM7 Capture",
19357 0, 0, 0, 0),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019358 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_0", "WSA CDC DMA0 Playback",
19359 0, 0, 0, 0),
19360 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_0", "WSA CDC DMA0 Capture",
19361 0, 0, 0, 0),
19362 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_1", "WSA CDC DMA1 Playback",
19363 0, 0, 0, 0),
19364 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_1", "WSA CDC DMA1 Capture",
19365 0, 0, 0, 0),
19366 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_2", "WSA CDC DMA2 Capture",
19367 0, 0, 0, 0),
19368 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_0", "VA CDC DMA0 Capture",
19369 0, 0, 0, 0),
19370 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_1", "VA CDC DMA1 Capture",
19371 0, 0, 0, 0),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080019372 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_2", "VA CDC DMA2 Capture",
19373 0, 0, 0, 0),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019374 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_0", "RX CDC DMA0 Playback",
19375 0, 0, 0, 0),
19376 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_0", "TX CDC DMA0 Capture",
19377 0, 0, 0, 0),
19378 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_1", "RX CDC DMA1 Playback",
19379 0, 0, 0, 0),
19380 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_1", "TX CDC DMA1 Capture",
19381 0, 0, 0, 0),
19382 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_2", "RX CDC DMA2 Playback",
19383 0, 0, 0, 0),
19384 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_2", "TX CDC DMA2 Capture",
19385 0, 0, 0, 0),
19386 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_3", "RX CDC DMA3 Playback",
19387 0, 0, 0, 0),
19388 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_3", "TX CDC DMA3 Capture",
19389 0, 0, 0, 0),
19390 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_4", "RX CDC DMA4 Playback",
19391 0, 0, 0, 0),
19392 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_4", "TX CDC DMA4 Capture",
19393 0, 0, 0, 0),
19394 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_5", "RX CDC DMA5 Playback",
19395 0, 0, 0, 0),
19396 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_5", "TX CDC DMA5 Capture",
19397 0, 0, 0, 0),
19398 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_6", "RX CDC DMA6 Playback",
19399 0, 0, 0, 0),
19400 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_7", "RX CDC DMA7 Playback",
19401 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019402 /* incall */
19403 SND_SOC_DAPM_AIF_OUT("VOICE_PLAYBACK_TX", "Voice Farend Playback",
19404 0, 0, 0, 0),
19405 SND_SOC_DAPM_AIF_OUT("VOICE2_PLAYBACK_TX", "Voice2 Farend Playback",
19406 0, 0, 0, 0),
19407 SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_RX", "Slimbus4 Playback",
19408 0, 0, 0, 0),
19409 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_TX", "Voice Uplink Capture",
19410 0, 0, 0, 0),
19411 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_RX", "Voice Downlink Capture",
19412 0, 0, 0, 0),
19413 SND_SOC_DAPM_AIF_IN("SLIMBUS_4_TX", "Slimbus4 Capture",
19414 0, 0, 0, 0),
19415 SND_SOC_DAPM_AIF_IN("SENARY_TX", "Senary_mi2s Capture",
19416 0, 0, 0, 0),
19417 SND_SOC_DAPM_AIF_IN("INT5_MI2S_TX", "INT5 MI2S Capture",
19418 0, 0, 0, 0),
19419 SND_SOC_DAPM_AIF_IN("SLIMBUS_5_TX", "Slimbus5 Capture", 0, 0, 0, 0),
19420
19421 SND_SOC_DAPM_AIF_OUT("AUX_PCM_RX", "AUX PCM Playback", 0, 0, 0, 0),
19422 SND_SOC_DAPM_AIF_IN("AUX_PCM_TX", "AUX PCM Capture", 0, 0, 0, 0),
19423 SND_SOC_DAPM_AIF_OUT("SEC_AUX_PCM_RX", "Sec AUX PCM Playback",
19424 0, 0, 0, 0),
19425 SND_SOC_DAPM_AIF_IN("SEC_AUX_PCM_TX", "Sec AUX PCM Capture",
19426 0, 0, 0, 0),
19427 SND_SOC_DAPM_AIF_OUT("TERT_AUX_PCM_RX", "Tert AUX PCM Playback",
19428 0, 0, 0, 0),
19429 SND_SOC_DAPM_AIF_IN("TERT_AUX_PCM_TX", "Tert AUX PCM Capture",
19430 0, 0, 0, 0),
19431 SND_SOC_DAPM_AIF_OUT("QUAT_AUX_PCM_RX", "Quat AUX PCM Playback",
19432 0, 0, 0, 0),
19433 SND_SOC_DAPM_AIF_IN("QUAT_AUX_PCM_TX", "Quat AUX PCM Capture",
19434 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053019435 SND_SOC_DAPM_AIF_OUT("QUIN_AUX_PCM_RX", "Quin AUX PCM Playback",
19436 0, 0, 0, 0),
19437 SND_SOC_DAPM_AIF_IN("QUIN_AUX_PCM_TX", "Quin AUX PCM Capture",
19438 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019439 SND_SOC_DAPM_AIF_IN("VOICE_STUB_DL", "VOICE_STUB Playback", 0, 0, 0, 0),
19440 SND_SOC_DAPM_AIF_OUT("VOICE_STUB_UL", "VOICE_STUB Capture", 0, 0, 0, 0),
19441 SND_SOC_DAPM_AIF_IN("VOICE2_STUB_DL", "VOICE2_STUB Playback",
19442 0, 0, 0, 0),
19443 SND_SOC_DAPM_AIF_OUT("VOICE2_STUB_UL", "VOICE2_STUB Capture",
19444 0, 0, 0, 0),
19445 SND_SOC_DAPM_AIF_IN("VOLTE_STUB_DL", "VOLTE_STUB Playback", 0, 0, 0, 0),
19446 SND_SOC_DAPM_AIF_OUT("VOLTE_STUB_UL", "VOLTE_STUB Capture", 0, 0, 0, 0),
19447 SND_SOC_DAPM_AIF_OUT("STUB_RX", "Stub Playback", 0, 0, 0, 0),
19448 SND_SOC_DAPM_AIF_IN("STUB_TX", "Stub Capture", 0, 0, 0, 0),
19449 SND_SOC_DAPM_AIF_OUT("SLIMBUS_1_RX", "Slimbus1 Playback", 0, 0, 0, 0),
19450 SND_SOC_DAPM_AIF_IN("SLIMBUS_1_TX", "Slimbus1 Capture", 0, 0, 0, 0),
19451 SND_SOC_DAPM_AIF_IN("STUB_1_TX", "Stub1 Capture", 0, 0, 0, 0),
19452 SND_SOC_DAPM_AIF_OUT("SLIMBUS_3_RX", "Slimbus3 Playback", 0, 0, 0, 0),
19453 SND_SOC_DAPM_AIF_IN("SLIMBUS_3_TX", "Slimbus3 Capture", 0, 0, 0, 0),
19454 /* In- call recording */
19455 SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_RX", "Slimbus6 Playback", 0, 0, 0, 0),
19456 SND_SOC_DAPM_AIF_IN("SLIMBUS_6_TX", "Slimbus6 Capture", 0, 0, 0, 0),
Surendar Karkad47fda42018-05-20 19:21:10 +053019457 SND_SOC_DAPM_AIF_IN("AFE_LOOPBACK_TX", "AFE Loopback Capture",
19458 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019459 SND_SOC_DAPM_AIF_OUT("SLIMBUS_7_RX", "Slimbus7 Playback", 0, 0, 0, 0),
19460 SND_SOC_DAPM_AIF_IN("SLIMBUS_7_TX", "Slimbus7 Capture", 0, 0, 0, 0),
19461
19462 SND_SOC_DAPM_AIF_OUT("SLIMBUS_8_RX", "Slimbus8 Playback", 0, 0, 0, 0),
19463 SND_SOC_DAPM_AIF_IN("SLIMBUS_8_TX", "Slimbus8 Capture", 0, 0, 0, 0),
Surendar Karka3ef3d812018-09-28 18:52:35 +053019464 SND_SOC_DAPM_AIF_OUT("SLIMBUS_9_RX", "Slimbus9 Playback", 0, 0, 0, 0),
19465 SND_SOC_DAPM_AIF_IN("SLIMBUS_9_TX", "Slimbus9 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019466 SND_SOC_DAPM_AIF_OUT("USB_AUDIO_RX", "USB Audio Playback", 0, 0, 0, 0),
19467 SND_SOC_DAPM_AIF_IN("USB_AUDIO_TX", "USB Audio Capture", 0, 0, 0, 0),
19468
19469 /* Switch Definitions */
19470 SND_SOC_DAPM_SWITCH("SLIMBUS_DL_HL", SND_SOC_NOPM, 0, 0,
19471 &slim_fm_switch_mixer_controls),
19472 SND_SOC_DAPM_SWITCH("SLIMBUS1_DL_HL", SND_SOC_NOPM, 0, 0,
19473 &slim1_fm_switch_mixer_controls),
19474 SND_SOC_DAPM_SWITCH("SLIMBUS3_DL_HL", SND_SOC_NOPM, 0, 0,
19475 &slim3_fm_switch_mixer_controls),
19476 SND_SOC_DAPM_SWITCH("SLIMBUS4_DL_HL", SND_SOC_NOPM, 0, 0,
19477 &slim4_fm_switch_mixer_controls),
19478 SND_SOC_DAPM_SWITCH("SLIMBUS6_DL_HL", SND_SOC_NOPM, 0, 0,
19479 &slim6_fm_switch_mixer_controls),
19480 SND_SOC_DAPM_SWITCH("PCM_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19481 &pcm_rx_switch_mixer_controls),
19482 SND_SOC_DAPM_SWITCH("INT0_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19483 &int0_mi2s_rx_switch_mixer_controls),
19484 SND_SOC_DAPM_SWITCH("INT4_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19485 &int4_mi2s_rx_switch_mixer_controls),
19486 SND_SOC_DAPM_SWITCH("PRI_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19487 &pri_mi2s_rx_switch_mixer_controls),
19488 SND_SOC_DAPM_SWITCH("SEC_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19489 &sec_mi2s_rx_switch_mixer_controls),
19490 SND_SOC_DAPM_SWITCH("TERT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19491 &tert_mi2s_rx_switch_mixer_controls),
19492 SND_SOC_DAPM_SWITCH("QUAT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19493 &quat_mi2s_rx_switch_mixer_controls),
Rohit Kumara5077932017-09-10 22:05:05 +053019494 SND_SOC_DAPM_SWITCH("QUIN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19495 &quin_mi2s_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019496 SND_SOC_DAPM_SWITCH("HFP_PRI_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
19497 &hfp_pri_aux_switch_mixer_controls),
19498 SND_SOC_DAPM_SWITCH("HFP_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
19499 &hfp_aux_switch_mixer_controls),
19500 SND_SOC_DAPM_SWITCH("HFP_INT_UL_HL", SND_SOC_NOPM, 0, 0,
19501 &hfp_int_switch_mixer_controls),
19502 SND_SOC_DAPM_SWITCH("HFP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
19503 &hfp_slim7_switch_mixer_controls),
19504 SND_SOC_DAPM_SWITCH("USB_DL_HL", SND_SOC_NOPM, 0, 0,
19505 &usb_switch_mixer_controls),
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080019506 SND_SOC_DAPM_SWITCH("A2DP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
19507 &a2dp_slim7_switch_mixer_controls),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053019508 SND_SOC_DAPM_SWITCH("WSA_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053019509 &cdc_dma_wsa_switch_mixer_controls),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053019510 SND_SOC_DAPM_SWITCH("RX_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053019511 &cdc_dma_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019512
19513 /* Mixer definitions */
19514 SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19515 pri_i2s_rx_mixer_controls, ARRAY_SIZE(pri_i2s_rx_mixer_controls)),
19516 SND_SOC_DAPM_MIXER("SEC_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19517 sec_i2s_rx_mixer_controls, ARRAY_SIZE(sec_i2s_rx_mixer_controls)),
19518 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19519 slimbus_rx_mixer_controls, ARRAY_SIZE(slimbus_rx_mixer_controls)),
19520 SND_SOC_DAPM_MIXER("SLIMBUS_2_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19521 slimbus_2_rx_mixer_controls, ARRAY_SIZE(slimbus_2_rx_mixer_controls)),
19522 SND_SOC_DAPM_MIXER("SLIMBUS_5_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19523 slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
19524 SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19525 slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
Surendar Karka3ef3d812018-09-28 18:52:35 +053019526 SND_SOC_DAPM_MIXER("SLIMBUS_9_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19527 slimbus_9_rx_mixer_controls, ARRAY_SIZE(slimbus_9_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019528 SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
19529 hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
19530 SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
19531 display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070019532 SND_SOC_DAPM_MIXER("DISPLAY_PORT1 Mixer", SND_SOC_NOPM, 0, 0,
19533 display_port1_mixer_controls, ARRAY_SIZE(display_port1_mixer_controls)),
Ralf Herzc8701f72018-06-20 11:37:35 +020019534 SND_SOC_DAPM_MIXER("PRI_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19535 pri_spdif_rx_mixer_controls, ARRAY_SIZE(pri_spdif_rx_mixer_controls)),
19536 SND_SOC_DAPM_MIXER("SEC_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19537 sec_spdif_rx_mixer_controls, ARRAY_SIZE(sec_spdif_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019538 SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19539 mi2s_rx_mixer_controls, ARRAY_SIZE(mi2s_rx_mixer_controls)),
19540 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19541 quaternary_mi2s_rx_mixer_controls,
19542 ARRAY_SIZE(quaternary_mi2s_rx_mixer_controls)),
19543 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19544 tertiary_mi2s_rx_mixer_controls,
19545 ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
19546 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19547 secondary_mi2s_rx_mixer_controls,
19548 ARRAY_SIZE(secondary_mi2s_rx_mixer_controls)),
19549 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_SD1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19550 secondary_mi2s_rx2_mixer_controls,
19551 ARRAY_SIZE(secondary_mi2s_rx2_mixer_controls)),
19552 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19553 primary_mi2s_rx_mixer_controls,
19554 ARRAY_SIZE(primary_mi2s_rx_mixer_controls)),
19555 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19556 int0_mi2s_rx_mixer_controls,
19557 ARRAY_SIZE(int0_mi2s_rx_mixer_controls)),
19558 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19559 int4_mi2s_rx_mixer_controls,
19560 ARRAY_SIZE(int4_mi2s_rx_mixer_controls)),
19561 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19562 quinary_mi2s_rx_mixer_controls,
19563 ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
19564 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19565 pri_tdm_rx_0_mixer_controls,
19566 ARRAY_SIZE(pri_tdm_rx_0_mixer_controls)),
19567 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19568 pri_tdm_rx_1_mixer_controls,
19569 ARRAY_SIZE(pri_tdm_rx_1_mixer_controls)),
19570 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19571 pri_tdm_rx_2_mixer_controls,
19572 ARRAY_SIZE(pri_tdm_rx_2_mixer_controls)),
19573 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19574 pri_tdm_rx_3_mixer_controls,
19575 ARRAY_SIZE(pri_tdm_rx_3_mixer_controls)),
19576 SND_SOC_DAPM_MIXER("PRI_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19577 pri_tdm_tx_0_mixer_controls,
19578 ARRAY_SIZE(pri_tdm_tx_0_mixer_controls)),
19579 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19580 sec_tdm_rx_0_mixer_controls,
19581 ARRAY_SIZE(sec_tdm_rx_0_mixer_controls)),
19582 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19583 sec_tdm_rx_1_mixer_controls,
19584 ARRAY_SIZE(sec_tdm_rx_1_mixer_controls)),
19585 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19586 sec_tdm_rx_2_mixer_controls,
19587 ARRAY_SIZE(sec_tdm_rx_2_mixer_controls)),
19588 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19589 sec_tdm_rx_3_mixer_controls,
19590 ARRAY_SIZE(sec_tdm_rx_3_mixer_controls)),
19591 SND_SOC_DAPM_MIXER("SEC_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19592 sec_tdm_tx_0_mixer_controls,
19593 ARRAY_SIZE(sec_tdm_tx_0_mixer_controls)),
19594 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19595 tert_tdm_rx_0_mixer_controls,
19596 ARRAY_SIZE(tert_tdm_rx_0_mixer_controls)),
19597 SND_SOC_DAPM_MIXER("TERT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19598 tert_tdm_tx_0_mixer_controls,
19599 ARRAY_SIZE(tert_tdm_tx_0_mixer_controls)),
19600 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19601 tert_tdm_rx_1_mixer_controls,
19602 ARRAY_SIZE(tert_tdm_rx_1_mixer_controls)),
19603 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19604 tert_tdm_rx_2_mixer_controls,
19605 ARRAY_SIZE(tert_tdm_rx_2_mixer_controls)),
19606 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19607 tert_tdm_rx_3_mixer_controls,
19608 ARRAY_SIZE(tert_tdm_rx_3_mixer_controls)),
19609 SND_SOC_DAPM_MIXER("TERT_TDM_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
19610 tert_tdm_rx_4_mixer_controls,
19611 ARRAY_SIZE(tert_tdm_rx_4_mixer_controls)),
19612 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19613 quat_tdm_rx_0_mixer_controls,
19614 ARRAY_SIZE(quat_tdm_rx_0_mixer_controls)),
19615 SND_SOC_DAPM_MIXER("QUAT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19616 quat_tdm_tx_0_mixer_controls,
19617 ARRAY_SIZE(quat_tdm_tx_0_mixer_controls)),
19618 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19619 quat_tdm_rx_1_mixer_controls,
19620 ARRAY_SIZE(quat_tdm_rx_1_mixer_controls)),
19621 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19622 quat_tdm_rx_2_mixer_controls,
19623 ARRAY_SIZE(quat_tdm_rx_2_mixer_controls)),
19624 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19625 quat_tdm_rx_3_mixer_controls,
19626 ARRAY_SIZE(quat_tdm_rx_3_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019627 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19628 quin_tdm_rx_0_mixer_controls,
19629 ARRAY_SIZE(quin_tdm_rx_0_mixer_controls)),
19630 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19631 quin_tdm_tx_0_mixer_controls,
19632 ARRAY_SIZE(quin_tdm_tx_0_mixer_controls)),
19633 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19634 quin_tdm_rx_1_mixer_controls,
19635 ARRAY_SIZE(quin_tdm_rx_1_mixer_controls)),
19636 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19637 quin_tdm_rx_2_mixer_controls,
19638 ARRAY_SIZE(quin_tdm_rx_2_mixer_controls)),
19639 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19640 quin_tdm_rx_3_mixer_controls,
19641 ARRAY_SIZE(quin_tdm_rx_3_mixer_controls)),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019642 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19643 wsa_cdc_dma_rx_0_mixer_controls,
19644 ARRAY_SIZE(wsa_cdc_dma_rx_0_mixer_controls)),
19645 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19646 wsa_cdc_dma_rx_1_mixer_controls,
19647 ARRAY_SIZE(wsa_cdc_dma_rx_1_mixer_controls)),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019648 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19649 rx_cdc_dma_rx_0_mixer_controls,
19650 ARRAY_SIZE(rx_cdc_dma_rx_0_mixer_controls)),
19651 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19652 rx_cdc_dma_rx_1_mixer_controls,
19653 ARRAY_SIZE(rx_cdc_dma_rx_1_mixer_controls)),
19654 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19655 rx_cdc_dma_rx_2_mixer_controls,
19656 ARRAY_SIZE(rx_cdc_dma_rx_2_mixer_controls)),
19657 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19658 rx_cdc_dma_rx_3_mixer_controls,
19659 ARRAY_SIZE(rx_cdc_dma_rx_3_mixer_controls)),
19660 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
19661 rx_cdc_dma_rx_4_mixer_controls,
19662 ARRAY_SIZE(rx_cdc_dma_rx_4_mixer_controls)),
19663 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_5 Audio Mixer", SND_SOC_NOPM, 0, 0,
19664 rx_cdc_dma_rx_5_mixer_controls,
19665 ARRAY_SIZE(rx_cdc_dma_rx_5_mixer_controls)),
19666 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_6 Audio Mixer", SND_SOC_NOPM, 0, 0,
19667 rx_cdc_dma_rx_6_mixer_controls,
19668 ARRAY_SIZE(rx_cdc_dma_rx_6_mixer_controls)),
19669 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_7 Audio Mixer", SND_SOC_NOPM, 0, 0,
19670 rx_cdc_dma_rx_7_mixer_controls,
19671 ARRAY_SIZE(rx_cdc_dma_rx_7_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019672 SND_SOC_DAPM_MIXER("MultiMedia1 Mixer", SND_SOC_NOPM, 0, 0,
19673 mmul1_mixer_controls, ARRAY_SIZE(mmul1_mixer_controls)),
19674 SND_SOC_DAPM_MIXER("MultiMedia2 Mixer", SND_SOC_NOPM, 0, 0,
19675 mmul2_mixer_controls, ARRAY_SIZE(mmul2_mixer_controls)),
19676 SND_SOC_DAPM_MIXER("MultiMedia3 Mixer", SND_SOC_NOPM, 0, 0,
19677 mmul3_mixer_controls, ARRAY_SIZE(mmul3_mixer_controls)),
19678 SND_SOC_DAPM_MIXER("MultiMedia4 Mixer", SND_SOC_NOPM, 0, 0,
19679 mmul4_mixer_controls, ARRAY_SIZE(mmul4_mixer_controls)),
19680 SND_SOC_DAPM_MIXER("MultiMedia5 Mixer", SND_SOC_NOPM, 0, 0,
19681 mmul5_mixer_controls, ARRAY_SIZE(mmul5_mixer_controls)),
19682 SND_SOC_DAPM_MIXER("MultiMedia6 Mixer", SND_SOC_NOPM, 0, 0,
19683 mmul6_mixer_controls, ARRAY_SIZE(mmul6_mixer_controls)),
19684 SND_SOC_DAPM_MIXER("MultiMedia8 Mixer", SND_SOC_NOPM, 0, 0,
19685 mmul8_mixer_controls, ARRAY_SIZE(mmul8_mixer_controls)),
19686 SND_SOC_DAPM_MIXER("MultiMedia9 Mixer", SND_SOC_NOPM, 0, 0,
19687 mmul9_mixer_controls, ARRAY_SIZE(mmul9_mixer_controls)),
Laxminath Kasam38070be2017-08-17 18:21:59 +053019688 SND_SOC_DAPM_MIXER("MultiMedia10 Mixer", SND_SOC_NOPM, 0, 0,
19689 mmul10_mixer_controls, ARRAY_SIZE(mmul10_mixer_controls)),
Asish Bhattacharya34504582017-08-08 12:55:01 +053019690 SND_SOC_DAPM_MIXER("MultiMedia16 Mixer", SND_SOC_NOPM, 0, 0,
19691 mmul16_mixer_controls, ARRAY_SIZE(mmul16_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019692 SND_SOC_DAPM_MIXER("MultiMedia17 Mixer", SND_SOC_NOPM, 0, 0,
19693 mmul17_mixer_controls, ARRAY_SIZE(mmul17_mixer_controls)),
19694 SND_SOC_DAPM_MIXER("MultiMedia18 Mixer", SND_SOC_NOPM, 0, 0,
19695 mmul18_mixer_controls, ARRAY_SIZE(mmul18_mixer_controls)),
19696 SND_SOC_DAPM_MIXER("MultiMedia19 Mixer", SND_SOC_NOPM, 0, 0,
19697 mmul19_mixer_controls, ARRAY_SIZE(mmul19_mixer_controls)),
19698 SND_SOC_DAPM_MIXER("MultiMedia20 Mixer", SND_SOC_NOPM, 0, 0,
19699 mmul20_mixer_controls, ARRAY_SIZE(mmul20_mixer_controls)),
Derek Chen07c6d1c2018-07-05 10:39:25 -070019700 SND_SOC_DAPM_MIXER("MultiMedia21 Mixer", SND_SOC_NOPM, 0, 0,
19701 mmul21_mixer_controls, ARRAY_SIZE(mmul21_mixer_controls)),
Surendar Karkac1cde372018-08-14 18:56:24 +053019702 SND_SOC_DAPM_MIXER("MultiMedia27 Mixer", SND_SOC_NOPM, 0, 0,
19703 mmul27_mixer_controls, ARRAY_SIZE(mmul27_mixer_controls)),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019704 SND_SOC_DAPM_MIXER("MultiMedia28 Mixer", SND_SOC_NOPM, 0, 0,
19705 mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
19706 SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
19707 mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019708 SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19709 auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
19710 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19711 sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
19712 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19713 tert_auxpcm_rx_mixer_controls,
19714 ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
19715 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19716 quat_auxpcm_rx_mixer_controls,
19717 ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019718 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19719 quin_auxpcm_rx_mixer_controls,
19720 ARRAY_SIZE(quin_auxpcm_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019721 /* incall */
19722 SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
19723 incall_music_delivery_mixer_controls,
19724 ARRAY_SIZE(incall_music_delivery_mixer_controls)),
19725 SND_SOC_DAPM_MIXER("Incall_Music_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19726 incall_music2_delivery_mixer_controls,
19727 ARRAY_SIZE(incall_music2_delivery_mixer_controls)),
19728 SND_SOC_DAPM_MIXER("SLIMBUS_4_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19729 slimbus_4_rx_mixer_controls,
19730 ARRAY_SIZE(slimbus_4_rx_mixer_controls)),
19731 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19732 slimbus_6_rx_mixer_controls,
19733 ARRAY_SIZE(slimbus_6_rx_mixer_controls)),
19734 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19735 usb_audio_rx_mixer_controls,
19736 ARRAY_SIZE(usb_audio_rx_mixer_controls)),
19737 /* Voice Mixer */
19738 SND_SOC_DAPM_MIXER("PRI_RX_Voice Mixer",
19739 SND_SOC_NOPM, 0, 0, pri_rx_voice_mixer_controls,
19740 ARRAY_SIZE(pri_rx_voice_mixer_controls)),
19741 SND_SOC_DAPM_MIXER("SEC_RX_Voice Mixer",
19742 SND_SOC_NOPM, 0, 0,
19743 sec_i2s_rx_voice_mixer_controls,
19744 ARRAY_SIZE(sec_i2s_rx_voice_mixer_controls)),
19745 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_Voice Mixer",
19746 SND_SOC_NOPM, 0, 0,
19747 sec_mi2s_rx_voice_mixer_controls,
19748 ARRAY_SIZE(sec_mi2s_rx_voice_mixer_controls)),
19749 SND_SOC_DAPM_MIXER("SLIM_0_RX_Voice Mixer",
19750 SND_SOC_NOPM, 0, 0,
19751 slimbus_rx_voice_mixer_controls,
19752 ARRAY_SIZE(slimbus_rx_voice_mixer_controls)),
19753 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX_Voice Mixer",
19754 SND_SOC_NOPM, 0, 0,
19755 bt_sco_rx_voice_mixer_controls,
19756 ARRAY_SIZE(bt_sco_rx_voice_mixer_controls)),
19757 SND_SOC_DAPM_MIXER("AFE_PCM_RX_Voice Mixer",
19758 SND_SOC_NOPM, 0, 0,
19759 afe_pcm_rx_voice_mixer_controls,
19760 ARRAY_SIZE(afe_pcm_rx_voice_mixer_controls)),
19761 SND_SOC_DAPM_MIXER("AUX_PCM_RX_Voice Mixer",
19762 SND_SOC_NOPM, 0, 0,
19763 aux_pcm_rx_voice_mixer_controls,
19764 ARRAY_SIZE(aux_pcm_rx_voice_mixer_controls)),
19765 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX_Voice Mixer",
19766 SND_SOC_NOPM, 0, 0,
19767 sec_aux_pcm_rx_voice_mixer_controls,
19768 ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
19769 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
19770 SND_SOC_NOPM, 0, 0,
19771 tert_aux_pcm_rx_voice_mixer_controls,
19772 ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
19773 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
19774 SND_SOC_NOPM, 0, 0,
19775 quat_aux_pcm_rx_voice_mixer_controls,
19776 ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019777 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX_Voice Mixer",
19778 SND_SOC_NOPM, 0, 0,
19779 quin_aux_pcm_rx_voice_mixer_controls,
19780 ARRAY_SIZE(quin_aux_pcm_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019781 SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
19782 SND_SOC_NOPM, 0, 0,
19783 hdmi_rx_voice_mixer_controls,
19784 ARRAY_SIZE(hdmi_rx_voice_mixer_controls)),
19785 SND_SOC_DAPM_MIXER("MI2S_RX_Voice Mixer",
19786 SND_SOC_NOPM, 0, 0,
19787 mi2s_rx_voice_mixer_controls,
19788 ARRAY_SIZE(mi2s_rx_voice_mixer_controls)),
19789 SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer",
19790 SND_SOC_NOPM, 0, 0,
19791 pri_mi2s_rx_voice_mixer_controls,
19792 ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)),
19793 SND_SOC_DAPM_MIXER("INT0_MI2S_RX_Voice Mixer",
19794 SND_SOC_NOPM, 0, 0,
19795 int0_mi2s_rx_voice_mixer_controls,
19796 ARRAY_SIZE(int0_mi2s_rx_voice_mixer_controls)),
19797 SND_SOC_DAPM_MIXER("INT4_MI2S_RX_Voice Mixer",
19798 SND_SOC_NOPM, 0, 0,
19799 int4_mi2s_rx_voice_mixer_controls,
19800 ARRAY_SIZE(int4_mi2s_rx_voice_mixer_controls)),
19801 SND_SOC_DAPM_MIXER("TERT_MI2S_RX_Voice Mixer",
19802 SND_SOC_NOPM, 0, 0,
19803 tert_mi2s_rx_voice_mixer_controls,
19804 ARRAY_SIZE(tert_mi2s_rx_voice_mixer_controls)),
19805 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX_Voice Mixer",
19806 SND_SOC_NOPM, 0, 0,
19807 quat_mi2s_rx_voice_mixer_controls,
19808 ARRAY_SIZE(quat_mi2s_rx_voice_mixer_controls)),
19809 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX_Voice Mixer",
19810 SND_SOC_NOPM, 0, 0,
19811 quin_mi2s_rx_voice_mixer_controls,
19812 ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)),
19813 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer",
19814 SND_SOC_NOPM, 0, 0,
19815 quat_tdm_rx_2_voice_mixer_controls,
19816 ARRAY_SIZE(quat_tdm_rx_2_voice_mixer_controls)),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053019817 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0_Voice Mixer",
19818 SND_SOC_NOPM, 0, 0,
19819 wsa_cdc_dma_rx_0_voice_mixer_controls,
19820 ARRAY_SIZE(wsa_cdc_dma_rx_0_voice_mixer_controls)),
19821 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0_Voice Mixer",
19822 SND_SOC_NOPM, 0, 0,
19823 rx_cdc_dma_rx_0_voice_mixer_controls,
19824 ARRAY_SIZE(rx_cdc_dma_rx_0_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019825 SND_SOC_DAPM_MIXER("Voip_Tx Mixer",
19826 SND_SOC_NOPM, 0, 0, tx_voip_mixer_controls,
19827 ARRAY_SIZE(tx_voip_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019828 SND_SOC_DAPM_MIXER("VoiceMMode1_Tx Mixer",
19829 SND_SOC_NOPM, 0, 0, tx_voicemmode1_mixer_controls,
19830 ARRAY_SIZE(tx_voicemmode1_mixer_controls)),
19831 SND_SOC_DAPM_MIXER("VoiceMMode2_Tx Mixer",
19832 SND_SOC_NOPM, 0, 0, tx_voicemmode2_mixer_controls,
19833 ARRAY_SIZE(tx_voicemmode2_mixer_controls)),
19834 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19835 int_bt_sco_rx_mixer_controls, ARRAY_SIZE(int_bt_sco_rx_mixer_controls)),
19836 SND_SOC_DAPM_MIXER("INTERNAL_A2DP_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19837 int_bt_a2dp_rx_mixer_controls,
19838 ARRAY_SIZE(int_bt_a2dp_rx_mixer_controls)),
19839 SND_SOC_DAPM_MIXER("INTERNAL_FM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19840 int_fm_rx_mixer_controls, ARRAY_SIZE(int_fm_rx_mixer_controls)),
19841 SND_SOC_DAPM_MIXER("AFE_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19842 afe_pcm_rx_mixer_controls, ARRAY_SIZE(afe_pcm_rx_mixer_controls)),
19843 SND_SOC_DAPM_MIXER("Voice Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19844 tx_voice_stub_mixer_controls, ARRAY_SIZE(tx_voice_stub_mixer_controls)),
19845 SND_SOC_DAPM_MIXER("Voice2 Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19846 tx_voice2_stub_mixer_controls,
19847 ARRAY_SIZE(tx_voice2_stub_mixer_controls)),
19848 SND_SOC_DAPM_MIXER("VoLTE Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19849 tx_volte_stub_mixer_controls, ARRAY_SIZE(tx_volte_stub_mixer_controls)),
19850 SND_SOC_DAPM_MIXER("STUB_RX Mixer", SND_SOC_NOPM, 0, 0,
19851 stub_rx_mixer_controls, ARRAY_SIZE(stub_rx_mixer_controls)),
19852 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Mixer", SND_SOC_NOPM, 0, 0,
19853 slimbus_1_rx_mixer_controls, ARRAY_SIZE(slimbus_1_rx_mixer_controls)),
19854 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19855 slimbus_3_rx_mixer_controls, ARRAY_SIZE(slimbus_3_rx_mixer_controls)),
19856 SND_SOC_DAPM_MIXER("SLIM_6_RX_Voice Mixer",
19857 SND_SOC_NOPM, 0, 0,
19858 slimbus_6_rx_voice_mixer_controls,
19859 ARRAY_SIZE(slimbus_6_rx_voice_mixer_controls)),
19860 SND_SOC_DAPM_MIXER("SLIM_7_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19861 slimbus_7_rx_voice_mixer_controls,
19862 ARRAY_SIZE(slimbus_7_rx_voice_mixer_controls)),
19863 SND_SOC_DAPM_MIXER("SLIM_8_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19864 slimbus_8_rx_voice_mixer_controls,
19865 ARRAY_SIZE(slimbus_8_rx_voice_mixer_controls)),
19866 /* port mixer */
19867 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Port Mixer",
19868 SND_SOC_NOPM, 0, 0, sbus_0_rx_port_mixer_controls,
19869 ARRAY_SIZE(sbus_0_rx_port_mixer_controls)),
19870 SND_SOC_DAPM_MIXER("AUX_PCM_RX Port Mixer",
19871 SND_SOC_NOPM, 0, 0, aux_pcm_rx_port_mixer_controls,
19872 ARRAY_SIZE(aux_pcm_rx_port_mixer_controls)),
19873 SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
19874 SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
19875 ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
19876 SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
19877 SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
19878 ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
19879 SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
19880 SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
19881 ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019882 SND_SOC_DAPM_MIXER("QUIN_AUXPCM_RX Port Mixer",
19883 SND_SOC_NOPM, 0, 0, quin_auxpcm_rx_port_mixer_controls,
19884 ARRAY_SIZE(quin_auxpcm_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019885 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19886 sbus_1_rx_port_mixer_controls,
19887 ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
19888 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19889 bt_sco_rx_port_mixer_controls,
19890 ARRAY_SIZE(bt_sco_rx_port_mixer_controls)),
19891 SND_SOC_DAPM_MIXER("AFE_PCM_RX Port Mixer",
19892 SND_SOC_NOPM, 0, 0, afe_pcm_rx_port_mixer_controls,
19893 ARRAY_SIZE(afe_pcm_rx_port_mixer_controls)),
19894 SND_SOC_DAPM_MIXER("HDMI_RX Port Mixer",
19895 SND_SOC_NOPM, 0, 0, hdmi_rx_port_mixer_controls,
19896 ARRAY_SIZE(hdmi_rx_port_mixer_controls)),
19897 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
19898 SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
19899 ARRAY_SIZE(display_port_rx_port_mixer_controls)),
Karthikeyan Manifbea92f2018-06-14 16:38:15 -070019900 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1 Port Mixer",
Karthikeyan Mani57550082018-05-03 18:43:58 -070019901 SND_SOC_NOPM, 0, 0, display_port_rx1_port_mixer_controls,
19902 ARRAY_SIZE(display_port_rx1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019903 SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
19904 SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
19905 ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
19906 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX Port Mixer",
19907 SND_SOC_NOPM, 0, 0, sbus_3_rx_port_mixer_controls,
19908 ARRAY_SIZE(sbus_3_rx_port_mixer_controls)),
19909 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Port Mixer",
19910 SND_SOC_NOPM, 0, 0, sbus_6_rx_port_mixer_controls,
19911 ARRAY_SIZE(sbus_6_rx_port_mixer_controls)),
19912 SND_SOC_DAPM_MIXER("MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19913 mi2s_rx_port_mixer_controls, ARRAY_SIZE(mi2s_rx_port_mixer_controls)),
19914 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19915 primary_mi2s_rx_port_mixer_controls,
19916 ARRAY_SIZE(primary_mi2s_rx_port_mixer_controls)),
19917 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19918 sec_mi2s_rx_port_mixer_controls,
19919 ARRAY_SIZE(sec_mi2s_rx_port_mixer_controls)),
19920 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19921 tert_mi2s_rx_port_mixer_controls,
19922 ARRAY_SIZE(tert_mi2s_rx_port_mixer_controls)),
19923 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19924 quat_mi2s_rx_port_mixer_controls,
19925 ARRAY_SIZE(quat_mi2s_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019926 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19927 quin_mi2s_rx_port_mixer_controls,
19928 ARRAY_SIZE(quin_mi2s_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019929 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19930 pri_tdm_rx_0_port_mixer_controls,
19931 ARRAY_SIZE(pri_tdm_rx_0_port_mixer_controls)),
19932 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19933 pri_tdm_rx_1_port_mixer_controls,
19934 ARRAY_SIZE(pri_tdm_rx_1_port_mixer_controls)),
19935 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19936 pri_tdm_rx_2_port_mixer_controls,
19937 ARRAY_SIZE(pri_tdm_rx_2_port_mixer_controls)),
19938 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19939 pri_tdm_rx_3_port_mixer_controls,
19940 ARRAY_SIZE(pri_tdm_rx_3_port_mixer_controls)),
19941 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19942 sec_tdm_rx_0_port_mixer_controls,
19943 ARRAY_SIZE(sec_tdm_rx_0_port_mixer_controls)),
19944 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19945 sec_tdm_rx_1_port_mixer_controls,
19946 ARRAY_SIZE(sec_tdm_rx_1_port_mixer_controls)),
19947 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19948 sec_tdm_rx_2_port_mixer_controls,
19949 ARRAY_SIZE(sec_tdm_rx_2_port_mixer_controls)),
19950 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19951 sec_tdm_rx_3_port_mixer_controls,
19952 ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
Derek Chenfdcc0982018-10-02 15:14:03 -070019953 SND_SOC_DAPM_MIXER("SEC_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
19954 sec_tdm_rx_7_port_mixer_controls,
19955 ARRAY_SIZE(sec_tdm_rx_7_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019956 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19957 tert_tdm_rx_0_port_mixer_controls,
19958 ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
19959 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19960 tert_tdm_rx_1_port_mixer_controls,
19961 ARRAY_SIZE(tert_tdm_rx_1_port_mixer_controls)),
19962 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19963 tert_tdm_rx_2_port_mixer_controls,
19964 ARRAY_SIZE(tert_tdm_rx_2_port_mixer_controls)),
19965 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19966 tert_tdm_rx_3_port_mixer_controls,
19967 ARRAY_SIZE(tert_tdm_rx_3_port_mixer_controls)),
19968 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19969 quat_tdm_rx_0_port_mixer_controls,
19970 ARRAY_SIZE(quat_tdm_rx_0_port_mixer_controls)),
19971 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19972 quat_tdm_rx_1_port_mixer_controls,
19973 ARRAY_SIZE(quat_tdm_rx_1_port_mixer_controls)),
19974 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19975 quat_tdm_rx_2_port_mixer_controls,
19976 ARRAY_SIZE(quat_tdm_rx_2_port_mixer_controls)),
19977 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19978 quat_tdm_rx_3_port_mixer_controls,
19979 ARRAY_SIZE(quat_tdm_rx_3_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019980 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19981 quin_tdm_rx_0_port_mixer_controls,
19982 ARRAY_SIZE(quin_tdm_rx_0_port_mixer_controls)),
19983 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19984 quin_tdm_rx_1_port_mixer_controls,
19985 ARRAY_SIZE(quin_tdm_rx_1_port_mixer_controls)),
19986 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19987 quin_tdm_rx_2_port_mixer_controls,
19988 ARRAY_SIZE(quin_tdm_rx_2_port_mixer_controls)),
19989 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19990 quin_tdm_rx_3_port_mixer_controls,
19991 ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019992 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19993 int0_mi2s_rx_port_mixer_controls,
19994 ARRAY_SIZE(int0_mi2s_rx_port_mixer_controls)),
19995 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19996 int4_mi2s_rx_port_mixer_controls,
19997 ARRAY_SIZE(int4_mi2s_rx_port_mixer_controls)),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053019998 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19999 wsa_cdc_dma_rx_0_port_mixer_controls,
20000 ARRAY_SIZE(wsa_cdc_dma_rx_0_port_mixer_controls)),
20001 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
20002 rx_cdc_dma_rx_0_port_mixer_controls,
20003 ARRAY_SIZE(rx_cdc_dma_rx_0_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020004 SND_SOC_DAPM_MIXER("QCHAT_Tx Mixer",
20005 SND_SOC_NOPM, 0, 0, tx_qchat_mixer_controls,
20006 ARRAY_SIZE(tx_qchat_mixer_controls)),
20007 SND_SOC_DAPM_MIXER("USB_AUDIO_RX_Voice Mixer",
20008 SND_SOC_NOPM, 0, 0, usb_audio_rx_voice_mixer_controls,
20009 ARRAY_SIZE(usb_audio_rx_voice_mixer_controls)),
20010 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
20011 SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
20012 ARRAY_SIZE(usb_rx_port_mixer_controls)),
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080020013 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
20014 SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
20015 ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070020016 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1_Voice Mixer",
20017 SND_SOC_NOPM, 0, 0, display_port_rx1_voice_mixer_controls,
20018 ARRAY_SIZE(display_port_rx1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020019 /* lsm mixer definitions */
20020 SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
20021 lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
20022 SND_SOC_DAPM_MIXER("LSM2 Mixer", SND_SOC_NOPM, 0, 0,
20023 lsm2_mixer_controls, ARRAY_SIZE(lsm2_mixer_controls)),
20024 SND_SOC_DAPM_MIXER("LSM3 Mixer", SND_SOC_NOPM, 0, 0,
20025 lsm3_mixer_controls, ARRAY_SIZE(lsm3_mixer_controls)),
20026 SND_SOC_DAPM_MIXER("LSM4 Mixer", SND_SOC_NOPM, 0, 0,
20027 lsm4_mixer_controls, ARRAY_SIZE(lsm4_mixer_controls)),
20028 SND_SOC_DAPM_MIXER("LSM5 Mixer", SND_SOC_NOPM, 0, 0,
20029 lsm5_mixer_controls, ARRAY_SIZE(lsm5_mixer_controls)),
20030 SND_SOC_DAPM_MIXER("LSM6 Mixer", SND_SOC_NOPM, 0, 0,
20031 lsm6_mixer_controls, ARRAY_SIZE(lsm6_mixer_controls)),
20032 SND_SOC_DAPM_MIXER("LSM7 Mixer", SND_SOC_NOPM, 0, 0,
20033 lsm7_mixer_controls, ARRAY_SIZE(lsm7_mixer_controls)),
20034 SND_SOC_DAPM_MIXER("LSM8 Mixer", SND_SOC_NOPM, 0, 0,
20035 lsm8_mixer_controls, ARRAY_SIZE(lsm8_mixer_controls)),
20036 /* Virtual Pins to force backends ON atm */
20037 SND_SOC_DAPM_OUTPUT("BE_OUT"),
20038 SND_SOC_DAPM_INPUT("BE_IN"),
20039
20040 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
20041 &slim0_rx_vi_fb_lch_mux),
20042 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
20043 &slim0_rx_vi_fb_rch_mux),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020044 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
20045 &wsa_rx_0_vi_fb_lch_mux),
20046 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
20047 &wsa_rx_0_vi_fb_rch_mux),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020048 SND_SOC_DAPM_MUX("PRI_MI2S_RX_VI_FB_MUX", SND_SOC_NOPM, 0, 0,
20049 &mi2s_rx_vi_fb_mux),
20050 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_MONO_CH_MUX", SND_SOC_NOPM, 0, 0,
20051 &int4_mi2s_rx_vi_fb_mono_ch_mux),
20052 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", SND_SOC_NOPM, 0, 0,
20053 &int4_mi2s_rx_vi_fb_stereo_ch_mux),
20054
20055 SND_SOC_DAPM_MUX("VOC_EXT_EC MUX", SND_SOC_NOPM, 0, 0,
20056 &voc_ext_ec_mux),
20057 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL1 MUX", SND_SOC_NOPM, 0, 0,
20058 &ext_ec_ref_mux_ul1),
20059 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL2 MUX", SND_SOC_NOPM, 0, 0,
20060 &ext_ec_ref_mux_ul2),
20061 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL3 MUX", SND_SOC_NOPM, 0, 0,
20062 &ext_ec_ref_mux_ul3),
20063 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL4 MUX", SND_SOC_NOPM, 0, 0,
20064 &ext_ec_ref_mux_ul4),
20065 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL5 MUX", SND_SOC_NOPM, 0, 0,
20066 &ext_ec_ref_mux_ul5),
20067 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL6 MUX", SND_SOC_NOPM, 0, 0,
20068 &ext_ec_ref_mux_ul6),
20069 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL8 MUX", SND_SOC_NOPM, 0, 0,
20070 &ext_ec_ref_mux_ul8),
20071 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL9 MUX", SND_SOC_NOPM, 0, 0,
20072 &ext_ec_ref_mux_ul9),
Laxminath Kasam38070be2017-08-17 18:21:59 +053020073 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL10 MUX", SND_SOC_NOPM, 0, 0,
20074 &ext_ec_ref_mux_ul10),
Asish Bhattacharya34504582017-08-08 12:55:01 +053020075 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL16 MUX", SND_SOC_NOPM, 0, 0,
20076 &ext_ec_ref_mux_ul16),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020077 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL17 MUX", SND_SOC_NOPM, 0, 0,
20078 &ext_ec_ref_mux_ul17),
20079 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL18 MUX", SND_SOC_NOPM, 0, 0,
20080 &ext_ec_ref_mux_ul18),
20081 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL19 MUX", SND_SOC_NOPM, 0, 0,
20082 &ext_ec_ref_mux_ul19),
Meng Wang5c4bab72018-04-25 10:40:01 +080020083 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL28 MUX", SND_SOC_NOPM, 0, 0,
20084 &ext_ec_ref_mux_ul28),
20085 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL29 MUX", SND_SOC_NOPM, 0, 0,
20086 &ext_ec_ref_mux_ul29),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020087};
20088
20089static const struct snd_soc_dapm_route intercon[] = {
20090 {"PRI_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20091 {"PRI_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20092 {"PRI_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20093 {"PRI_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20094 {"PRI_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20095 {"PRI_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20096 {"PRI_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20097 {"PRI_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20098 {"PRI_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20099 {"PRI_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20100 {"PRI_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20101 {"PRI_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20102 {"PRI_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20103 {"PRI_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20104 {"PRI_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20105 {"PRI_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020106 {"PRI_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020107 {"PRI_I2S_RX", NULL, "PRI_RX Audio Mixer"},
20108
20109 {"SEC_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20110 {"SEC_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20111 {"SEC_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20112 {"SEC_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20113 {"SEC_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20114 {"SEC_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20115 {"SEC_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20116 {"SEC_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20117 {"SEC_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20118 {"SEC_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20119 {"SEC_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20120 {"SEC_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20121 {"SEC_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20122 {"SEC_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20123 {"SEC_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20124 {"SEC_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020125 {"SEC_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020126 {"SEC_I2S_RX", NULL, "SEC_RX Audio Mixer"},
20127
20128 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20129 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20130 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20131 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20132 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20133 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20134 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20135 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20136 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20137 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20138 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20139 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20140 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20141 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20142 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20143 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020144 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020145 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Audio Mixer"},
20146
20147 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20148 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20149 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20150 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20151 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20152 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20153 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20154 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20155 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20156 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20157 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20158 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20159 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20160 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20161 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20162 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020163 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020164 {"SLIMBUS_2_RX", NULL, "SLIMBUS_2_RX Audio Mixer"},
20165
20166 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20167 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20168 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20169 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20170 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20171 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20172 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20173 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20174 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20175 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20176 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20177 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20178 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20179 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20180 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20181 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020182 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020183 {"SLIMBUS_5_RX", NULL, "SLIMBUS_5_RX Audio Mixer"},
20184
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020185 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20186 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20187 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20188 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20189 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20190 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20191 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20192 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20193 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20194 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20195 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20196 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20197 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20198 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20199 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20200 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020201 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020202 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Audio Mixer"},
20203
20204 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20205 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20206 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20207 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20208 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20209 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20210 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20211 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20212 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20213 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20214 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20215 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20216 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20217 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20218 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20219 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020220 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020221 {"WSA_CDC_DMA_RX_1", NULL, "WSA_CDC_DMA_RX_1 Audio Mixer"},
20222
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020223 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20224 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20225 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20226 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20227 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20228 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20229 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20230 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20231 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20232 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20233 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20234 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20235 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20236 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20237 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20238 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020239 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020240 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Audio Mixer"},
20241
20242 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20243 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20244 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20245 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20246 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20247 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20248 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20249 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20250 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20251 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20252 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20253 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20254 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20255 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20256 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20257 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020258 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020259 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Audio Mixer"},
20260
20261 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20262 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20263 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20264 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20265 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20266 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20267 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20268 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20269 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20270 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20271 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20272 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20273 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20274 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20275 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20276 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020277 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020278 {"RX_CDC_DMA_RX_2", NULL, "RX_CDC_DMA_RX_2 Audio Mixer"},
20279
20280 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20281 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20282 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20283 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20284 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20285 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20286 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20287 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20288 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20289 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20290 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20291 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20292 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20293 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20294 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20295 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020296 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020297 {"RX_CDC_DMA_RX_3", NULL, "RX_CDC_DMA_RX_3 Audio Mixer"},
20298
20299 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
20300 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
20301 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
20302 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
20303 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
20304 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
20305 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
20306 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
20307 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
20308 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
20309 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
20310 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
20311 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
20312 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
20313 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
20314 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020315 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020316 {"RX_CDC_DMA_RX_4", NULL, "RX_CDC_DMA_RX_4 Audio Mixer"},
20317
20318 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia1", "MM_DL1"},
20319 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia2", "MM_DL2"},
20320 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia3", "MM_DL3"},
20321 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia4", "MM_DL4"},
20322 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia5", "MM_DL5"},
20323 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia6", "MM_DL6"},
20324 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia7", "MM_DL7"},
20325 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia8", "MM_DL8"},
20326 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia9", "MM_DL9"},
20327 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia10", "MM_DL10"},
20328 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia11", "MM_DL11"},
20329 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia12", "MM_DL12"},
20330 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia13", "MM_DL13"},
20331 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia14", "MM_DL14"},
20332 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia15", "MM_DL15"},
20333 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020334 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020335 {"RX_CDC_DMA_RX_5", NULL, "RX_CDC_DMA_RX_5 Audio Mixer"},
20336
20337 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia1", "MM_DL1"},
20338 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia2", "MM_DL2"},
20339 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia3", "MM_DL3"},
20340 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia4", "MM_DL4"},
20341 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia5", "MM_DL5"},
20342 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia6", "MM_DL6"},
20343 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia7", "MM_DL7"},
20344 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia8", "MM_DL8"},
20345 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia9", "MM_DL9"},
20346 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia10", "MM_DL10"},
20347 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia11", "MM_DL11"},
20348 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia12", "MM_DL12"},
20349 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia13", "MM_DL13"},
20350 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia14", "MM_DL14"},
20351 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia15", "MM_DL15"},
20352 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020353 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020354 {"RX_CDC_DMA_RX_6", NULL, "RX_CDC_DMA_RX_6 Audio Mixer"},
20355
20356 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia1", "MM_DL1"},
20357 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia2", "MM_DL2"},
20358 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia3", "MM_DL3"},
20359 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia4", "MM_DL4"},
20360 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia5", "MM_DL5"},
20361 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia6", "MM_DL6"},
20362 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia7", "MM_DL7"},
20363 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia8", "MM_DL8"},
20364 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia9", "MM_DL9"},
20365 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia10", "MM_DL10"},
20366 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia11", "MM_DL11"},
20367 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia12", "MM_DL12"},
20368 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia13", "MM_DL13"},
20369 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia14", "MM_DL14"},
20370 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia15", "MM_DL15"},
20371 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020372 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020373 {"RX_CDC_DMA_RX_7", NULL, "RX_CDC_DMA_RX_7 Audio Mixer"},
20374
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020375 {"HDMI Mixer", "MultiMedia1", "MM_DL1"},
20376 {"HDMI Mixer", "MultiMedia2", "MM_DL2"},
20377 {"HDMI Mixer", "MultiMedia3", "MM_DL3"},
20378 {"HDMI Mixer", "MultiMedia4", "MM_DL4"},
20379 {"HDMI Mixer", "MultiMedia5", "MM_DL5"},
20380 {"HDMI Mixer", "MultiMedia6", "MM_DL6"},
20381 {"HDMI Mixer", "MultiMedia7", "MM_DL7"},
20382 {"HDMI Mixer", "MultiMedia8", "MM_DL8"},
20383 {"HDMI Mixer", "MultiMedia9", "MM_DL9"},
20384 {"HDMI Mixer", "MultiMedia10", "MM_DL10"},
20385 {"HDMI Mixer", "MultiMedia11", "MM_DL11"},
20386 {"HDMI Mixer", "MultiMedia12", "MM_DL12"},
20387 {"HDMI Mixer", "MultiMedia13", "MM_DL13"},
20388 {"HDMI Mixer", "MultiMedia14", "MM_DL14"},
20389 {"HDMI Mixer", "MultiMedia15", "MM_DL15"},
20390 {"HDMI Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020391 {"HDMI Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020392 {"HDMI", NULL, "HDMI Mixer"},
20393
20394 {"DISPLAY_PORT Mixer", "MultiMedia1", "MM_DL1"},
20395 {"DISPLAY_PORT Mixer", "MultiMedia2", "MM_DL2"},
20396 {"DISPLAY_PORT Mixer", "MultiMedia3", "MM_DL3"},
20397 {"DISPLAY_PORT Mixer", "MultiMedia4", "MM_DL4"},
20398 {"DISPLAY_PORT Mixer", "MultiMedia5", "MM_DL5"},
20399 {"DISPLAY_PORT Mixer", "MultiMedia6", "MM_DL6"},
20400 {"DISPLAY_PORT Mixer", "MultiMedia7", "MM_DL7"},
20401 {"DISPLAY_PORT Mixer", "MultiMedia8", "MM_DL8"},
20402 {"DISPLAY_PORT Mixer", "MultiMedia9", "MM_DL9"},
20403 {"DISPLAY_PORT Mixer", "MultiMedia10", "MM_DL10"},
20404 {"DISPLAY_PORT Mixer", "MultiMedia11", "MM_DL11"},
20405 {"DISPLAY_PORT Mixer", "MultiMedia12", "MM_DL12"},
20406 {"DISPLAY_PORT Mixer", "MultiMedia13", "MM_DL13"},
20407 {"DISPLAY_PORT Mixer", "MultiMedia14", "MM_DL14"},
20408 {"DISPLAY_PORT Mixer", "MultiMedia15", "MM_DL15"},
20409 {"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020410 {"DISPLAY_PORT Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020411 {"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
20412
Karthikeyan Mani57550082018-05-03 18:43:58 -070020413 {"DISPLAY_PORT1 Mixer", "MultiMedia1", "MM_DL1"},
20414 {"DISPLAY_PORT1 Mixer", "MultiMedia2", "MM_DL2"},
20415 {"DISPLAY_PORT1 Mixer", "MultiMedia3", "MM_DL3"},
20416 {"DISPLAY_PORT1 Mixer", "MultiMedia4", "MM_DL4"},
20417 {"DISPLAY_PORT1 Mixer", "MultiMedia5", "MM_DL5"},
20418 {"DISPLAY_PORT1 Mixer", "MultiMedia6", "MM_DL6"},
20419 {"DISPLAY_PORT1 Mixer", "MultiMedia7", "MM_DL7"},
20420 {"DISPLAY_PORT1 Mixer", "MultiMedia8", "MM_DL8"},
20421 {"DISPLAY_PORT1 Mixer", "MultiMedia9", "MM_DL9"},
20422 {"DISPLAY_PORT1 Mixer", "MultiMedia10", "MM_DL10"},
20423 {"DISPLAY_PORT1 Mixer", "MultiMedia11", "MM_DL11"},
20424 {"DISPLAY_PORT1 Mixer", "MultiMedia12", "MM_DL12"},
20425 {"DISPLAY_PORT1 Mixer", "MultiMedia13", "MM_DL13"},
20426 {"DISPLAY_PORT1 Mixer", "MultiMedia14", "MM_DL14"},
20427 {"DISPLAY_PORT1 Mixer", "MultiMedia15", "MM_DL15"},
20428 {"DISPLAY_PORT1 Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020429 {"DISPLAY_PORT1 Mixer", "MultiMedia26", "MM_DL26"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070020430 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT1 Mixer"},
20431
Ralf Herzc8701f72018-06-20 11:37:35 +020020432 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20433 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20434 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20435 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20436 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20437 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20438 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20439 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20440 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20441 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20442 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20443 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20444 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20445 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20446 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20447 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020448 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020449 {"PRI_SPDIF_RX", NULL, "PRI_SPDIF_RX Audio Mixer"},
20450
20451 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20452 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20453 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20454 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20455 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20456 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20457 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20458 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20459 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20460 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20461 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20462 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20463 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20464 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20465 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20466 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020467 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020468 {"SEC_SPDIF_RX", NULL, "SEC_SPDIF_RX Audio Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020469
20470 /* incall */
20471 {"Incall_Music Audio Mixer", "MultiMedia1", "MM_DL1"},
20472 {"Incall_Music Audio Mixer", "MultiMedia2", "MM_DL2"},
20473 {"Incall_Music Audio Mixer", "MultiMedia5", "MM_DL5"},
20474 {"Incall_Music Audio Mixer", "MultiMedia9", "MM_DL9"},
20475 {"VOICE_PLAYBACK_TX", NULL, "Incall_Music Audio Mixer"},
20476 {"Incall_Music_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20477 {"Incall_Music_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20478 {"Incall_Music_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20479 {"Incall_Music_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20480 {"VOICE2_PLAYBACK_TX", NULL, "Incall_Music_2 Audio Mixer"},
20481 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20482 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20483 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20484 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20485 {"SLIMBUS_4_RX", NULL, "SLIMBUS_4_RX Audio Mixer"},
20486
20487 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20488 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20489 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20490 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20491 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20492 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20493 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20494 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20495 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20496 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20497 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20498 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20499 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20500 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20501 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20502 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020503 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020504 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Audio Mixer"},
20505
20506 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20507 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20508 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20509 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20510 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20511 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20512 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20513 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20514 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20515 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20516 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20517 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20518 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20519 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20520 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20521 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020522 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020523 {"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
20524
Surendar Karka3ef3d812018-09-28 18:52:35 +053020525 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20526 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20527 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20528 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20529 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20530 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20531 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20532 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20533 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20534 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20535 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20536 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20537 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20538 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20539 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20540 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20541 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
20542 {"SLIMBUS_9_RX", NULL, "SLIMBUS_9_RX Audio Mixer"},
20543
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020544 {"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20545 {"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20546 {"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20547 {"USB_AUDIO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20548 {"USB_AUDIO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20549 {"USB_AUDIO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20550 {"USB_AUDIO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20551 {"USB_AUDIO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20552 {"USB_AUDIO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20553 {"USB_AUDIO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20554 {"USB_AUDIO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20555 {"USB_AUDIO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20556 {"USB_AUDIO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20557 {"USB_AUDIO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20558 {"USB_AUDIO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20559 {"USB_AUDIO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020560 {"USB_AUDIO_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020561 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Audio Mixer"},
20562
20563 {"MultiMedia1 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
20564 {"MultiMedia4 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
20565 {"MultiMedia8 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
20566 {"MultiMedia1 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
20567 {"MultiMedia4 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
20568 {"MultiMedia8 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
20569 {"MultiMedia1 Mixer", "SLIM_4_TX", "SLIMBUS_4_TX"},
20570 {"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20571 {"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
20572 {"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020573 {"MultiMedia1 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020574 {"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20575 {"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020576 {"MultiMedia8 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020577 {"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020578 {"MultiMedia4 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020579 {"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020580 {"MultiMedia17 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020581 {"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020582 {"MultiMedia18 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020583 {"MultiMedia19 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020584 {"MultiMedia19 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020585 {"MultiMedia28 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020586 {"MultiMedia28 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020587 {"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020588 {"MultiMedia29 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020589 {"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020590 {"MultiMedia8 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020591 {"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20592 {"MultiMedia4 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20593 {"MultiMedia17 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20594 {"MultiMedia18 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20595 {"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020596 {"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20597 {"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020598 {"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020599 {"MultiMedia18 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010020600 {"MultiMedia19 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20601 {"MultiMedia28 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20602 {"MultiMedia29 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020603 {"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20604 {"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20605 {"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20606 {"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20607 {"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20608 {"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020609 {"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020610 {"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20611 {"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20612 {"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020613 {"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20614 {"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020615 {"MultiMedia3 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020616 {"MultiMedia5 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020617 {"MultiMedia5 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020618 {"MultiMedia10 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020619 {"MultiMedia10 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020620 {"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020621 {"MultiMedia16 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020622 {"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
20623 {"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020624 {"MultiMedia5 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020625 {"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020626 {"MultiMedia10 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020627 {"MultiMedia18 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010020628 {"MultiMedia19 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20629 {"MultiMedia28 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20630 {"MultiMedia29 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020631 {"MultiMedia18 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010020632 {"MultiMedia19 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
20633 {"MultiMedia28 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
20634 {"MultiMedia29 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020635
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020636 {"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20637 {"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20638 {"MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20639 {"MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20640 {"MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20641 {"MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20642 {"MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20643 {"MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20644 {"MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20645 {"MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20646 {"MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20647 {"MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20648 {"MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20649 {"MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20650 {"MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20651 {"MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020652 {"MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020653 {"MI2S_RX", NULL, "MI2S_RX Audio Mixer"},
20654
20655 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20656 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20657 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20658 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20659 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20660 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20661 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20662 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20663 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20664 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20665 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20666 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20667 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20668 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20669 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020670 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020671 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Audio Mixer"},
20672
20673 {"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20674 {"TERT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20675 {"TERT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20676 {"TERT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20677 {"TERT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20678 {"TERT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20679 {"TERT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20680 {"TERT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20681 {"TERT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20682 {"TERT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20683 {"TERT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20684 {"TERT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20685 {"TERT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20686 {"TERT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020687 {"TERT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020688 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Audio Mixer"},
20689
20690 {"SEC_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20691 {"SEC_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20692 {"SEC_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20693 {"SEC_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20694 {"SEC_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20695 {"SEC_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20696 {"SEC_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20697 {"SEC_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20698 {"SEC_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20699 {"SEC_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20700 {"SEC_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20701 {"SEC_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20702 {"SEC_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20703 {"SEC_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020704 {"SEC_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020705 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Audio Mixer"},
20706
20707 {"SEC_MI2S_RX_SD1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20708 {"SEC_MI2S_RX_SD1", NULL, "SEC_MI2S_RX_SD1 Audio Mixer"},
20709
20710 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20711 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20712
20713 {"PRI_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20714 {"PRI_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20715 {"PRI_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20716 {"PRI_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20717 {"PRI_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20718 {"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20719 {"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20720 {"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20721 {"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20722 {"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20723 {"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20724 {"PRI_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20725 {"PRI_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20726 {"PRI_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20727 {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020728 {"PRI_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020729 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
20730
20731 {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20732 {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20733 {"INT0_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20734 {"INT0_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20735 {"INT0_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20736 {"INT0_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20737 {"INT0_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20738 {"INT0_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20739 {"INT0_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20740 {"INT0_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20741 {"INT0_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20742 {"INT0_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20743 {"INT0_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20744 {"INT0_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20745 {"INT0_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20746 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Audio Mixer"},
20747
20748 {"INT4_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20749 {"INT4_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20750 {"INT4_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20751 {"INT4_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20752 {"INT4_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20753 {"INT4_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20754 {"INT4_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20755 {"INT4_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20756 {"INT4_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20757 {"INT4_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20758 {"INT4_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20759 {"INT4_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20760 {"INT4_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20761 {"INT4_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20762 {"INT4_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20763 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Audio Mixer"},
20764
20765 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20766 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20767 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20768 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20769 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20770 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20771 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20772 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20773 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20774 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20775 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20776 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20777 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20778 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20779 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20780 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20781 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20782 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Audio Mixer"},
20783
20784 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20785 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20786 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20787 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20788 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20789 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20790 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20791 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20792 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20793 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20794 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20795 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20796 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20797 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20798 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20799 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020800 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020801 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Audio Mixer"},
20802
20803 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20804 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20805 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20806 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20807 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20808 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20809 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20810 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20811 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20812 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20813 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20814 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20815 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20816 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20817 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20818 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020819 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020820 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Audio Mixer"},
20821
20822 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20823 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20824 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20825 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20826 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20827 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20828 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20829 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20830 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20831 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20832 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20833 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20834 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20835 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20836 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20837 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020838 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020839 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Audio Mixer"},
20840
20841 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20842 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20843 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20844 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20845 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20846 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20847 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20848 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20849 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20850 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20851 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20852 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20853 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20854 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20855 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20856 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020857 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020858 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Audio Mixer"},
20859
20860 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20861 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20862 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20863 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20864 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20865 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20866 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20867 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20868 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20869 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20870 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20871 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20872 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20873 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20874 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20875 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20876 {"PRI_TDM_TX_0", NULL, "PRI_TDM_TX_0 Audio Mixer"},
20877
20878 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20879 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20880 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20881 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20882 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20883 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20884 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20885 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20886 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20887 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20888 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20889 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20890 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20891 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20892 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20893 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020894 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020895 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Audio Mixer"},
20896
20897 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20898 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20899 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20900 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20901 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20902 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20903 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20904 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20905 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20906 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20907 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20908 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20909 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20910 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20911 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20912 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020913 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020914 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Audio Mixer"},
20915
20916 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20917 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20918 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20919 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20920 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20921 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20922 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20923 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20924 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20925 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20926 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20927 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20928 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20929 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20930 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20931 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020932 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020933 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Audio Mixer"},
20934
20935 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20936 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20937 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20938 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20939 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20940 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20941 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20942 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20943 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20944 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20945 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20946 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20947 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20948 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20949 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20950 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020951 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020952 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Audio Mixer"},
20953
20954 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20955 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20956 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20957 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20958 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20959 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20960 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20961 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20962 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20963 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20964 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20965 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20966 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20967 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20968 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20969 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20970 {"SEC_TDM_TX_0", NULL, "SEC_TDM_TX_0 Audio Mixer"},
20971
20972 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20973 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20974 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20975 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20976 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20977 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20978 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20979 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20980 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20981 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20982 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20983 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20984 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20985 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20986 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20987 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020988 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020989 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Audio Mixer"},
20990
20991 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20992 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20993 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20994 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20995 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20996 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20997 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20998 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20999 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21000 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21001 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21002 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21003 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21004 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21005 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21006 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
21007 {"TERT_TDM_TX_0", NULL, "TERT_TDM_TX_0 Audio Mixer"},
21008
21009 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
21010 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
21011 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
21012 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
21013 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
21014 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
21015 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
21016 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
21017 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
21018 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
21019 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
21020 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
21021 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
21022 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
21023 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
21024 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021025 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021026 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Audio Mixer"},
21027
21028 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
21029 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
21030 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
21031 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
21032 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
21033 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
21034 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
21035 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
21036 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
21037 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
21038 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
21039 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
21040 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
21041 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
21042 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
21043 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021044 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021045 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Audio Mixer"},
21046
21047 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
21048 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
21049 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
21050 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
21051 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
21052 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
21053 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
21054 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
21055 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
21056 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
21057 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
21058 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
21059 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
21060 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
21061 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
21062 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021063 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021064 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Audio Mixer"},
21065
21066 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
21067 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
21068 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
21069 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
21070 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
21071 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
21072 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
21073 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
21074 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
21075 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
21076 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
21077 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
21078 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
21079 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
21080 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
21081 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021082 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021083 {"TERT_TDM_RX_4", NULL, "TERT_TDM_RX_4 Audio Mixer"},
21084
21085 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21086 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21087 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21088 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21089 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21090 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21091 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21092 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21093 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21094 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21095 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21096 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21097 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21098 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21099 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21100 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
21101 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021102 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021103 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Audio Mixer"},
21104
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021105 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21106 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21107 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21108 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21109 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21110 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21111 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21112 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21113 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21114 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21115 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21116 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21117 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21118 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21119 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21120 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
21121 {"QUAT_TDM_TX_0", NULL, "QUAT_TDM_TX_0 Audio Mixer"},
21122
21123 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
21124 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
21125 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
21126 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
21127 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
21128 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
21129 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
21130 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
21131 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
21132 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
21133 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
21134 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
21135 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
21136 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
21137 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
21138 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
21139 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021140 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021141 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Audio Mixer"},
21142
21143 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
21144 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
21145 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
21146 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
21147 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
21148 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
21149 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
21150 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
21151 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
21152 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
21153 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
21154 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
21155 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
21156 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
21157 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
21158 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
21159 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021160 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021161 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Audio Mixer"},
21162
21163 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
21164 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
21165 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
21166 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
21167 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
21168 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
21169 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
21170 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
21171 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
21172 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
21173 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
21174 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
21175 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
21176 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
21177 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
21178 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
21179 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021180 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021181 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
21182
Rohit Kumara5077932017-09-10 22:05:05 +053021183 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21184 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21185 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21186 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21187 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21188 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21189 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21190 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21191 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21192 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21193 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21194 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21195 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21196 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21197 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21198 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
21199 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021200 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053021201 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Audio Mixer"},
21202
21203 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21204 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21205 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21206 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21207 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21208 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21209 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21210 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21211 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21212 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21213 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21214 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21215 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21216 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21217 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21218 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
21219 {"QUIN_TDM_TX_0", NULL, "QUIN_TDM_TX_0 Audio Mixer"},
21220
21221 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
21222 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
21223 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
21224 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
21225 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
21226 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
21227 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
21228 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
21229 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
21230 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
21231 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
21232 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
21233 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
21234 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
21235 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
21236 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
21237 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021238 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053021239 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Audio Mixer"},
21240
21241 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
21242 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
21243 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
21244 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
21245 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
21246 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
21247 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
21248 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
21249 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
21250 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
21251 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
21252 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
21253 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
21254 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
21255 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
21256 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
21257 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021258 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053021259 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Audio Mixer"},
21260
21261 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
21262 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
21263 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
21264 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
21265 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
21266 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
21267 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
21268 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
21269 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
21270 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
21271 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
21272 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
21273 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
21274 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
21275 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
21276 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
21277 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021278 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053021279 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Audio Mixer"},
21280
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021281 {"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
21282 {"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
21283 {"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
21284 {"MultiMedia3 Mixer", "MI2S_TX", "MI2S_TX"},
21285 {"MultiMedia5 Mixer", "MI2S_TX", "MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021286 {"MultiMedia10 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021287 {"MultiMedia16 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021288 {"MultiMedia1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21289 {"MultiMedia2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21290 {"MultiMedia6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21291 {"MultiMedia1 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
21292 {"MultiMedia2 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
21293 {"MultiMedia1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21294 {"MultiMedia2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21295 {"MultiMedia1 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
21296 {"MultiMedia2 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
21297 {"MultiMedia1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21298 {"MultiMedia2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21299 {"MultiMedia1 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053021300 {"MultiMedia1 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021301 {"MultiMedia1 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21302 {"MultiMedia3 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
21303 {"MultiMedia5 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021304 {"MultiMedia10 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021305 {"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21306 {"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
21307 {"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021308 {"MultiMedia10 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021309 {"MultiMedia16 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
21310 {"MultiMedia16 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021311 {"MultiMedia1 Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
21312 {"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
21313 {"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021314 {"MultiMedia10 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021315 {"MultiMedia1 Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
21316 {"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
21317 {"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021318 {"MultiMedia10 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021319 {"MultiMedia16 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021320 {"MultiMedia1 Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
21321 {"MultiMedia3 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
21322 {"MultiMedia5 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021323 {"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21324 {"MultiMedia2 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
21325 {"MultiMedia2 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21326 {"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21327 {"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21328 {"MultiMedia1 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21329 {"MultiMedia2 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21330 {"MultiMedia6 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053021331 {"MultiMedia6 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021332 {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21333 {"MultiMedia3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21334 {"MultiMedia5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021335 {"MultiMedia10 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021336 {"MultiMedia6 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
21337 {"MultiMedia3 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
21338 {"MultiMedia5 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021339 {"MultiMedia10 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021340 {"MultiMedia16 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021341 {"MultiMedia6 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21342 {"MultiMedia3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21343 {"MultiMedia5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021344 {"MultiMedia10 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021345 {"MultiMedia16 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021346 {"MultiMedia17 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21347 {"MultiMedia18 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21348 {"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21349 {"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21350 {"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021351 {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21352 {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21353 {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21354 {"MultiMedia6 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021355 {"MultiMedia6 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021356
21357 {"MultiMedia1 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21358 {"MultiMedia1 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21359 {"MultiMedia1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21360 {"MultiMedia1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21361 {"MultiMedia1 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21362 {"MultiMedia1 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21363 {"MultiMedia1 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21364 {"MultiMedia1 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21365 {"MultiMedia1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21366 {"MultiMedia1 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21367 {"MultiMedia1 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21368 {"MultiMedia1 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21369 {"MultiMedia1 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21370 {"MultiMedia1 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21371 {"MultiMedia1 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21372 {"MultiMedia1 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021373 {"MultiMedia1 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021374 {"MultiMedia1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21375 {"MultiMedia1 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21376 {"MultiMedia1 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21377 {"MultiMedia1 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021378 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21379 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21380 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21381 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21382 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021383 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021384 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21385 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21386 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21387 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21388 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21389 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021390 {"MultiMedia1 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21391 {"MultiMedia1 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021392
21393 {"MultiMedia2 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21394 {"MultiMedia2 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21395 {"MultiMedia2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21396 {"MultiMedia2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21397 {"MultiMedia2 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21398 {"MultiMedia2 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21399 {"MultiMedia2 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21400 {"MultiMedia2 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21401 {"MultiMedia2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21402 {"MultiMedia2 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21403 {"MultiMedia2 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21404 {"MultiMedia2 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21405 {"MultiMedia2 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21406 {"MultiMedia2 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21407 {"MultiMedia2 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21408 {"MultiMedia2 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021409 {"MultiMedia2 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021410 {"MultiMedia2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21411 {"MultiMedia2 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21412 {"MultiMedia2 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21413 {"MultiMedia2 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021414 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21415 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21416 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21417 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21418 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021419 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021420 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21421 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21422 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21423 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21424 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21425 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021426 {"MultiMedia2 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21427 {"MultiMedia2 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021428
21429 {"MultiMedia3 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21430 {"MultiMedia3 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21431 {"MultiMedia3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21432 {"MultiMedia3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21433 {"MultiMedia3 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21434 {"MultiMedia3 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21435 {"MultiMedia3 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21436 {"MultiMedia3 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21437 {"MultiMedia3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21438 {"MultiMedia3 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21439 {"MultiMedia3 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21440 {"MultiMedia3 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21441 {"MultiMedia3 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21442 {"MultiMedia3 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21443 {"MultiMedia3 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21444 {"MultiMedia3 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021445 {"MultiMedia3 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021446 {"MultiMedia3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21447 {"MultiMedia3 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21448 {"MultiMedia3 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21449 {"MultiMedia3 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021450 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21451 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21452 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21453 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21454 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021455 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021456 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21457 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21458 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21459 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21460 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21461 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021462 {"MultiMedia3 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21463 {"MultiMedia3 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021464
21465 {"MultiMedia4 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21466 {"MultiMedia4 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21467 {"MultiMedia4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21468 {"MultiMedia4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21469 {"MultiMedia4 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21470 {"MultiMedia4 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21471 {"MultiMedia4 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21472 {"MultiMedia4 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21473 {"MultiMedia4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21474 {"MultiMedia4 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21475 {"MultiMedia4 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21476 {"MultiMedia4 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21477 {"MultiMedia4 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21478 {"MultiMedia4 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21479 {"MultiMedia4 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21480 {"MultiMedia4 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021481 {"MultiMedia4 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021482 {"MultiMedia4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21483 {"MultiMedia4 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21484 {"MultiMedia4 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21485 {"MultiMedia4 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021486 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21487 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21488 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21489 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21490 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021491 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021492 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21493 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21494 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21495 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21496 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21497 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021498 {"MultiMedia4 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21499 {"MultiMedia4 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021500
21501 {"MultiMedia5 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21502 {"MultiMedia5 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21503 {"MultiMedia5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21504 {"MultiMedia5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21505 {"MultiMedia5 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21506 {"MultiMedia5 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21507 {"MultiMedia5 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21508 {"MultiMedia5 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21509 {"MultiMedia5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21510 {"MultiMedia5 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21511 {"MultiMedia5 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21512 {"MultiMedia5 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21513 {"MultiMedia5 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21514 {"MultiMedia5 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21515 {"MultiMedia5 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21516 {"MultiMedia5 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021517 {"MultiMedia5 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021518 {"MultiMedia5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21519 {"MultiMedia5 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21520 {"MultiMedia5 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21521 {"MultiMedia5 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021522 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21523 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21524 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21525 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21526 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021527 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021528 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21529 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21530 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21531 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21532 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21533 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021534 {"MultiMedia5 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21535 {"MultiMedia5 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021536
21537 {"MultiMedia6 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21538 {"MultiMedia6 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21539 {"MultiMedia6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21540 {"MultiMedia6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21541 {"MultiMedia6 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21542 {"MultiMedia6 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21543 {"MultiMedia6 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21544 {"MultiMedia6 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21545 {"MultiMedia6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21546 {"MultiMedia6 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21547 {"MultiMedia6 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21548 {"MultiMedia6 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21549 {"MultiMedia6 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21550 {"MultiMedia6 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21551 {"MultiMedia6 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21552 {"MultiMedia6 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021553 {"MultiMedia6 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021554 {"MultiMedia6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21555 {"MultiMedia6 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21556 {"MultiMedia6 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21557 {"MultiMedia6 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021558 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21559 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21560 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21561 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21562 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021563 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021564 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21565 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21566 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21567 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21568 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21569 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021570 {"MultiMedia6 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21571 {"MultiMedia6 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021572
21573 {"MultiMedia8 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21574 {"MultiMedia8 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21575 {"MultiMedia8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21576 {"MultiMedia8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21577 {"MultiMedia8 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21578 {"MultiMedia8 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21579 {"MultiMedia8 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21580 {"MultiMedia8 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21581 {"MultiMedia8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21582 {"MultiMedia8 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21583 {"MultiMedia8 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21584 {"MultiMedia8 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21585 {"MultiMedia8 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21586 {"MultiMedia8 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21587 {"MultiMedia8 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21588 {"MultiMedia8 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021589 {"MultiMedia8 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021590 {"MultiMedia8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21591 {"MultiMedia8 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21592 {"MultiMedia8 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21593 {"MultiMedia8 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021594 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21595 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21596 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21597 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21598 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021599 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021600 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21601 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21602 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21603 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21604 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21605 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021606 {"MultiMedia8 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21607 {"MultiMedia8 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021608
Samyak Jain810e42a2019-01-07 17:53:34 +053021609 {"MultiMedia9 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021610 {"MultiMedia9 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21611 {"MultiMedia9 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21612 {"MultiMedia9 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21613 {"MultiMedia9 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21614 {"MultiMedia9 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21615 {"MultiMedia9 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21616 {"MultiMedia9 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21617 {"MultiMedia9 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021618 {"MultiMedia9 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21619 {"MultiMedia9 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21620 {"MultiMedia9 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21621 {"MultiMedia9 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021622 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21623 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21624 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21625 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21626 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021627 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021628 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21629 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21630 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21631 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21632 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21633 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021634 {"MultiMedia9 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21635 {"MultiMedia9 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021636 {"MultiMedia9 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021637
Laxminath Kasam38070be2017-08-17 18:21:59 +053021638 {"MultiMedia10 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21639 {"MultiMedia10 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21640 {"MultiMedia10 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21641 {"MultiMedia10 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21642 {"MultiMedia10 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21643 {"MultiMedia10 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21644 {"MultiMedia10 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21645 {"MultiMedia10 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021646 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21647 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21648 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21649 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21650 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21651 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021652 {"MultiMedia10 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021653
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021654 {"MultiMedia20 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21655 {"MultiMedia20 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21656 {"MultiMedia20 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21657 {"MultiMedia20 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021658 {"MultiMedia20 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021659 {"MultiMedia20 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21660 {"MultiMedia20 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21661 {"MultiMedia20 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21662 {"MultiMedia20 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21663 {"MultiMedia20 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21664 {"MultiMedia20 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21665 {"MultiMedia20 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21666 {"MultiMedia20 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21667 {"MultiMedia20 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21668 {"MultiMedia20 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21669 {"MultiMedia20 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21670 {"MultiMedia20 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21671 {"MultiMedia20 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21672 {"MultiMedia20 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21673 {"MultiMedia20 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21674 {"MultiMedia20 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021675 {"MultiMedia20 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21676 {"MultiMedia20 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21677 {"MultiMedia20 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21678 {"MultiMedia20 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021679 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21680 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21681 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21682 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21683 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021684 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021685 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21686 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21687 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21688 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21689 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21690 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021691 {"MultiMedia20 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21692 {"MultiMedia20 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021693 {"MultiMedia20 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021694
Derek Chen07c6d1c2018-07-05 10:39:25 -070021695 {"MultiMedia21 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21696 {"MultiMedia21 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21697 {"MultiMedia21 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21698 {"MultiMedia21 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21699 {"MultiMedia21 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21700 {"MultiMedia21 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21701 {"MultiMedia21 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21702 {"MultiMedia21 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21703 {"MultiMedia21 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21704 {"MultiMedia21 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21705 {"MultiMedia21 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21706 {"MultiMedia21 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21707 {"MultiMedia21 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21708 {"MultiMedia21 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21709 {"MultiMedia21 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21710 {"MultiMedia21 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21711 {"MultiMedia21 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21712 {"MultiMedia21 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21713 {"MultiMedia21 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21714 {"MultiMedia21 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21715 {"MultiMedia21 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21716 {"MultiMedia21 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053021717 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21718 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21719 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21720 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21721 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021722 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053021723 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21724 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21725 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21726 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21727 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21728 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
21729 {"MultiMedia21 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21730 {"MultiMedia21 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021731 {"MultiMedia21 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021732
Surendar Karkac1cde372018-08-14 18:56:24 +053021733 {"MultiMedia27 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053021734 {"MultiMedia27 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021735 {"MultiMedia27 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
21736 {"MultiMedia27 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053021737 {"MultiMedia27 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021738 {"MultiMedia27 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21739 {"MultiMedia27 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21740 {"MultiMedia27 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21741 {"MultiMedia27 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21742 {"MultiMedia27 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
21743 {"MultiMedia27 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21744 {"MultiMedia27 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021745 {"MultiMedia27 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021746
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021747 {"MultiMedia1 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21748 {"MultiMedia2 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21749 {"MultiMedia4 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21750 {"MultiMedia5 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21751 {"MultiMedia6 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21752 {"MultiMedia8 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021753 {"MultiMedia10 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021754
Asish Bhattacharya34504582017-08-08 12:55:01 +053021755 {"MultiMedia16 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21756 {"MultiMedia16 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21757 {"MultiMedia16 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21758 {"MultiMedia16 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21759 {"MultiMedia16 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21760 {"MultiMedia16 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21761 {"MultiMedia16 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21762 {"MultiMedia16 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21763 {"MultiMedia16 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21764 {"MultiMedia16 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21765 {"MultiMedia16 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21766 {"MultiMedia16 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21767 {"MultiMedia16 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21768 {"MultiMedia16 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21769 {"MultiMedia16 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21770 {"MultiMedia16 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21771 {"MultiMedia16 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021772 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21773 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21774 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21775 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21776 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021777 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021778 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21779 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21780 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21781 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21782 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21783 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021784 {"MultiMedia16 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21785 {"MultiMedia16 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021786 {"MultiMedia16 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021787
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021788 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21789 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21790 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21791 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21792 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21793 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021794 {"MultiMedia17 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021795
21796 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21797 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21798 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21799 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21800 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21801 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021802 {"MultiMedia18 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021803
21804 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21805 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21806 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21807 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21808 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21809 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021810 {"MultiMedia19 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021811
21812 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21813 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21814 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21815 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21816 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21817 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021818 {"MultiMedia28 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021819
21820 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21821 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21822 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21823 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21824 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21825 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021826 {"MultiMedia29 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021827
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021828 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21829 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21830 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21831 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21832 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21833 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21834 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21835 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21836 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21837 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21838 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21839 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21840 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21841 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21842 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21843 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21844 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
21845 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Audio Mixer"},
21846
21847 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21848 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21849 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21850 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21851 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21852 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21853 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21854 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21855 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21856 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21857 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21858 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21859 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21860 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21861 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21862 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21863 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
21864 {"INT_BT_A2DP_RX", NULL, "INTERNAL_A2DP_RX Audio Mixer"},
21865
21866 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21867 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21868 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21869 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21870 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21871 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21872 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21873 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21874 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21875 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21876 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21877 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21878 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21879 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21880 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21881 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21882 {"INT_FM_RX", NULL, "INTERNAL_FM_RX Audio Mixer"},
21883
21884 {"AFE_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21885 {"AFE_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21886 {"AFE_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21887 {"AFE_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21888 {"AFE_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21889 {"AFE_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21890 {"AFE_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21891 {"AFE_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21892 {"AFE_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21893 {"AFE_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21894 {"AFE_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21895 {"AFE_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21896 {"AFE_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21897 {"AFE_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21898 {"AFE_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21899 {"AFE_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21900 {"PCM_RX", NULL, "AFE_PCM_RX Audio Mixer"},
21901
21902 {"MultiMedia1 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21903 {"MultiMedia3 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21904 {"MultiMedia4 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021905 {"MultiMedia10 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021906 {"MultiMedia17 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21907 {"MultiMedia18 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21908 {"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021909 {"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21910 {"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021911 {"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21912 {"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021913 {"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021914 {"MultiMedia1 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21915 {"MultiMedia4 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021916 {"MultiMedia16 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021917 {"MultiMedia17 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21918 {"MultiMedia18 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21919 {"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021920 {"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21921 {"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021922 {"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21923 {"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21924 {"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21925
21926 {"MultiMedia1 Mixer", "AFE_PCM_TX", "PCM_TX"},
21927 {"MultiMedia3 Mixer", "AFE_PCM_TX", "PCM_TX"},
21928 {"MultiMedia4 Mixer", "AFE_PCM_TX", "PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021929 {"MultiMedia10 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021930 {"MultiMedia17 Mixer", "AFE_PCM_TX", "PCM_TX"},
21931 {"MultiMedia18 Mixer", "AFE_PCM_TX", "PCM_TX"},
21932 {"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021933 {"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
21934 {"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021935 {"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
21936 {"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021937 {"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021938 {"MM_UL1", NULL, "MultiMedia1 Mixer"},
21939 {"MultiMedia2 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21940 {"MM_UL2", NULL, "MultiMedia2 Mixer"},
21941 {"MM_UL3", NULL, "MultiMedia3 Mixer"},
21942 {"MM_UL4", NULL, "MultiMedia4 Mixer"},
21943 {"MM_UL5", NULL, "MultiMedia5 Mixer"},
21944 {"MM_UL6", NULL, "MultiMedia6 Mixer"},
21945 {"MM_UL8", NULL, "MultiMedia8 Mixer"},
21946 {"MM_UL9", NULL, "MultiMedia9 Mixer"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021947 {"MM_UL10", NULL, "MultiMedia10 Mixer"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021948 {"MM_UL16", NULL, "MultiMedia16 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021949 {"MM_UL17", NULL, "MultiMedia17 Mixer"},
21950 {"MM_UL18", NULL, "MultiMedia18 Mixer"},
21951 {"MM_UL19", NULL, "MultiMedia19 Mixer"},
21952 {"MM_UL20", NULL, "MultiMedia20 Mixer"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021953 {"MM_UL21", NULL, "MultiMedia21 Mixer"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021954 {"MM_UL27", NULL, "MultiMedia27 Mixer"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021955 {"MM_UL28", NULL, "MultiMedia28 Mixer"},
21956 {"MM_UL29", NULL, "MultiMedia29 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021957
21958 {"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21959 {"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21960 {"AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21961 {"AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21962 {"AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21963 {"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21964 {"AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21965 {"AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21966 {"AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21967 {"AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21968 {"AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21969 {"AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21970 {"AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21971 {"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21972 {"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21973 {"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021974 {"AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021975 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
21976
21977 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21978 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21979 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21980 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21981 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21982 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21983 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21984 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21985 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21986 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21987 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21988 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21989 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21990 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21991 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21992 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021993 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021994 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
21995
21996 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21997 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21998 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21999 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22000 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22001 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22002 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22003 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22004 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22005 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22006 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22007 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22008 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22009 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22010 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22011 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
22012 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
22013
22014 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22015 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22016 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22017 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22018 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22019 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22020 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22021 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22022 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22023 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22024 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22025 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22026 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22027 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22028 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22029 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
22030 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
22031
Rohit Kumara5077932017-09-10 22:05:05 +053022032 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22033 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22034 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22035 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22036 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22037 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22038 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22039 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22040 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22041 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22042 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22043 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22044 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22045 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22046 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22047 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
22048 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX Audio Mixer"},
22049
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022050 {"PRI_RX_Voice Mixer", "Voip", "VOIP_DL"},
22051 {"PRI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22052 {"PRI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22053 {"PRI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22054 {"PRI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22055 {"PRI_I2S_RX", NULL, "PRI_RX_Voice Mixer"},
22056
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022057 {"SEC_RX_Voice Mixer", "Voip", "VOIP_DL"},
22058 {"SEC_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22059 {"SEC_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22060 {"SEC_I2S_RX", NULL, "SEC_RX_Voice Mixer"},
22061
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022062 {"SEC_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
22063 {"SEC_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22064 {"SEC_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22065 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22066 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22067 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_Voice Mixer"},
22068
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022069 {"SLIM_0_RX_Voice Mixer", "Voip", "VOIP_DL"},
22070 {"SLIM_0_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022071 {"SLIM_0_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22072 {"SLIM_0_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22073 {"SLIM_0_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22074 {"SLIMBUS_0_RX", NULL, "SLIM_0_RX_Voice Mixer"},
22075
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022076 {"SLIM_6_RX_Voice Mixer", "Voip", "VOIP_DL"},
22077 {"SLIM_6_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022078 {"SLIM_6_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22079 {"SLIM_6_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22080 {"SLIM_6_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22081 {"SLIMBUS_6_RX", NULL, "SLIM_6_RX_Voice Mixer"},
22082
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022083 {"USB_AUDIO_RX_Voice Mixer", "Voip", "VOIP_DL"},
22084 {"USB_AUDIO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022085 {"USB_AUDIO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22086 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22087 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22088 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
22089
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080022090 {"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
22091 {"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080022092 {"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22093 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22094 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22095 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
22096
Karthikeyan Mani57550082018-05-03 18:43:58 -070022097 {"DISPLAY_PORT_RX1_Voice Mixer", "Voip", "VOIP_DL"},
22098 {"DISPLAY_PORT_RX1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22099 {"DISPLAY_PORT_RX1_Voice Mixer", "QCHAT", "QCHAT_DL"},
22100 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22101 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22102 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1_Voice Mixer"},
22103
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022104 {"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
22105 {"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22106 {"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22107 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22108 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022109 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX_Voice Mixer"},
22110
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022111 {"AFE_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22112 {"AFE_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22113 {"AFE_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22114 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22115 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22116 {"PCM_RX", NULL, "AFE_PCM_RX_Voice Mixer"},
22117
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022118 {"AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22119 {"AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022120 {"AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22121 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22122 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22123 {"AUX_PCM_RX", NULL, "AUX_PCM_RX_Voice Mixer"},
22124
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022125 {"SEC_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22126 {"SEC_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022127 {"SEC_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22128 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22129 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22130 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
22131
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022132 {"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22133 {"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022134 {"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22135 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22136 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22137 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
22138
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022139 {"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22140 {"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022141 {"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22142 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22143 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22144 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
22145
Rohit Kumara5077932017-09-10 22:05:05 +053022146 {"QUIN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22147 {"QUIN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053022148 {"QUIN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22149 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22150 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22151 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX_Voice Mixer"},
22152
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022153 {"HDMI_RX_Voice Mixer", "Voip", "VOIP_DL"},
22154 {"HDMI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22155 {"HDMI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22156 {"HDMI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22157 {"HDMI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22158 {"HDMI", NULL, "HDMI_RX_Voice Mixer"},
22159 {"HDMI", NULL, "HDMI_DL_HL"},
22160
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022161 {"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022162 {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22163 {"MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22164 {"MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
kunleiz8a60b822017-10-11 15:04:02 +080022165 {"MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022166 {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
22167
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022168 {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022169 {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22170 {"PRI_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22171 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22172 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22173 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"},
22174
22175 {"INT0_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
22176 {"INT0_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22177 {"INT0_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22178 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22179 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22180 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_Voice Mixer"},
22181
22182 {"INT4_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
22183 {"INT4_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22184 {"INT4_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22185 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22186 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22187 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_Voice Mixer"},
22188
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022189 {"TERT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022190 {"TERT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22191 {"TERT_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22192 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22193 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22194 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_Voice Mixer"},
22195
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022196 {"QUAT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022197 {"QUAT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22198 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22199 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22200 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_Voice Mixer"},
22201
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022202 {"QUIN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022203 {"QUIN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22204 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22205 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22206 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"},
22207
22208 {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22209 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"},
22210
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022211 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22212 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22213 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_Voice Mixer"},
22214
22215 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22216 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22217 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_Voice Mixer"},
22218
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022219 {"VOC_EXT_EC MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22220 {"VOC_EXT_EC MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22221 {"VOC_EXT_EC MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22222 {"VOC_EXT_EC MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022223 {"VOC_EXT_EC MUX", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022224 {"VOC_EXT_EC MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Karthikeyan Mania1eb9382018-07-25 10:52:58 -070022225 {"VOC_EXT_EC MUX", "SEC_TDM_TX", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022226 {"VOIP_UL", NULL, "VOC_EXT_EC MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022227 {"VOICEMMODE1_UL", NULL, "VOC_EXT_EC MUX"},
22228 {"VOICEMMODE2_UL", NULL, "VOC_EXT_EC MUX"},
22229
22230 {"AUDIO_REF_EC_UL1 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22231 {"AUDIO_REF_EC_UL1 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22232 {"AUDIO_REF_EC_UL1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22233 {"AUDIO_REF_EC_UL1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22234 {"AUDIO_REF_EC_UL1 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
22235 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22236 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
22237 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
22238 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
22239 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070022240 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
22241 {"AUDIO_REF_EC_UL1 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022242
22243 {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22244 {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22245 {"AUDIO_REF_EC_UL2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22246 {"AUDIO_REF_EC_UL2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22247
22248 {"AUDIO_REF_EC_UL3 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22249 {"AUDIO_REF_EC_UL3 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22250 {"AUDIO_REF_EC_UL3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22251 {"AUDIO_REF_EC_UL3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22252
22253 {"AUDIO_REF_EC_UL4 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22254 {"AUDIO_REF_EC_UL4 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22255 {"AUDIO_REF_EC_UL4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22256 {"AUDIO_REF_EC_UL4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22257
22258 {"AUDIO_REF_EC_UL5 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22259 {"AUDIO_REF_EC_UL5 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22260 {"AUDIO_REF_EC_UL5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22261 {"AUDIO_REF_EC_UL5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22262
22263 {"AUDIO_REF_EC_UL6 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22264 {"AUDIO_REF_EC_UL6 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22265 {"AUDIO_REF_EC_UL6 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22266 {"AUDIO_REF_EC_UL6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22267
22268 {"AUDIO_REF_EC_UL8 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22269 {"AUDIO_REF_EC_UL8 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22270 {"AUDIO_REF_EC_UL8 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22271 {"AUDIO_REF_EC_UL8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22272
22273 {"AUDIO_REF_EC_UL9 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22274 {"AUDIO_REF_EC_UL9 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22275 {"AUDIO_REF_EC_UL9 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22276 {"AUDIO_REF_EC_UL9 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22277
Laxminath Kasam38070be2017-08-17 18:21:59 +053022278 {"AUDIO_REF_EC_UL10 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22279 {"AUDIO_REF_EC_UL10 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22280 {"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22281 {"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22282 {"AUDIO_REF_EC_UL10 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
22283 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22284 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
22285 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
22286 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
22287 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070022288 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
22289 {"AUDIO_REF_EC_UL10 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Vikram Panduranga016c49f2017-09-11 15:15:56 -070022290
22291 {"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22292 {"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22293 {"AUDIO_REF_EC_UL16 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22294 {"AUDIO_REF_EC_UL16 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22295
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022296 {"AUDIO_REF_EC_UL17 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22297 {"AUDIO_REF_EC_UL17 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22298 {"AUDIO_REF_EC_UL17 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22299 {"AUDIO_REF_EC_UL17 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22300
22301 {"AUDIO_REF_EC_UL18 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22302 {"AUDIO_REF_EC_UL18 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22303 {"AUDIO_REF_EC_UL18 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22304 {"AUDIO_REF_EC_UL18 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22305
22306 {"AUDIO_REF_EC_UL19 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22307 {"AUDIO_REF_EC_UL19 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22308 {"AUDIO_REF_EC_UL19 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22309 {"AUDIO_REF_EC_UL19 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22310
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053022311 {"AUDIO_REF_EC_UL28 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22312 {"AUDIO_REF_EC_UL28 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22313 {"AUDIO_REF_EC_UL28 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22314 {"AUDIO_REF_EC_UL28 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22315
22316 {"AUDIO_REF_EC_UL29 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22317 {"AUDIO_REF_EC_UL29 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22318 {"AUDIO_REF_EC_UL29 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22319 {"AUDIO_REF_EC_UL29 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Yunfei Zhang3efc4a22017-11-07 16:30:13 +080022320
22321 {"LSM1_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22322 {"LSM2_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22323 {"LSM3_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22324 {"LSM4_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22325 {"LSM5_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22326 {"LSM6_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22327 {"LSM7_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22328 {"LSM8_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22329
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022330 {"MM_UL1", NULL, "AUDIO_REF_EC_UL1 MUX"},
22331 {"MM_UL2", NULL, "AUDIO_REF_EC_UL2 MUX"},
22332 {"MM_UL3", NULL, "AUDIO_REF_EC_UL3 MUX"},
22333 {"MM_UL4", NULL, "AUDIO_REF_EC_UL4 MUX"},
22334 {"MM_UL5", NULL, "AUDIO_REF_EC_UL5 MUX"},
22335 {"MM_UL6", NULL, "AUDIO_REF_EC_UL6 MUX"},
22336 {"MM_UL8", NULL, "AUDIO_REF_EC_UL8 MUX"},
22337 {"MM_UL9", NULL, "AUDIO_REF_EC_UL9 MUX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053022338 {"MM_UL10", NULL, "AUDIO_REF_EC_UL10 MUX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053022339 {"MM_UL16", NULL, "AUDIO_REF_EC_UL16 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022340 {"MM_UL17", NULL, "AUDIO_REF_EC_UL17 MUX"},
22341 {"MM_UL18", NULL, "AUDIO_REF_EC_UL18 MUX"},
22342 {"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053022343 {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
22344 {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022345
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022346 {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
22347 {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
22348 {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"},
22349 {"VoiceMMode1_Tx Mixer", "TERT_MI2S_TX_MMode1", "TERT_MI2S_TX"},
22350 {"VoiceMMode1_Tx Mixer", "INT3_MI2S_TX_MMode1", "INT3_MI2S_TX"},
22351 {"VoiceMMode1_Tx Mixer", "SLIM_0_TX_MMode1", "SLIMBUS_0_TX"},
22352 {"VoiceMMode1_Tx Mixer", "SLIM_7_TX_MMode1", "SLIMBUS_7_TX"},
22353 {"VoiceMMode1_Tx Mixer", "SLIM_8_TX_MMode1", "SLIMBUS_8_TX"},
22354 {"VoiceMMode1_Tx Mixer", "USB_AUDIO_TX_MMode1", "USB_AUDIO_TX"},
22355 {"VoiceMMode1_Tx Mixer", "INT_BT_SCO_TX_MMode1", "INT_BT_SCO_TX"},
22356 {"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
22357 {"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
22358 {"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
22359 {"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
22360 {"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022361 {"VoiceMMode1_Tx Mixer", "QUIN_AUX_PCM_TX_MMode1", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022362 {"VoiceMMode1_Tx Mixer", "QUAT_TDM_TX_0_MMode1", "QUAT_TDM_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022363 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_0_MMode1", "TX_CDC_DMA_TX_0"},
22364 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_1_MMode1", "TX_CDC_DMA_TX_1"},
22365 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_2_MMode1", "TX_CDC_DMA_TX_2"},
22366 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_3_MMode1", "TX_CDC_DMA_TX_3"},
22367 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_4_MMode1", "TX_CDC_DMA_TX_4"},
22368 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_5_MMode1", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022369 {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
22370
22371 {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
22372 {"VoiceMMode2_Tx Mixer", "PRI_MI2S_TX_MMode2", "PRI_MI2S_TX"},
22373 {"VoiceMMode2_Tx Mixer", "MI2S_TX_MMode2", "MI2S_TX"},
22374 {"VoiceMMode2_Tx Mixer", "TERT_MI2S_TX_MMode2", "TERT_MI2S_TX"},
22375 {"VoiceMMode2_Tx Mixer", "INT3_MI2S_TX_MMode2", "INT3_MI2S_TX"},
22376 {"VoiceMMode2_Tx Mixer", "SLIM_0_TX_MMode2", "SLIMBUS_0_TX"},
22377 {"VoiceMMode2_Tx Mixer", "SLIM_7_TX_MMode2", "SLIMBUS_7_TX"},
22378 {"VoiceMMode2_Tx Mixer", "SLIM_8_TX_MMode2", "SLIMBUS_8_TX"},
22379 {"VoiceMMode2_Tx Mixer", "USB_AUDIO_TX_MMode2", "USB_AUDIO_TX"},
22380 {"VoiceMMode2_Tx Mixer", "INT_BT_SCO_TX_MMode2", "INT_BT_SCO_TX"},
22381 {"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
22382 {"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
22383 {"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
22384 {"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
22385 {"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022386 {"VoiceMMode2_Tx Mixer", "QUIN_AUX_PCM_TX_MMode2", "QUIN_AUX_PCM_TX"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022387 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_0_MMode2", "TX_CDC_DMA_TX_0"},
22388 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_1_MMode2", "TX_CDC_DMA_TX_1"},
22389 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_2_MMode2", "TX_CDC_DMA_TX_2"},
22390 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_3_MMode2", "TX_CDC_DMA_TX_3"},
22391 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_4_MMode2", "TX_CDC_DMA_TX_4"},
22392 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_5_MMode2", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022393 {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
22394
22395 {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
22396 {"Voip_Tx Mixer", "MI2S_TX_Voip", "MI2S_TX"},
22397 {"Voip_Tx Mixer", "TERT_MI2S_TX_Voip", "TERT_MI2S_TX"},
22398 {"Voip_Tx Mixer", "INT3_MI2S_TX_Voip", "INT3_MI2S_TX"},
22399 {"Voip_Tx Mixer", "SLIM_0_TX_Voip", "SLIMBUS_0_TX"},
22400 {"Voip_Tx Mixer", "SLIM_7_TX_Voip", "SLIMBUS_7_TX"},
22401 {"Voip_Tx Mixer", "SLIM_8_TX_Voip", "SLIMBUS_8_TX"},
22402 {"Voip_Tx Mixer", "USB_AUDIO_TX_Voip", "USB_AUDIO_TX"},
22403 {"Voip_Tx Mixer", "INTERNAL_BT_SCO_TX_Voip", "INT_BT_SCO_TX"},
22404 {"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
22405 {"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
22406 {"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
22407 {"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
22408 {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022409 {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022410 {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
22411 {"VOIP_UL", NULL, "Voip_Tx Mixer"},
22412
22413 {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},
22414 {"SLIMBUS_0_RX", NULL, "SLIMBUS_DL_HL"},
22415 {"SLIMBUS1_DL_HL", "Switch", "SLIM1_DL_HL"},
22416 {"SLIMBUS_1_RX", NULL, "SLIMBUS1_DL_HL"},
22417 {"SLIMBUS3_DL_HL", "Switch", "SLIM3_DL_HL"},
22418 {"SLIMBUS_3_RX", NULL, "SLIMBUS3_DL_HL"},
22419 {"SLIMBUS4_DL_HL", "Switch", "SLIM4_DL_HL"},
22420 {"SLIMBUS_4_RX", NULL, "SLIMBUS4_DL_HL"},
22421 {"SLIMBUS6_DL_HL", "Switch", "SLIM0_DL_HL"},
22422 {"SLIMBUS_6_RX", NULL, "SLIMBUS6_DL_HL"},
22423 {"SLIM0_UL_HL", NULL, "SLIMBUS_0_TX"},
22424 {"SLIM1_UL_HL", NULL, "SLIMBUS_1_TX"},
22425 {"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
22426 {"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
22427 {"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053022428 {"WSA_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
22429 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_DL_HL"},
22430 {"CDC_DMA_UL_HL", NULL, "VA_CDC_DMA_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022431 {"RX_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
22432 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_DL_HL"},
22433 {"TX3_CDC_DMA_UL_HL", NULL, "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022434 {"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22435 {"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22436 {"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22437 {"LSM1 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22438 {"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22439 {"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22440 {"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22441 {"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022442 {"LSM1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22443 {"LSM1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022444 {"LSM1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022445 {"LSM1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022446 {"LSM1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022447 {"LSM1_UL_HL", NULL, "LSM1 Mixer"},
22448
22449 {"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22450 {"LSM2 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22451 {"LSM2 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22452 {"LSM2 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22453 {"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22454 {"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22455 {"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22456 {"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022457 {"LSM2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22458 {"LSM2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022459 {"LSM2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022460 {"LSM2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022461 {"LSM2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022462 {"LSM2_UL_HL", NULL, "LSM2 Mixer"},
22463
22464
22465 {"LSM3 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22466 {"LSM3 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22467 {"LSM3 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22468 {"LSM3 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22469 {"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22470 {"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22471 {"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22472 {"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022473 {"LSM3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22474 {"LSM3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022475 {"LSM3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022476 {"LSM3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022477 {"LSM3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022478 {"LSM3_UL_HL", NULL, "LSM3 Mixer"},
22479
22480
22481 {"LSM4 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22482 {"LSM4 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22483 {"LSM4 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22484 {"LSM4 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22485 {"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22486 {"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22487 {"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22488 {"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022489 {"LSM4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22490 {"LSM4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022491 {"LSM4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022492 {"LSM4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022493 {"LSM4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022494 {"LSM4_UL_HL", NULL, "LSM4 Mixer"},
22495
22496 {"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22497 {"LSM5 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22498 {"LSM5 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22499 {"LSM5 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22500 {"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22501 {"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22502 {"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22503 {"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022504 {"LSM5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22505 {"LSM5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022506 {"LSM5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022507 {"LSM5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022508 {"LSM5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022509 {"LSM5_UL_HL", NULL, "LSM5 Mixer"},
22510
22511 {"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22512 {"LSM6 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22513 {"LSM6 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22514 {"LSM6 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22515 {"LSM6 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22516 {"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022517 {"LSM6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22518 {"LSM6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022519 {"LSM6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022520 {"LSM6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022521 {"LSM6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022522 {"LSM6_UL_HL", NULL, "LSM6 Mixer"},
22523
22524 {"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22525 {"LSM7 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22526 {"LSM7 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22527 {"LSM7 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22528 {"LSM7 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22529 {"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022530 {"LSM7 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22531 {"LSM7 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022532 {"LSM7 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022533 {"LSM7 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022534 {"LSM7 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022535 {"LSM7_UL_HL", NULL, "LSM7 Mixer"},
22536
22537 {"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22538 {"LSM8 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22539 {"LSM8 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22540 {"LSM8 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22541 {"LSM8 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22542 {"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022543 {"LSM8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22544 {"LSM8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022545 {"LSM8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022546 {"LSM8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022547 {"LSM8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022548 {"LSM8_UL_HL", NULL, "LSM8 Mixer"},
22549
22550
22551 {"CPE_LSM_UL_HL", NULL, "BE_IN"},
22552 {"QCHAT_Tx Mixer", "PRI_TX_QCHAT", "PRI_I2S_TX"},
22553 {"QCHAT_Tx Mixer", "SLIM_0_TX_QCHAT", "SLIMBUS_0_TX"},
22554 {"QCHAT_Tx Mixer", "SLIM_7_TX_QCHAT", "SLIMBUS_7_TX"},
22555 {"QCHAT_Tx Mixer", "SLIM_8_TX_QCHAT", "SLIMBUS_8_TX"},
22556 {"QCHAT_Tx Mixer", "INTERNAL_BT_SCO_TX_QCHAT", "INT_BT_SCO_TX"},
22557 {"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
22558 {"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
22559 {"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
22560 {"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
22561 {"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022562 {"QCHAT_Tx Mixer", "QUIN_AUX_PCM_TX_QCHAT", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022563 {"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
22564 {"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
22565 {"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
22566 {"QCHAT_Tx Mixer", "INT3_MI2S_TX_QCHAT", "INT3_MI2S_TX"},
22567 {"QCHAT_Tx Mixer", "USB_AUDIO_TX_QCHAT", "USB_AUDIO_TX"},
22568 {"QCHAT_UL", NULL, "QCHAT_Tx Mixer"},
22569
22570 {"INT_FM_RX", NULL, "INTFM_DL_HL"},
22571 {"INTFM_UL_HL", NULL, "INT_FM_TX"},
22572 {"INTHFP_UL_HL", NULL, "HFP_PRI_AUX_UL_HL"},
22573 {"HFP_PRI_AUX_UL_HL", "Switch", "AUX_PCM_TX"},
22574 {"INTHFP_UL_HL", NULL, "HFP_AUX_UL_HL"},
22575 {"HFP_AUX_UL_HL", "Switch", "SEC_AUX_PCM_TX"},
22576 {"INTHFP_UL_HL", NULL, "HFP_INT_UL_HL"},
22577 {"HFP_INT_UL_HL", "Switch", "INT_BT_SCO_TX"},
22578 {"SLIM7_UL_HL", NULL, "HFP_SLIM7_UL_HL"},
22579 {"HFP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
22580 {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"},
22581 {"AUX_PCM_RX", NULL, "INTHFP_DL_HL"},
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080022582 {"SLIM7_UL_HL", NULL, "A2DP_SLIM7_UL_HL"},
22583 {"A2DP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022584 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022585 {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022586 {"SEC_AUXPCM_UL_HL", NULL, "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022587 {"MI2S_RX", NULL, "MI2S_DL_HL"},
22588 {"MI2S_UL_HL", NULL, "MI2S_TX"},
22589 {"PCM_RX_DL_HL", "Switch", "SLIM0_DL_HL"},
22590 {"PCM_RX", NULL, "PCM_RX_DL_HL"},
22591
22592 /* connect to INT4_MI2S_DL_HL since same pcm_id */
22593 {"INT0_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
22594 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_DL_HL"},
22595 {"INT4_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
22596 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_DL_HL"},
22597 {"PRI_MI2S_RX_DL_HL", "Switch", "PRI_MI2S_DL_HL"},
22598 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_DL_HL"},
22599 {"SEC_MI2S_RX_DL_HL", "Switch", "SEC_MI2S_DL_HL"},
22600 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_DL_HL"},
22601 {"TERT_MI2S_RX_DL_HL", "Switch", "TERT_MI2S_DL_HL"},
22602 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_DL_HL"},
22603
22604 {"QUAT_MI2S_RX_DL_HL", "Switch", "QUAT_MI2S_DL_HL"},
22605 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053022606 {"QUIN_MI2S_RX_DL_HL", "Switch", "QUIN_MI2S_DL_HL"},
22607 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022608 {"MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
22609 {"INT3_MI2S_UL_HL", NULL, "INT3_MI2S_TX"},
22610 {"TERT_MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
22611 {"SEC_I2S_RX", NULL, "SEC_I2S_DL_HL"},
22612 {"PRI_MI2S_UL_HL", NULL, "PRI_MI2S_TX"},
22613 {"SEC_MI2S_UL_HL", NULL, "SEC_MI2S_TX"},
22614 {"SEC_MI2S_RX", NULL, "SEC_MI2S_DL_HL"},
22615 {"PRI_MI2S_RX", NULL, "PRI_MI2S_DL_HL"},
22616 {"TERT_MI2S_RX", NULL, "TERT_MI2S_DL_HL"},
22617 {"QUAT_MI2S_UL_HL", NULL, "QUAT_MI2S_TX"},
22618
22619 {"PRI_TDM_TX_0_UL_HL", NULL, "PRI_TDM_TX_0"},
22620 {"PRI_TDM_TX_1_UL_HL", NULL, "PRI_TDM_TX_1"},
22621 {"PRI_TDM_TX_2_UL_HL", NULL, "PRI_TDM_TX_2"},
22622 {"PRI_TDM_TX_3_UL_HL", NULL, "PRI_TDM_TX_3"},
22623 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_DL_HL"},
22624 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_DL_HL"},
22625 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_DL_HL"},
22626 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_DL_HL"},
22627 {"SEC_TDM_TX_0_UL_HL", NULL, "SEC_TDM_TX_0"},
22628 {"SEC_TDM_TX_1_UL_HL", NULL, "SEC_TDM_TX_1"},
22629 {"SEC_TDM_TX_2_UL_HL", NULL, "SEC_TDM_TX_2"},
22630 {"SEC_TDM_TX_3_UL_HL", NULL, "SEC_TDM_TX_3"},
22631 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0_DL_HL"},
22632 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
22633 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
22634 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
Derek Chenfdcc0982018-10-02 15:14:03 -070022635 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022636 {"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
22637 {"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
22638 {"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
22639 {"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070022640 {"TERT_TDM_TX_7_UL_HL", NULL, "TERT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022641 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
22642 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
22643 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
22644 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3_DL_HL"},
22645 {"QUAT_TDM_TX_0_UL_HL", NULL, "QUAT_TDM_TX_0"},
22646 {"QUAT_TDM_TX_1_UL_HL", NULL, "QUAT_TDM_TX_1"},
22647 {"QUAT_TDM_TX_2_UL_HL", NULL, "QUAT_TDM_TX_2"},
22648 {"QUAT_TDM_TX_3_UL_HL", NULL, "QUAT_TDM_TX_3"},
22649 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0_DL_HL"},
22650 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1_DL_HL"},
22651 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_DL_HL"},
22652 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053022653 {"QUIN_TDM_TX_0_UL_HL", NULL, "QUIN_TDM_TX_0"},
22654 {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"},
22655 {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"},
22656 {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"},
22657 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"},
22658 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"},
22659 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"},
22660 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022661
22662 {"PRI_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22663 {"PRI_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22664 {"PRI_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22665 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22666 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22667 {"PRI_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22668 {"PRI_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22669 {"PRI_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22670 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22671 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22672 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22673 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22674 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22675 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22676 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22677 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022678 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22679 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22680 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22681 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022682 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Port Mixer"},
22683
22684 {"PRI_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22685 {"PRI_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22686 {"PRI_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22687 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22688 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22689 {"PRI_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22690 {"PRI_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22691 {"PRI_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22692 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22693 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22694 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22695 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22696 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22697 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22698 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22699 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022700 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22701 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22702 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22703 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022704 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Port Mixer"},
22705
22706 {"PRI_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22707 {"PRI_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22708 {"PRI_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22709 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22710 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22711 {"PRI_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22712 {"PRI_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22713 {"PRI_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22714 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22715 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22716 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22717 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22718 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22719 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22720 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22721 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022722 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22723 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22724 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22725 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022726 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Port Mixer"},
22727
22728 {"PRI_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22729 {"PRI_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22730 {"PRI_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22731 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22732 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22733 {"PRI_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22734 {"PRI_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22735 {"PRI_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22736 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22737 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22738 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22739 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22740 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22741 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22742 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22743 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022744 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22745 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22746 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22747 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022748 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Port Mixer"},
22749
22750 {"SEC_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22751 {"SEC_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22752 {"SEC_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22753 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22754 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22755 {"SEC_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22756 {"SEC_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22757 {"SEC_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22758 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22759 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22760 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22761 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22762 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22763 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22764 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22765 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022766 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22767 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22768 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22769 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022770 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Port Mixer"},
22771
22772 {"SEC_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22773 {"SEC_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22774 {"SEC_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22775 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22776 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22777 {"SEC_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22778 {"SEC_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22779 {"SEC_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22780 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22781 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22782 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22783 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22784 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22785 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22786 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22787 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022788 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22789 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22790 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22791 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022792 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Port Mixer"},
22793
22794 {"SEC_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22795 {"SEC_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22796 {"SEC_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22797 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22798 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22799 {"SEC_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22800 {"SEC_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22801 {"SEC_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22802 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22803 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22804 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22805 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22806 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22807 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22808 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22809 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022810 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22811 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22812 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22813 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022814 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Port Mixer"},
22815
22816 {"SEC_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22817 {"SEC_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22818 {"SEC_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22819 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22820 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22821 {"SEC_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22822 {"SEC_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22823 {"SEC_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22824 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22825 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22826 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22827 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22828 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22829 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22830 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22831 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022832 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22833 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22834 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22835 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022836 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
22837
Derek Chenfdcc0982018-10-02 15:14:03 -070022838 {"SEC_TDM_RX_7 Port Mixer", "TERT_TDM_TX_7", "TERT_TDM_TX_7"},
22839 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7 Port Mixer"},
22840
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022841 {"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22842 {"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22843 {"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22844 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22845 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22846 {"TERT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22847 {"TERT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22848 {"TERT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22849 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22850 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22851 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22852 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22853 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22854 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22855 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22856 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022857 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22858 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22859 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22860 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022861 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Port Mixer"},
22862
22863 {"TERT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22864 {"TERT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22865 {"TERT_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22866 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22867 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22868 {"TERT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22869 {"TERT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22870 {"TERT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22871 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22872 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22873 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22874 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22875 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22876 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22877 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22878 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022879 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22880 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22881 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22882 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022883 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Port Mixer"},
22884
22885 {"TERT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22886 {"TERT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22887 {"TERT_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22888 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22889 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22890 {"TERT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22891 {"TERT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22892 {"TERT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22893 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22894 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22895 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22896 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22897 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22898 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22899 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22900 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022901 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22902 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22903 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22904 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022905 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Port Mixer"},
22906
22907 {"TERT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22908 {"TERT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22909 {"TERT_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22910 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22911 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22912 {"TERT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22913 {"TERT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22914 {"TERT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22915 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22916 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22917 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22918 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22919 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22920 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22921 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22922 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022923 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22924 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22925 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22926 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022927 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Port Mixer"},
22928
22929 {"QUAT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22930 {"QUAT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22931 {"QUAT_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22932 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22933 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22934 {"QUAT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22935 {"QUAT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22936 {"QUAT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22937 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22938 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22939 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22940 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22941 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22942 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22943 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22944 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022945 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22946 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22947 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22948 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022949 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Port Mixer"},
22950
22951 {"QUAT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22952 {"QUAT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22953 {"QUAT_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22954 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22955 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22956 {"QUAT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22957 {"QUAT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22958 {"QUAT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22959 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22960 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22961 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22962 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22963 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22964 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22965 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22966 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022967 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22968 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22969 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22970 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022971 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Port Mixer"},
22972
22973 {"QUAT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22974 {"QUAT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22975 {"QUAT_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22976 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22977 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22978 {"QUAT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22979 {"QUAT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22980 {"QUAT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22981 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22982 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22983 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22984 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22985 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22986 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22987 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22988 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022989 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22990 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22991 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22992 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022993 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Port Mixer"},
22994
22995 {"QUAT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22996 {"QUAT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22997 {"QUAT_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22998 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22999 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23000 {"QUAT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23001 {"QUAT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23002 {"QUAT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23003 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23004 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23005 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23006 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23007 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23008 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23009 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23010 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023011 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23012 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23013 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23014 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023015 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Port Mixer"},
23016
Rohit Kumara5077932017-09-10 22:05:05 +053023017 {"QUIN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23018 {"QUIN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23019 {"QUIN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23020 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23021 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23022 {"QUIN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23023 {"QUIN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23024 {"QUIN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23025 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23026 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23027 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23028 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23029 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23030 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23031 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23032 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
23033 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23034 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23035 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23036 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053023037 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053023038
23039 {"QUIN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23040 {"QUIN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23041 {"QUIN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23042 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23043 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23044 {"QUIN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23045 {"QUIN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23046 {"QUIN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23047 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23048 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23049 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23050 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23051 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23052 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23053 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23054 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
23055 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23056 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23057 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23058 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053023059 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053023060
23061 {"QUIN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23062 {"QUIN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23063 {"QUIN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23064 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23065 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23066 {"QUIN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23067 {"QUIN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23068 {"QUIN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23069 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23070 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23071 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23072 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23073 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23074 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23075 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23076 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
23077 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23078 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23079 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23080 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053023081 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053023082
23083 {"QUIN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23084 {"QUIN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23085 {"QUIN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23086 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23087 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23088 {"QUIN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23089 {"QUIN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23090 {"QUIN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23091 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23092 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23093 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23094 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23095 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23096 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23097 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23098 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
23099 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23100 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23101 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23102 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053023103 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053023104
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023105 {"INT0_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23106 {"INT0_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23107 {"INT0_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23108 {"INT0_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023109 {"INT0_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023110 {"INT0_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
23111 {"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23112 {"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23113 {"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023114 {"INT0_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023115 {"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23116 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
23117
23118 {"INT4_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23119 {"INT4_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23120 {"INT4_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23121 {"INT4_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023122 {"INT4_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023123 {"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
23124 {"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23125 {"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023126 {"INT4_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023127 {"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23128 {"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23129 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
23130
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053023131 {"WSA_CDC_DMA_RX_0 Port Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
23132 {"WSA_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080023133 {"WSA_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080023134 {"WSA_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Meng Wangbbf77922019-03-01 13:24:14 +080023135 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Port Mixer"},
23136
23137 {"RX_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
23138 {"RX_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080023139 {"RX_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Meng Wangbbf77922019-03-01 13:24:14 +080023140 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Port Mixer"},
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053023141
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023142 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23143 {"SLIMBUS_0_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23144 {"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23145 {"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23146 {"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023147 {"SLIMBUS_0_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023148 {"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23149 {"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23150 {"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
23151 {"SLIMBUS_0_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023152 {"SLIMBUS_0_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023153 {"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23154 {"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23155 {"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23156 {"SLIMBUS_0_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23157 {"SLIMBUS_0_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023158 {"SLIMBUS_0_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023159 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23160 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
23161 {"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23162 {"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23163 {"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
23164 {"USB_AUDIO_RX Port Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
23165 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Port Mixer"},
23166 {"USB_DL_HL", "Switch", "USBAUDIO_DL_HL"},
23167 {"USB_AUDIO_RX", NULL, "USB_DL_HL"},
23168 {"USBAUDIO_UL_HL", NULL, "USB_AUDIO_TX"},
23169
23170
23171 {"AUX_PCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23172 {"AUX_PCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23173 {"AUX_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23174 {"AUX_PCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23175 {"AUX_PCM_RX Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080023176 {"AUX_PCM_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023177 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Port Mixer"},
23178
23179 {"SEC_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23180 {"SEC_AUXPCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23181 {"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080023182 {"SEC_AUXPCM_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023183 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
23184
23185 {"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23186 {"TERT_AUXPCM_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
23187 {"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23188 {"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
23189
23190 {"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23191 {"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
23192 {"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23193 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
23194
Rohit Kumara5077932017-09-10 22:05:05 +053023195 {"QUIN_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23196 {"QUIN_AUXPCM_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
23197 {"QUIN_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23198 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUXPCM_RX Port Mixer"},
23199
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023200 {"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
23201 {"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23202 {"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23203 {"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
23204 {"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23205 {"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23206 {"Voice Stub Tx Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
23207 {"Voice Stub Tx Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023208 {"Voice Stub Tx Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023209 {"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
23210 {"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23211 {"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23212 {"Voice Stub Tx Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
23213 {"Voice Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23214 {"Voice Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23215 {"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
23216 {"Voice Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23217 {"Voice Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23218 {"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
23219 {"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
23220
23221 {"VoLTE Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
23222 {"VoLTE Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23223 {"VoLTE Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
23224 {"VoLTE Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23225 {"VoLTE Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23226 {"VoLTE Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
23227 {"VoLTE Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23228 {"VoLTE Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23229 {"VoLTE Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
23230 {"VoLTE Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23231 {"VoLTE Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23232 {"VOLTE_STUB_UL", NULL, "VoLTE Stub Tx Mixer"},
23233
23234 {"Voice2 Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
23235 {"Voice2 Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23236 {"Voice2 Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
23237 {"Voice2 Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23238 {"Voice2 Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23239 {"Voice2 Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
23240 {"Voice2 Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23241 {"Voice2 Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23242 {"Voice2 Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
23243 {"Voice2 Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23244 {"Voice2 Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23245 {"VOICE2_STUB_UL", NULL, "Voice2 Stub Tx Mixer"},
23246
kunleizdf5a00a2017-11-27 15:27:36 +080023247 {"STUB_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
23248 {"STUB_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023249 {"STUB_RX", NULL, "STUB_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080023250
23251 {"SLIMBUS_1_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
23252 {"SLIMBUS_1_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023253 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080023254
23255 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
23256 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023257 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
23258
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023259 {"SLIM_7_RX_Voice Mixer", "Voip", "VOIP_DL"},
23260 {"SLIM_7_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023261 {"SLIM_7_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
23262 {"SLIM_7_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
23263 {"SLIM_7_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
23264 {"SLIMBUS_7_RX", NULL, "SLIM_7_RX_Voice Mixer"},
23265
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023266 {"SLIM_8_RX_Voice Mixer", "Voip", "VOIP_DL"},
23267 {"SLIM_8_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023268 {"SLIM_8_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
23269 {"SLIM_8_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
23270 {"SLIM_8_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
23271 {"SLIMBUS_8_RX", NULL, "SLIM_8_RX_Voice Mixer"},
23272
23273 {"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23274 {"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23275 {"SLIMBUS_1_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23276 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
23277 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23278 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23279 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
23280 {"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
23281 {"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23282 {"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
23283 {"SLIMBUS_3_RX Port Mixer", "AUX_PCM_RX", "AUX_PCM_RX"},
23284 {"SLIMBUS_3_RX Port Mixer", "SLIM_0_RX", "SLIMBUS_0_RX"},
23285 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
23286
23287 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23288 {"SLIMBUS_6_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23289 {"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23290 {"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23291 {"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023292 {"SLIMBUS_6_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023293 {"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23294 {"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23295 {"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23296 {"SLIMBUS_6_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23297 {"SLIMBUS_6_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23298 {"SLIMBUS_6_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23299 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23300 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Port Mixer"},
23301
23302 {"HDMI_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23303 {"HDMI", NULL, "HDMI_RX Port Mixer"},
23304
23305 {"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23306 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
23307
Karthikeyan Mani57550082018-05-03 18:43:58 -070023308 {"DISPLAY_PORT_RX1 Port Mixer", "MI2S_TX", "MI2S_TX"},
23309 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1 Port Mixer"},
23310
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023311 {"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23312 {"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
23313
23314 {"MI2S_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23315 {"MI2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23316 {"MI2S_RX", NULL, "MI2S_RX Port Mixer"},
23317
23318 {"PRI_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23319 {"PRI_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23320 {"PRI_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23321 {"PRI_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023322 {"PRI_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023323 {"PRI_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23324 {"PRI_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23325 {"PRI_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23326 {"PRI_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080023327 {"PRI_MI2S_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023328 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Port Mixer"},
23329
23330 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23331 {"SEC_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23332 {"SEC_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23333 {"SEC_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023334 {"SEC_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023335 {"SEC_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23336 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23337 {"SEC_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080023338 {"SEC_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023339 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Port Mixer"},
23340
23341 {"TERT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23342 {"TERT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23343 {"TERT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23344 {"TERT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023345 {"TERT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023346 {"TERT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23347 {"TERT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23348 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Port Mixer"},
23349
23350 {"QUAT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23351 {"QUAT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23352 {"QUAT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23353 {"QUAT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023354 {"QUAT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023355 {"QUAT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23356 {"QUAT_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23357 {"QUAT_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23358 {"QUAT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23359 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Port Mixer"},
23360
Rohit Kumara5077932017-09-10 22:05:05 +053023361 {"QUIN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23362 {"QUIN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23363 {"QUIN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23364 {"QUIN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23365 {"QUIN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
23366 {"QUIN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23367 {"QUIN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23368 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Port Mixer"},
23369
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023370 /* Backend Enablement */
23371
23372 {"BE_OUT", NULL, "PRI_I2S_RX"},
23373 {"BE_OUT", NULL, "SEC_I2S_RX"},
23374 {"BE_OUT", NULL, "SLIMBUS_0_RX"},
23375 {"BE_OUT", NULL, "SLIMBUS_1_RX"},
23376 {"BE_OUT", NULL, "SLIMBUS_2_RX"},
23377 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
23378 {"BE_OUT", NULL, "SLIMBUS_4_RX"},
23379 {"BE_OUT", NULL, "SLIMBUS_5_RX"},
23380 {"BE_OUT", NULL, "SLIMBUS_6_RX"},
23381 {"BE_OUT", NULL, "SLIMBUS_7_RX"},
23382 {"BE_OUT", NULL, "SLIMBUS_8_RX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023383 {"BE_OUT", NULL, "SLIMBUS_9_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023384 {"BE_OUT", NULL, "USB_AUDIO_RX"},
23385 {"BE_OUT", NULL, "HDMI"},
23386 {"BE_OUT", NULL, "DISPLAY_PORT"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070023387 {"BE_OUT", NULL, "DISPLAY_PORT1"},
Ralf Herzc8701f72018-06-20 11:37:35 +020023388 {"BE_OUT", NULL, "PRI_SPDIF_RX"},
23389 {"BE_OUT", NULL, "SEC_SPDIF_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023390 {"BE_OUT", NULL, "MI2S_RX"},
23391 {"BE_OUT", NULL, "QUAT_MI2S_RX"},
23392 {"BE_OUT", NULL, "QUIN_MI2S_RX"},
23393 {"BE_OUT", NULL, "TERT_MI2S_RX"},
23394 {"BE_OUT", NULL, "SEC_MI2S_RX"},
23395 {"BE_OUT", NULL, "SEC_MI2S_RX_SD1"},
23396 {"BE_OUT", NULL, "PRI_MI2S_RX"},
23397 {"BE_OUT", NULL, "INT0_MI2S_RX"},
23398 {"BE_OUT", NULL, "INT4_MI2S_RX"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023399 {"BE_OUT", NULL, "INT2_MI2S_RX"},
23400 {"BE_OUT", NULL, "INT3_MI2S_RX"},
23401 {"BE_OUT", NULL, "INT5_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023402 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
23403 {"BE_OUT", NULL, "INT_BT_A2DP_RX"},
23404 {"BE_OUT", NULL, "INT_FM_RX"},
23405 {"BE_OUT", NULL, "PCM_RX"},
23406 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
23407 {"BE_OUT", NULL, "AUX_PCM_RX"},
23408 {"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
23409 {"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
23410 {"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023411 {"BE_OUT", NULL, "QUIN_AUX_PCM_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023412 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
23413 {"BE_OUT", NULL, "INT_FM_RX"},
23414 {"BE_OUT", NULL, "PCM_RX"},
23415 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
23416 {"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
23417 {"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
23418 {"BE_OUT", NULL, "PRI_TDM_RX_0"},
23419 {"BE_OUT", NULL, "PRI_TDM_RX_1"},
23420 {"BE_OUT", NULL, "PRI_TDM_RX_2"},
23421 {"BE_OUT", NULL, "PRI_TDM_RX_3"},
23422 {"BE_OUT", NULL, "SEC_TDM_RX_0"},
23423 {"BE_OUT", NULL, "SEC_TDM_RX_1"},
23424 {"BE_OUT", NULL, "SEC_TDM_RX_2"},
23425 {"BE_OUT", NULL, "SEC_TDM_RX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070023426 {"BE_OUT", NULL, "SEC_TDM_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023427 {"BE_OUT", NULL, "TERT_TDM_RX_0"},
23428 {"BE_OUT", NULL, "TERT_TDM_RX_1"},
23429 {"BE_OUT", NULL, "TERT_TDM_RX_2"},
23430 {"BE_OUT", NULL, "TERT_TDM_RX_3"},
23431 {"BE_OUT", NULL, "TERT_TDM_RX_4"},
23432 {"BE_OUT", NULL, "QUAT_TDM_RX_0"},
23433 {"BE_OUT", NULL, "QUAT_TDM_RX_1"},
23434 {"BE_OUT", NULL, "QUAT_TDM_RX_2"},
23435 {"BE_OUT", NULL, "QUAT_TDM_RX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023436 {"BE_OUT", NULL, "QUIN_TDM_RX_0"},
23437 {"BE_OUT", NULL, "QUIN_TDM_RX_1"},
23438 {"BE_OUT", NULL, "QUIN_TDM_RX_2"},
23439 {"BE_OUT", NULL, "QUIN_TDM_RX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023440 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_0"},
23441 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023442 {"BE_OUT", NULL, "RX_CDC_DMA_RX_0"},
23443 {"BE_OUT", NULL, "RX_CDC_DMA_RX_1"},
23444 {"BE_OUT", NULL, "RX_CDC_DMA_RX_2"},
23445 {"BE_OUT", NULL, "RX_CDC_DMA_RX_3"},
23446 {"BE_OUT", NULL, "RX_CDC_DMA_RX_4"},
23447 {"BE_OUT", NULL, "RX_CDC_DMA_RX_5"},
23448 {"BE_OUT", NULL, "RX_CDC_DMA_RX_6"},
23449 {"BE_OUT", NULL, "RX_CDC_DMA_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023450
23451 {"PRI_I2S_TX", NULL, "BE_IN"},
23452 {"MI2S_TX", NULL, "BE_IN"},
23453 {"QUAT_MI2S_TX", NULL, "BE_IN"},
23454 {"QUIN_MI2S_TX", NULL, "BE_IN"},
23455 {"PRI_MI2S_TX", NULL, "BE_IN"},
23456 {"TERT_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023457 {"INT0_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023458 {"INT2_MI2S_TX", NULL, "BE_IN"},
23459 {"INT3_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023460 {"INT4_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023461 {"INT5_MI2S_TX", NULL, "BE_IN"},
23462 {"SEC_MI2S_TX", NULL, "BE_IN"},
23463 {"SENARY_MI2S_TX", NULL, "BE_IN" },
23464 {"SLIMBUS_0_TX", NULL, "BE_IN" },
23465 {"SLIMBUS_1_TX", NULL, "BE_IN" },
23466 {"SLIMBUS_3_TX", NULL, "BE_IN" },
23467 {"SLIMBUS_4_TX", NULL, "BE_IN" },
23468 {"SLIMBUS_5_TX", NULL, "BE_IN" },
23469 {"SLIMBUS_6_TX", NULL, "BE_IN" },
23470 {"SLIMBUS_7_TX", NULL, "BE_IN" },
23471 {"SLIMBUS_8_TX", NULL, "BE_IN" },
Surendar Karka3ef3d812018-09-28 18:52:35 +053023472 {"SLIMBUS_9_TX", NULL, "BE_IN" },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023473 {"USB_AUDIO_TX", NULL, "BE_IN" },
23474 {"INT_BT_SCO_TX", NULL, "BE_IN"},
23475 {"INT_FM_TX", NULL, "BE_IN"},
23476 {"PCM_TX", NULL, "BE_IN"},
23477 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
23478 {"BE_OUT", NULL, "STUB_RX"},
23479 {"STUB_TX", NULL, "BE_IN"},
23480 {"STUB_1_TX", NULL, "BE_IN"},
23481 {"BE_OUT", NULL, "AUX_PCM_RX"},
23482 {"AUX_PCM_TX", NULL, "BE_IN"},
23483 {"SEC_AUX_PCM_TX", NULL, "BE_IN"},
23484 {"TERT_AUX_PCM_TX", NULL, "BE_IN"},
23485 {"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053023486 {"QUIN_AUX_PCM_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023487 {"INCALL_RECORD_TX", NULL, "BE_IN"},
23488 {"INCALL_RECORD_RX", NULL, "BE_IN"},
23489 {"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
23490 {"SLIM0_RX_VI_FB_RCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023491 {"WSA_RX_0_VI_FB_LCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
23492 {"WSA_RX_0_VI_FB_RCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023493 {"PRI_MI2S_RX_VI_FB_MUX", "SENARY_TX", "SENARY_TX"},
23494 {"INT4_MI2S_RX_VI_FB_MONO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
23495 {"INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
23496 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_LCH_MUX"},
23497 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_RCH_MUX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023498 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_LCH_MUX"},
23499 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_RCH_MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023500 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_VI_FB_MUX"},
23501 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_MONO_CH_MUX"},
23502 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_STEREO_CH_MUX"},
23503 {"PRI_TDM_TX_0", NULL, "BE_IN"},
23504 {"PRI_TDM_TX_1", NULL, "BE_IN"},
23505 {"PRI_TDM_TX_2", NULL, "BE_IN"},
23506 {"PRI_TDM_TX_3", NULL, "BE_IN"},
23507 {"SEC_TDM_TX_0", NULL, "BE_IN"},
23508 {"SEC_TDM_TX_1", NULL, "BE_IN"},
23509 {"SEC_TDM_TX_2", NULL, "BE_IN"},
23510 {"SEC_TDM_TX_3", NULL, "BE_IN"},
23511 {"TERT_TDM_TX_0", NULL, "BE_IN"},
23512 {"TERT_TDM_TX_1", NULL, "BE_IN"},
23513 {"TERT_TDM_TX_2", NULL, "BE_IN"},
23514 {"TERT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenfdcc0982018-10-02 15:14:03 -070023515 {"TERT_TDM_TX_7", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023516 {"QUAT_TDM_TX_0", NULL, "BE_IN"},
23517 {"QUAT_TDM_TX_1", NULL, "BE_IN"},
23518 {"QUAT_TDM_TX_2", NULL, "BE_IN"},
23519 {"QUAT_TDM_TX_3", NULL, "BE_IN"},
Surendar Karkad47fda42018-05-20 19:21:10 +053023520 {"AFE_LOOPBACK_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053023521 {"QUIN_TDM_TX_0", NULL, "BE_IN"},
23522 {"QUIN_TDM_TX_1", NULL, "BE_IN"},
23523 {"QUIN_TDM_TX_2", NULL, "BE_IN"},
23524 {"QUIN_TDM_TX_3", NULL, "BE_IN"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023525 {"WSA_CDC_DMA_TX_0", NULL, "BE_IN"},
23526 {"WSA_CDC_DMA_TX_1", NULL, "BE_IN"},
23527 {"WSA_CDC_DMA_TX_2", NULL, "BE_IN"},
23528 {"VA_CDC_DMA_TX_0", NULL, "BE_IN"},
23529 {"VA_CDC_DMA_TX_1", NULL, "BE_IN"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080023530 {"VA_CDC_DMA_TX_2", NULL, "BE_IN"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023531 {"TX_CDC_DMA_TX_0", NULL, "BE_IN"},
23532 {"TX_CDC_DMA_TX_1", NULL, "BE_IN"},
23533 {"TX_CDC_DMA_TX_2", NULL, "BE_IN"},
23534 {"TX_CDC_DMA_TX_3", NULL, "BE_IN"},
23535 {"TX_CDC_DMA_TX_4", NULL, "BE_IN"},
23536 {"TX_CDC_DMA_TX_5", NULL, "BE_IN"},
Ralf Herzc8701f72018-06-20 11:37:35 +020023537 {"PRI_SPDIF_TX", NULL, "BE_IN"},
23538 {"SEC_SPDIF_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023539};
23540
23541static int msm_pcm_routing_hw_params(struct snd_pcm_substream *substream,
23542 struct snd_pcm_hw_params *params)
23543{
23544 struct snd_soc_pcm_runtime *rtd = substream->private_data;
23545 unsigned int be_id = rtd->dai_link->id;
23546
23547 if (be_id >= MSM_BACKEND_DAI_MAX) {
23548 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
23549 return -EINVAL;
23550 }
23551
23552 mutex_lock(&routing_lock);
23553 msm_bedais[be_id].sample_rate = params_rate(params);
23554 msm_bedais[be_id].channel = params_channels(params);
23555 msm_bedais[be_id].format = params_format(params);
23556 pr_debug("%s: BE Sample Rate (%d) format (%d) BE id %d\n",
23557 __func__, msm_bedais[be_id].sample_rate,
23558 msm_bedais[be_id].format, be_id);
23559 mutex_unlock(&routing_lock);
23560 return 0;
23561}
23562
23563static int msm_pcm_routing_close(struct snd_pcm_substream *substream)
23564{
23565 struct snd_soc_pcm_runtime *rtd = substream->private_data;
23566 unsigned int be_id = rtd->dai_link->id;
23567 int i, session_type, path_type, topology;
23568 struct msm_pcm_routing_bdai_data *bedai;
23569 struct msm_pcm_routing_fdai_data *fdai;
23570
23571 pr_debug("%s: substream->pcm->id:%s\n",
23572 __func__, substream->pcm->id);
23573
23574 if (be_id >= MSM_BACKEND_DAI_MAX) {
23575 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
23576 return -EINVAL;
23577 }
23578
23579 bedai = &msm_bedais[be_id];
23580 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
23581 0 : 1);
23582 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
23583 path_type = ADM_PATH_PLAYBACK;
23584 else
23585 path_type = ADM_PATH_LIVE_REC;
23586
23587 mutex_lock(&routing_lock);
23588 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
23589 if (!is_mm_lsm_fe_id(i))
23590 continue;
23591 fdai = &fe_dai_map[i][session_type];
23592 if (fdai->strm_id != INVALID_SESSION) {
23593 int idx;
23594 int port_id;
23595 unsigned long copp =
23596 session_copp_map[i][session_type][be_id];
23597 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
23598 if (test_bit(idx, &copp))
23599 break;
Vignesh Kulothungane59d3152018-10-10 14:19:59 -070023600
23601 if (idx >= MAX_COPPS_PER_PORT) {
23602 pr_debug("%s: copp idx is invalid, exiting\n",
23603 __func__);
23604 continue;
23605 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023606 fdai->be_srate = bedai->sample_rate;
Surendar Karkae7507512018-07-20 15:46:54 +053023607 port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023608 topology = adm_get_topology_for_port_copp_idx(port_id,
23609 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023610 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +053023611 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023612 pr_debug("%s: copp:%ld,idx bit fe:%d, type:%d,be:%d topology=0x%x\n",
23613 __func__, copp, i, session_type, be_id,
23614 topology);
23615 clear_bit(idx,
23616 &session_copp_map[i][session_type][be_id]);
23617 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023618 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053023619 msm_pcm_routing_deinit_pp(port_id,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023620 topology);
23621 }
23622 }
23623
23624 bedai->active = 0;
23625 bedai->sample_rate = 0;
23626 bedai->channel = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023627 mutex_unlock(&routing_lock);
23628
23629 return 0;
23630}
23631
23632static int msm_pcm_routing_prepare(struct snd_pcm_substream *substream)
23633{
23634 struct snd_soc_pcm_runtime *rtd = substream->private_data;
23635 unsigned int be_id = rtd->dai_link->id;
23636 int i, path_type, topology;
23637 int session_type = INVALID_SESSION;
23638 struct msm_pcm_routing_bdai_data *bedai;
23639 u32 channels, sample_rate;
23640 uint16_t bits_per_sample = 16, voc_path_type;
23641 struct msm_pcm_routing_fdai_data *fdai;
23642 u32 session_id;
23643 struct media_format_info voc_be_media_format;
23644 bool is_lsm;
23645
23646 pr_debug("%s: substream->pcm->id:%s\n",
23647 __func__, substream->pcm->id);
23648
23649 if (be_id >= MSM_BACKEND_DAI_MAX) {
23650 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
23651 return -EINVAL;
23652 }
23653
23654 bedai = &msm_bedais[be_id];
23655
23656 mutex_lock(&routing_lock);
23657 if (bedai->active == 1)
23658 goto done; /* Ignore prepare if back-end already active */
23659
23660 /* AFE port is not active at this point. However, still
23661 * go ahead setting active flag under the notion that
23662 * QDSP6 is able to handle ADM starting before AFE port
23663 * is started.
23664 */
23665 bedai->active = 1;
23666
23667 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
23668 if (!(is_mm_lsm_fe_id(i) &&
23669 route_check_fe_id_adm_support(i)))
23670 continue;
23671
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023672 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
23673 SESSION_TYPE_RX : SESSION_TYPE_TX;
23674 fdai = &fe_dai_map[i][session_type];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023675 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023676 if (fdai->passthr_mode != LEGACY_PCM)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023677 path_type = ADM_PATH_COMPRESSED_RX;
23678 else
23679 path_type = ADM_PATH_PLAYBACK;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023680 } else {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023681 if ((fdai->passthr_mode != LEGACY_PCM) &&
23682 (fdai->passthr_mode != LISTEN))
Ralf Herzc8701f72018-06-20 11:37:35 +020023683 path_type = ADM_PATH_COMPRESSED_TX;
23684 else
23685 path_type = ADM_PATH_LIVE_REC;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023686 }
23687
23688 is_lsm = (i >= MSM_FRONTEND_DAI_LSM1) &&
23689 (i <= MSM_FRONTEND_DAI_LSM8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023690 if (fdai->strm_id != INVALID_SESSION) {
23691 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +053023692 int port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023693
23694 if (session_type == SESSION_TYPE_TX &&
23695 fdai->be_srate &&
23696 (fdai->be_srate != bedai->sample_rate)) {
23697 pr_debug("%s: flush strm %d diff BE rates\n",
23698 __func__,
23699 fdai->strm_id);
23700
23701 if (fdai->event_info.event_func)
23702 fdai->event_info.event_func(
23703 MSM_PCM_RT_EVT_BUF_RECFG,
23704 fdai->event_info.priv_data);
23705 fdai->be_srate = 0; /* might not need it */
23706 }
23707 bits_per_sample = msm_routing_get_bit_width(
23708 bedai->format);
23709
23710 app_type =
23711 fe_dai_app_type_cfg[i][session_type][be_id].app_type;
23712 if (app_type && is_lsm) {
23713 app_type_idx =
23714 msm_pcm_routing_get_lsm_app_type_idx(app_type);
23715 sample_rate =
23716 fe_dai_app_type_cfg[i][session_type][be_id]
23717 .sample_rate;
23718 bits_per_sample =
23719 lsm_app_type_cfg[app_type_idx].bit_width;
23720 } else if (app_type) {
23721 app_type_idx =
23722 msm_pcm_routing_get_app_type_idx(app_type);
23723 sample_rate =
23724 fe_dai_app_type_cfg[i][session_type]
23725 [be_id].sample_rate;
23726 bits_per_sample =
23727 app_type_cfg[app_type_idx].bit_width;
23728 } else
23729 sample_rate = bedai->sample_rate;
23730 /*
23731 * check if ADM needs to be configured with different
23732 * channel mapping than backend
23733 */
23734 if (!bedai->adm_override_ch)
23735 channels = bedai->channel;
23736 else
23737 channels = bedai->adm_override_ch;
23738 acdb_dev_id =
23739 fe_dai_app_type_cfg[i][session_type][be_id].acdb_dev_id;
23740 topology = msm_routing_get_adm_topology(i, session_type,
23741 be_id);
Ralf Herzc8701f72018-06-20 11:37:35 +020023742
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023743 if ((fdai->passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
23744 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_GEN)
23745 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_IEC61937))
Ralf Herzc8701f72018-06-20 11:37:35 +020023746 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
23747
Surendar Karkae7507512018-07-20 15:46:54 +053023748 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023749 sample_rate, channels, topology,
23750 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +053023751 app_type, acdb_dev_id,
23752 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023753 if ((copp_idx < 0) ||
23754 (copp_idx >= MAX_COPPS_PER_PORT)) {
23755 pr_err("%s: adm open failed\n", __func__);
23756 mutex_unlock(&routing_lock);
23757 return -EINVAL;
23758 }
23759 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
23760 __func__, i, session_type, be_id);
23761 set_bit(copp_idx,
23762 &session_copp_map[i][session_type][be_id]);
23763
23764 if (msm_is_resample_needed(
23765 sample_rate,
23766 bedai->sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +053023767 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023768 bedai->sample_rate);
23769
23770 msm_pcm_routing_build_matrix(i, session_type, path_type,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023771 fdai->perf_mode, fdai->passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023772 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023773 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053023774 msm_pcm_routing_cfg_pp(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023775 topology, channels);
23776 }
23777 }
23778
23779 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
23780 session_id = msm_pcm_routing_get_voc_sessionid(i);
23781 if (session_id) {
23782 pr_debug("%s voice session_id: 0x%x\n", __func__,
23783 session_id);
23784
23785 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
23786 voc_path_type = RX_PATH;
23787 else
23788 voc_path_type = TX_PATH;
23789
23790 voc_set_route_flag(session_id, voc_path_type, 1);
23791
23792 memset(&voc_be_media_format, 0,
23793 sizeof(struct media_format_info));
23794
23795 voc_be_media_format.port_id = bedai->port_id;
23796 voc_be_media_format.num_channels = bedai->channel;
23797 voc_be_media_format.sample_rate = bedai->sample_rate;
23798 voc_be_media_format.bits_per_sample = bedai->format;
23799 /* Defaulting this to 1 for voice call usecases */
23800 voc_be_media_format.channel_mapping[0] = 1;
23801
23802 voc_set_device_config(session_id, voc_path_type,
23803 &voc_be_media_format);
23804
23805 if (voc_get_route_flag(session_id, RX_PATH) &&
23806 voc_get_route_flag(session_id, TX_PATH))
23807 voc_enable_device(session_id);
23808 }
23809 }
23810
23811 /* Check if backend is an external ec ref port and set as needed */
23812 if (unlikely(bedai->port_id == voc_get_ext_ec_ref_port_id())) {
23813
23814 memset(&voc_be_media_format, 0,
23815 sizeof(struct media_format_info));
23816
23817 /* Get format info for ec ref port from msm_bedais[] */
23818 voc_be_media_format.port_id = bedai->port_id;
23819 voc_be_media_format.num_channels = bedai->channel;
23820 voc_be_media_format.bits_per_sample = bedai->format;
23821 voc_be_media_format.sample_rate = bedai->sample_rate;
23822 /* Defaulting this to 1 for voice call usecases */
23823 voc_be_media_format.channel_mapping[0] = 1;
23824 voc_set_ext_ec_ref_media_fmt_info(&voc_be_media_format);
23825 pr_debug("%s: EC Ref media format info set to port_id=%d, num_channels=%d, bits_per_sample=%d, sample_rate=%d\n",
23826 __func__, voc_be_media_format.port_id,
23827 voc_be_media_format.num_channels,
23828 voc_be_media_format.bits_per_sample,
23829 voc_be_media_format.sample_rate);
23830 }
23831
23832done:
23833 mutex_unlock(&routing_lock);
23834
23835 return 0;
23836}
23837
23838static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
23839 int fe_id)
23840{
23841 int index, topo_id, be_idx;
23842 unsigned long pp_config = 0;
23843 bool mute_on;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023844 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023845 bool compr_passthr_mode = true;
23846
23847 pr_debug("%s: port_id %d, copp_idx %d\n", __func__, port_id, copp_idx);
23848
23849 if (port_id != HDMI_RX && port_id != DISPLAY_PORT_RX) {
23850 pr_err("%s: Device pp params on invalid port %d\n",
23851 __func__, port_id);
23852 return -EINVAL;
23853 }
23854
23855 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
23856 if (port_id == msm_bedais[be_idx].port_id)
23857 break;
23858 }
23859
23860 if (be_idx >= MSM_BACKEND_DAI_MAX) {
23861 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
23862 return -EINVAL;
23863 }
23864
23865 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
23866 if (msm_bedais_pp_params[index].port_id == port_id)
23867 break;
23868 }
23869 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
23870 pr_err("%s: Invalid backend pp params index %d\n",
23871 __func__, index);
23872 return -EINVAL;
23873 }
23874
23875 topo_id = adm_get_topology_for_port_copp_idx(port_id, copp_idx);
23876 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY) {
23877 pr_err("%s: Invalid passthrough topology 0x%x\n",
23878 __func__, topo_id);
23879 return -EINVAL;
23880 }
23881
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023882 session_type =
23883 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
23884 SESSION_TYPE_RX : SESSION_TYPE_TX;
23885
23886 if ((fe_dai_map[fe_id][session_type].passthr_mode == LEGACY_PCM) ||
23887 (fe_dai_map[fe_id][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023888 compr_passthr_mode = false;
23889
23890 pp_config = msm_bedais_pp_params[index].pp_params_config;
23891 if (test_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config)) {
23892 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
23893 clear_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config);
23894 mute_on = msm_bedais_pp_params[index].mute_on;
23895 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23896 adm_send_compressed_device_mute(port_id,
23897 copp_idx,
23898 mute_on);
23899 }
23900 if (test_bit(ADM_PP_PARAM_LATENCY_BIT, &pp_config)) {
23901 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
23902 clear_bit(ADM_PP_PARAM_LATENCY_BIT,
23903 &pp_config);
23904 latency = msm_bedais_pp_params[index].latency;
23905 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23906 adm_send_compressed_device_latency(port_id,
23907 copp_idx,
23908 latency);
23909 }
23910 return 0;
23911}
23912
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023913static uint32_t msm_routing_get_topology(size_t data_size, void *data)
23914{
23915 uint32_t topology = NULL_COPP_TOPOLOGY;
23916 void *cal_info = NULL;
23917 uint32_t size = 0;
23918
23919 /* Retrieve cal_info size from cal data*/
23920 size = data_size - sizeof(struct audio_cal_type_basic);
23921 cal_info = kzalloc(size, GFP_KERNEL);
23922
23923 if (!cal_info)
23924 goto done;
23925
23926 memcpy(cal_info,
23927 ((uint8_t *)data + sizeof(struct audio_cal_type_basic)), size);
23928
23929 topology = ((struct audio_cal_info_adm_top *)cal_info)->topology;
23930 kfree(cal_info);
23931 cal_info = NULL;
23932
23933done:
23934 pr_debug("%s: Using topology %d\n", __func__, topology);
23935
23936 return topology;
23937}
23938
23939static void msm_routing_load_topology(size_t data_size, void *data)
23940{
23941 uint32_t topology_id;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053023942 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023943
23944 topology_id = msm_routing_get_topology(data_size, data);
23945 if (topology_id != NULL_COPP_TOPOLOGY)
23946 ret = q6core_load_unload_topo_modules(topology_id,
23947 CORE_LOAD_TOPOLOGY);
23948 if (ret < 0)
23949 pr_debug("%s %d load topology failed\n",
23950 __func__, topology_id);
23951
23952}
23953
23954static void msm_routing_unload_topology(uint32_t topology_id)
23955{
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053023956 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023957
23958 if (topology_id != NULL_COPP_TOPOLOGY)
23959 ret = q6core_load_unload_topo_modules(topology_id,
23960 CORE_UNLOAD_TOPOLOGY);
23961 if (ret < 0)
23962 pr_debug("%s %d unload topology failed\n",
23963 __func__, topology_id);
23964
23965}
23966
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023967static int msm_routing_put_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
23968 struct snd_ctl_elem_value *ucontrol)
23969{
23970 int pp_id = ucontrol->value.integer.value[0];
23971 int port_id = 0;
23972 int index, be_idx, i, topo_id, idx;
23973 bool mute;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023974 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023975 bool compr_passthr_mode = true;
23976
23977 pr_debug("%s: pp_id: 0x%x\n", __func__, pp_id);
23978
23979 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
23980 port_id = msm_bedais[be_idx].port_id;
23981 if (port_id == HDMI_RX || port_id == DISPLAY_PORT_RX)
23982 break;
23983 }
23984
23985 if (be_idx >= MSM_BACKEND_DAI_MAX) {
23986 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
23987 return -EINVAL;
23988 }
23989
23990 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
23991 if (msm_bedais_pp_params[index].port_id == port_id)
23992 break;
23993 }
23994 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
23995 pr_err("%s: Invalid pp params backend index %d\n",
23996 __func__, index);
23997 return -EINVAL;
23998 }
23999
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053024000 session_type =
24001 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
24002 SESSION_TYPE_RX : SESSION_TYPE_TX;
24003
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024004 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
24005 MSM_FRONTEND_DAI_MM_SIZE) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053024006 if ((fe_dai_map[i][session_type].passthr_mode == LEGACY_PCM) ||
24007 (fe_dai_map[i][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024008 compr_passthr_mode = false;
24009
24010 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
24011 unsigned long copp =
24012 session_copp_map[i]
24013 [SESSION_TYPE_RX][be_idx];
24014 if (!test_bit(idx, &copp))
24015 continue;
24016 topo_id = adm_get_topology_for_port_copp_idx(port_id,
24017 idx);
24018 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY)
24019 continue;
24020 pr_debug("%s: port: 0x%x, copp %ld, be active: %d, passt: %d\n",
24021 __func__, port_id, copp, msm_bedais[be_idx].active,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053024022 fe_dai_map[i][session_type].passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024023 switch (pp_id) {
24024 case ADM_PP_PARAM_MUTE_ID:
24025 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
24026 mute = ucontrol->value.integer.value[1] ? true : false;
24027 msm_bedais_pp_params[index].mute_on = mute;
24028 set_bit(ADM_PP_PARAM_MUTE_BIT,
24029 &msm_bedais_pp_params[index].pp_params_config);
24030 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
24031 adm_send_compressed_device_mute(port_id,
24032 idx, mute);
24033 break;
24034 case ADM_PP_PARAM_LATENCY_ID:
24035 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
24036 msm_bedais_pp_params[index].latency =
24037 ucontrol->value.integer.value[1];
24038 set_bit(ADM_PP_PARAM_LATENCY_BIT,
24039 &msm_bedais_pp_params[index].pp_params_config);
24040 latency = msm_bedais_pp_params[index].latency =
24041 ucontrol->value.integer.value[1];
24042 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
24043 adm_send_compressed_device_latency(port_id,
24044 idx, latency);
24045 break;
24046 default:
24047 pr_info("%s, device pp param %d not supported\n",
24048 __func__, pp_id);
24049 break;
24050 }
24051 }
24052 }
24053 return 0;
24054}
24055
24056static int msm_routing_get_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
24057 struct snd_ctl_elem_value *ucontrol)
24058{
24059 pr_debug("%s:msm_routing_get_device_pp_params_mixer", __func__);
24060 return 0;
24061}
24062
24063static const struct snd_kcontrol_new device_pp_params_mixer_controls[] = {
24064 SOC_SINGLE_MULTI_EXT("Device PP Params", SND_SOC_NOPM, 0, 0xFFFFFFFF,
24065 0, 3, msm_routing_get_device_pp_params_mixer,
24066 msm_routing_put_device_pp_params_mixer),
24067};
24068
24069static int msm_aptx_dec_license_control_get(struct snd_kcontrol *kcontrol,
24070 struct snd_ctl_elem_value *ucontrol)
24071{
24072 ucontrol->value.integer.value[0] =
24073 core_get_license_status(ASM_MEDIA_FMT_APTX);
24074 pr_debug("%s: status %ld\n", __func__,
24075 ucontrol->value.integer.value[0]);
24076 return 0;
24077}
24078
24079static int msm_aptx_dec_license_control_put(struct snd_kcontrol *kcontrol,
24080 struct snd_ctl_elem_value *ucontrol)
24081{
24082 int32_t status = 0;
24083
24084 status = core_set_license(ucontrol->value.integer.value[0],
24085 APTX_CLASSIC_DEC_LICENSE_ID);
24086 pr_debug("%s: status %d\n", __func__, status);
24087 return status;
24088}
24089
24090static const struct snd_kcontrol_new aptx_dec_license_controls[] = {
24091 SOC_SINGLE_EXT("APTX Dec License", SND_SOC_NOPM, 0,
24092 0xFFFF, 0, msm_aptx_dec_license_control_get,
24093 msm_aptx_dec_license_control_put),
24094};
24095
24096static int msm_routing_be_dai_name_table_info(struct snd_kcontrol *kcontrol,
24097 struct snd_ctl_elem_info *uinfo)
24098{
24099 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
24100 uinfo->count = sizeof(be_dai_name_table);
24101 return 0;
24102}
24103
24104static int msm_routing_be_dai_name_table_tlv_get(struct snd_kcontrol *kcontrol,
24105 unsigned int __user *bytes,
24106 unsigned int size)
24107{
24108 int i;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053024109 int ret = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024110
24111 if (size < sizeof(be_dai_name_table)) {
24112 pr_err("%s: invalid size %d requested, returning\n",
24113 __func__, size);
24114 ret = -EINVAL;
24115 goto done;
24116 }
24117
24118 /*
24119 * Fill be_dai_name_table from msm_bedais table to reduce code changes
24120 * needed when adding new backends
24121 */
24122 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
24123 be_dai_name_table[i].be_id = i;
24124 strlcpy(be_dai_name_table[i].be_name,
24125 msm_bedais[i].name,
24126 LPASS_BE_NAME_MAX_LENGTH);
24127 }
24128
24129 ret = copy_to_user(bytes, &be_dai_name_table,
24130 sizeof(be_dai_name_table));
24131 if (ret) {
24132 pr_err("%s: failed to copy be_dai_name_table\n", __func__);
24133 ret = -EFAULT;
24134 }
24135
24136done:
24137 return ret;
24138}
24139
24140static const struct snd_kcontrol_new
24141 msm_routing_be_dai_name_table_mixer_controls[] = {
24142 {
24143 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
24144 SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
24145 .info = msm_routing_be_dai_name_table_info,
24146 .name = "Backend DAI Name Table",
24147 .tlv.c = snd_soc_bytes_tlv_callback,
24148 .private_value = (unsigned long) &(struct soc_bytes_ext) {
24149 .max = sizeof(be_dai_name_table),
24150 .get = msm_routing_be_dai_name_table_tlv_get,
24151 }
24152 },
24153};
24154
24155static int msm_routing_stereo_channel_reverse_control_get(
24156 struct snd_kcontrol *kcontrol,
24157 struct snd_ctl_elem_value *ucontrol)
24158{
24159 ucontrol->value.integer.value[0] = swap_ch;
24160 pr_debug("%s: Swap channel value: %ld\n", __func__,
24161 ucontrol->value.integer.value[0]);
24162 return 0;
24163}
24164
24165static int msm_routing_stereo_channel_reverse_control_put(
24166 struct snd_kcontrol *kcontrol,
24167 struct snd_ctl_elem_value *ucontrol)
24168{
24169 int i, idx, be_index, port_id;
24170 int ret = 0;
24171 unsigned long copp;
24172
24173 pr_debug("%s Swap channel value:%ld\n", __func__,
24174 ucontrol->value.integer.value[0]);
24175
24176 swap_ch = ucontrol->value.integer.value[0];
24177
24178 mutex_lock(&routing_lock);
24179 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
24180 port_id = msm_bedais[be_index].port_id;
24181 if (!msm_bedais[be_index].active)
24182 continue;
24183
24184 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
24185 MSM_FRONTEND_DAI_MM_SIZE) {
24186 copp = session_copp_map[i][SESSION_TYPE_RX][be_index];
24187 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
24188 if (!test_bit(idx, &copp))
24189 continue;
24190
24191 pr_debug("%s: swap channel control of portid:%d, coppid:%d\n",
24192 __func__, port_id, idx);
24193 ret = adm_swap_speaker_channels(
24194 port_id, idx,
24195 msm_bedais[be_index].sample_rate,
24196 swap_ch);
24197 if (ret) {
24198 pr_err("%s:Swap_channel failed, err=%d\n",
24199 __func__, ret);
24200 goto done;
24201 }
24202 }
24203 }
24204 }
24205done:
24206 mutex_unlock(&routing_lock);
24207 return ret;
24208}
24209
24210static const struct snd_kcontrol_new stereo_channel_reverse_control[] = {
24211 SOC_SINGLE_EXT("Swap channel", SND_SOC_NOPM, 0,
24212 1, 0, msm_routing_stereo_channel_reverse_control_get,
24213 msm_routing_stereo_channel_reverse_control_put),
24214};
24215
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080024216static int msm_routing_instance_id_support_info(struct snd_kcontrol *kcontrol,
24217 struct snd_ctl_elem_info *uinfo)
24218{
24219 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
24220 uinfo->count = 1;
24221 return 0;
24222}
24223
24224static int msm_routing_instance_id_support_put(
24225 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
24226{
24227 bool supported = ucontrol->value.integer.value[0] ? true : false;
24228
24229 q6common_update_instance_id_support(supported);
24230 return 0;
24231}
24232
24233static int msm_routing_instance_id_support_get(
24234 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
24235{
24236 bool supported = false;
24237
24238 supported = q6common_is_instance_id_supported();
24239 ucontrol->value.integer.value[0] = supported ? 1 : 0;
24240
24241 return 0;
24242}
24243
24244static const struct snd_kcontrol_new
24245 msm_routing_feature_support_mixer_controls[] = {
24246 {
24247 .access = SNDRV_CTL_ELEM_ACCESS_READ |
24248 SNDRV_CTL_ELEM_ACCESS_WRITE,
24249 .info = msm_routing_instance_id_support_info,
24250 .name = "Instance ID Support",
24251 .put = msm_routing_instance_id_support_put,
24252 .get = msm_routing_instance_id_support_get,
24253 },
24254};
24255
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024256static const struct snd_pcm_ops msm_routing_pcm_ops = {
24257 .hw_params = msm_pcm_routing_hw_params,
24258 .close = msm_pcm_routing_close,
24259 .prepare = msm_pcm_routing_prepare,
24260};
24261
24262/* Not used but frame seems to require it */
Meng Wangee084a02018-09-04 16:11:58 +080024263static int msm_routing_probe(struct snd_soc_component *component)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024264{
Meng Wangee084a02018-09-04 16:11:58 +080024265 snd_soc_dapm_new_controls(&component->dapm, msm_qdsp6_widgets,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024266 ARRAY_SIZE(msm_qdsp6_widgets));
Meng Wangee084a02018-09-04 16:11:58 +080024267 snd_soc_dapm_add_routes(&component->dapm, intercon,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024268 ARRAY_SIZE(intercon));
24269
Meng Wangee084a02018-09-04 16:11:58 +080024270 snd_soc_dapm_new_widgets(component->dapm.card);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024271
Meng Wangee084a02018-09-04 16:11:58 +080024272 snd_soc_add_component_controls(component, lsm_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024273 ARRAY_SIZE(lsm_controls));
24274
Meng Wangee084a02018-09-04 16:11:58 +080024275 snd_soc_add_component_controls(component, aanc_slim_0_rx_mux,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024276 ARRAY_SIZE(aanc_slim_0_rx_mux));
24277
Meng Wangee084a02018-09-04 16:11:58 +080024278 snd_soc_add_component_controls(component, aanc_noise_level,
Sudheer Papothic07b37a2018-05-04 05:56:47 +053024279 ARRAY_SIZE(aanc_noise_level));
24280
Meng Wangee084a02018-09-04 16:11:58 +080024281 snd_soc_add_component_controls(component, msm_voc_session_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024282 ARRAY_SIZE(msm_voc_session_controls));
24283
Meng Wangee084a02018-09-04 16:11:58 +080024284 snd_soc_add_component_controls(component, app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024285 ARRAY_SIZE(app_type_cfg_controls));
24286
Meng Wangee084a02018-09-04 16:11:58 +080024287 snd_soc_add_component_controls(component, lsm_app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024288 ARRAY_SIZE(lsm_app_type_cfg_controls));
24289
Meng Wangee084a02018-09-04 16:11:58 +080024290 snd_soc_add_component_controls(component, module_cfg_controls,
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070024291 ARRAY_SIZE(module_cfg_controls));
24292
Meng Wangee084a02018-09-04 16:11:58 +080024293 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024294 stereo_to_custom_stereo_controls,
24295 ARRAY_SIZE(stereo_to_custom_stereo_controls));
24296
Meng Wangee084a02018-09-04 16:11:58 +080024297 snd_soc_add_component_controls(component, ec_ref_param_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024298 ARRAY_SIZE(ec_ref_param_controls));
24299
Meng Wangee084a02018-09-04 16:11:58 +080024300 snd_soc_add_component_controls(component, channel_mixer_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024301 ARRAY_SIZE(channel_mixer_controls));
24302
Meng Wangee084a02018-09-04 16:11:58 +080024303 msm_qti_pp_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024304
Meng Wangee084a02018-09-04 16:11:58 +080024305 msm_dts_srs_tm_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024306
Meng Wangee084a02018-09-04 16:11:58 +080024307 msm_dolby_dap_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024308
Meng Wangee084a02018-09-04 16:11:58 +080024309 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024310 use_ds1_or_ds2_controls,
24311 ARRAY_SIZE(use_ds1_or_ds2_controls));
24312
Meng Wangee084a02018-09-04 16:11:58 +080024313 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024314 device_pp_params_mixer_controls,
24315 ARRAY_SIZE(device_pp_params_mixer_controls));
24316
Meng Wangee084a02018-09-04 16:11:58 +080024317 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024318 msm_routing_be_dai_name_table_mixer_controls,
24319 ARRAY_SIZE(msm_routing_be_dai_name_table_mixer_controls));
24320
Meng Wangee084a02018-09-04 16:11:58 +080024321 snd_soc_add_component_controls(component, msm_source_tracking_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024322 ARRAY_SIZE(msm_source_tracking_controls));
Meng Wangee084a02018-09-04 16:11:58 +080024323 snd_soc_add_component_controls(component, adm_channel_config_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024324 ARRAY_SIZE(adm_channel_config_controls));
24325
Meng Wangee084a02018-09-04 16:11:58 +080024326 snd_soc_add_component_controls(component, aptx_dec_license_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024327 ARRAY_SIZE(aptx_dec_license_controls));
Meng Wangee084a02018-09-04 16:11:58 +080024328 snd_soc_add_component_controls(component,
24329 stereo_channel_reverse_control,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024330 ARRAY_SIZE(stereo_channel_reverse_control));
Meng Wangee084a02018-09-04 16:11:58 +080024331 snd_soc_add_component_controls(
24332 component, msm_routing_feature_support_mixer_controls,
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080024333 ARRAY_SIZE(msm_routing_feature_support_mixer_controls));
24334
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024335 return 0;
24336}
24337
24338int msm_routing_pcm_new(struct snd_soc_pcm_runtime *runtime)
24339{
24340 return msm_pcm_routing_hwdep_new(runtime, msm_bedais);
24341}
24342
24343void msm_routing_pcm_free(struct snd_pcm *pcm)
24344{
24345 msm_pcm_routing_hwdep_free(pcm);
24346}
24347
Meng Wangee084a02018-09-04 16:11:58 +080024348static struct snd_soc_component_driver msm_soc_routing_component = {
24349 .name = DRV_NAME,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024350 .ops = &msm_routing_pcm_ops,
24351 .probe = msm_routing_probe,
24352 .pcm_new = msm_routing_pcm_new,
24353 .pcm_free = msm_routing_pcm_free,
24354};
24355
24356static int msm_routing_pcm_probe(struct platform_device *pdev)
24357{
24358
24359 dev_dbg(&pdev->dev, "dev name %s\n", dev_name(&pdev->dev));
Meng Wangee084a02018-09-04 16:11:58 +080024360 return snd_soc_register_component(&pdev->dev,
24361 &msm_soc_routing_component,
24362 NULL, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024363}
24364
24365static int msm_routing_pcm_remove(struct platform_device *pdev)
24366{
Meng Wangee084a02018-09-04 16:11:58 +080024367 snd_soc_unregister_component(&pdev->dev);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024368 return 0;
24369}
24370
24371static const struct of_device_id msm_pcm_routing_dt_match[] = {
24372 {.compatible = "qcom,msm-pcm-routing"},
24373 {}
24374};
24375MODULE_DEVICE_TABLE(of, msm_pcm_routing_dt_match);
24376
24377static struct platform_driver msm_routing_pcm_driver = {
24378 .driver = {
24379 .name = "msm-pcm-routing",
24380 .owner = THIS_MODULE,
24381 .of_match_table = msm_pcm_routing_dt_match,
24382 },
24383 .probe = msm_routing_pcm_probe,
24384 .remove = msm_routing_pcm_remove,
24385};
24386
24387int msm_routing_check_backend_enabled(int fedai_id)
24388{
24389 int i;
24390
24391 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
24392 /* bad ID assigned in machine driver */
24393 pr_err("%s: bad MM ID\n", __func__);
24394 return 0;
24395 }
24396 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
24397 if (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))
24398 return msm_bedais[i].active;
24399 }
24400 return 0;
24401}
24402
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024403static int get_cal_type_index(int32_t cal_type)
24404{
24405 int ret = -EINVAL;
24406
24407 switch (cal_type) {
24408 case ADM_TOPOLOGY_CAL_TYPE:
24409 ret = ADM_TOPOLOGY_CAL_TYPE_IDX;
24410 break;
24411 case ADM_LSM_TOPOLOGY_CAL_TYPE:
24412 ret = ADM_LSM_TOPOLOGY_CAL_TYPE_IDX;
24413 break;
24414 default:
24415 pr_err("%s: Invalid cal type %d\n", __func__, cal_type);
24416 }
24417 return ret;
24418}
24419
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024420static int msm_routing_set_cal(int32_t cal_type,
24421 size_t data_size, void *data)
24422{
24423 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024424 int cal_index;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024425 pr_debug("%s\n", __func__);
24426
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024427 cal_index = get_cal_type_index(cal_type);
24428 if (cal_index < 0) {
24429 pr_err("%s: Could not get cal index %d\n",
24430 __func__, cal_index);
24431 ret = -EINVAL;
24432 goto done;
24433 }
24434
24435 ret = cal_utils_set_cal(data_size, data, cal_data[cal_index], 0, NULL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024436 if (ret < 0) {
24437 pr_err("%s: cal_utils_set_cal failed, ret = %d, cal type = %d!\n",
24438 __func__, ret, cal_type);
24439 ret = -EINVAL;
24440 goto done;
24441 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070024442 /* Pre-load if it is ADM topology */
24443 if ((cal_index == ADM_TOPOLOGY_CAL_TYPE_IDX) ||
24444 (cal_index == ADM_LSM_TOPOLOGY_CAL_TYPE_IDX)) {
24445 msm_routing_load_topology(data_size, data);
24446 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024447done:
24448 return ret;
24449}
24450
24451static void msm_routing_delete_cal_data(void)
24452{
24453 pr_debug("%s\n", __func__);
24454
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024455 cal_utils_destroy_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024456}
24457
24458static int msm_routing_init_cal_data(void)
24459{
24460 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024461 struct cal_type_info cal_type_info[] = {
24462 {{ADM_TOPOLOGY_CAL_TYPE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024463 {NULL, NULL, NULL,
24464 msm_routing_set_cal, NULL, NULL} },
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024465 {NULL, NULL, cal_utils_match_buf_num} },
24466
24467 {{ADM_LSM_TOPOLOGY_CAL_TYPE,
24468 {NULL, NULL, NULL,
24469 msm_routing_set_cal, NULL, NULL} },
24470 {NULL, NULL, cal_utils_match_buf_num} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024471 };
24472 pr_debug("%s\n", __func__);
24473
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024474 ret = cal_utils_create_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0],
24475 &cal_type_info[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024476 if (ret < 0) {
24477 pr_err("%s: could not create cal type!\n",
24478 __func__);
24479 ret = -EINVAL;
24480 goto err;
24481 }
24482
24483 return ret;
24484err:
24485 msm_routing_delete_cal_data();
24486 return ret;
24487}
24488
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053024489int __init msm_soc_routing_platform_init(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024490{
24491 mutex_init(&routing_lock);
24492 if (msm_routing_init_cal_data())
24493 pr_err("%s: could not init cal data!\n", __func__);
24494
24495 afe_set_routing_callback(
24496 (routing_cb)msm_pcm_get_dev_acdb_id_by_port_id);
24497
24498 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
24499 memset(&last_be_id_configured, 0, sizeof(last_be_id_configured));
24500
24501 return platform_driver_register(&msm_routing_pcm_driver);
24502}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024503
Asish Bhattacharya5faacb32017-12-04 17:23:15 +053024504void msm_soc_routing_platform_exit(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024505{
24506 msm_routing_delete_cal_data();
24507 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
24508 mutex_destroy(&routing_lock);
24509 platform_driver_unregister(&msm_routing_pcm_driver);
24510}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024511
24512MODULE_DESCRIPTION("MSM routing platform driver");
24513MODULE_LICENSE("GPL v2");