blob: a69391f54f71a657ec58e5c03f808ef687311e6a [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;
Zhou Songcaa541d2019-02-19 18:37:47 +080060static int sco_switch_enable;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053061static int int0_mi2s_switch_enable;
62static int int4_mi2s_switch_enable;
63static int pri_mi2s_switch_enable;
64static int sec_mi2s_switch_enable;
65static int tert_mi2s_switch_enable;
66static int quat_mi2s_switch_enable;
Rohit Kumara5077932017-09-10 22:05:05 +053067static int quin_mi2s_switch_enable;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053068static int fm_pcmrx_switch_enable;
69static int usb_switch_enable;
70static int lsm_port_index;
71static int slim0_rx_aanc_fb_port;
72static int msm_route_ec_ref_rx;
73static int msm_ec_ref_ch = 4;
Dhananjay Kumar242b5b02019-01-16 22:45:12 +053074static int msm_ec_ref_ch_downmixed = 4;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053075static int msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
76static int msm_ec_ref_sampling_rate = 48000;
77static uint32_t voc_session_id = ALL_SESSION_VSID;
78static int msm_route_ext_ec_ref;
79static bool is_custom_stereo_on;
80static bool is_ds2_on;
81static bool swap_ch;
Sudheer Papothic07b37a2018-05-04 05:56:47 +053082static int aanc_level;
Meng Wangadbca4f2018-10-29 14:30:13 +080083static int num_app_cfg_types;
Surendar Karkae7507512018-07-20 15:46:54 +053084static int msm_ec_ref_port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053085
86#define WEIGHT_0_DB 0x4000
87/* all the FEs which can support channel mixer */
88static struct msm_pcm_channel_mixer channel_mixer[MSM_FRONTEND_DAI_MM_SIZE];
Dhananjay Kumar807f7e92018-12-11 18:10:08 +053089
90/* all the FES which can support channel mixer for bidirection */
91static struct msm_pcm_channel_mixer
92 channel_mixer_v2[MSM_FRONTEND_DAI_MM_SIZE][2];
93
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053094/* input BE for each FE */
95static int channel_input[MSM_FRONTEND_DAI_MM_SIZE][ADM_MAX_CHANNELS];
96
97enum {
98 MADNONE,
99 MADAUDIO,
100 MADBEACON,
101 MADULTRASOUND,
102 MADSWAUDIO,
103};
104
105#define ADM_LSM_PORT_INDEX 9
106
107#define SLIMBUS_0_TX_TEXT "SLIMBUS_0_TX"
108#define SLIMBUS_1_TX_TEXT "SLIMBUS_1_TX"
109#define SLIMBUS_2_TX_TEXT "SLIMBUS_2_TX"
110#define SLIMBUS_3_TX_TEXT "SLIMBUS_3_TX"
111#define SLIMBUS_4_TX_TEXT "SLIMBUS_4_TX"
112#define SLIMBUS_5_TX_TEXT "SLIMBUS_5_TX"
113#define TERT_MI2S_TX_TEXT "TERT_MI2S_TX"
114#define QUAT_MI2S_TX_TEXT "QUAT_MI2S_TX"
115#define ADM_LSM_TX_TEXT "ADM_LSM_TX"
116#define INT3_MI2S_TX_TEXT "INT3_MI2S_TX"
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +0530117#define VA_CDC_DMA_TX_0_TEXT "VA_CDC_DMA_TX_0"
118#define VA_CDC_DMA_TX_1_TEXT "VA_CDC_DMA_TX_1"
Xiaoyu Yef439aed2019-01-02 16:40:01 -0800119#define VA_CDC_DMA_TX_2_TEXT "VA_CDC_DMA_TX_2"
Aditya Bavanarie9454c62018-08-23 23:45:20 +0530120#define TX_CDC_DMA_TX_3_TEXT "TX_CDC_DMA_TX_3"
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +0530121#define QUIN_TDM_TX_TEXT "QUIN_TDM_TX_0"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530122
123#define LSM_FUNCTION_TEXT "LSM Function"
124static const char * const lsm_port_text[] = {
125 "None",
126 SLIMBUS_0_TX_TEXT, SLIMBUS_1_TX_TEXT, SLIMBUS_2_TX_TEXT,
127 SLIMBUS_3_TX_TEXT, SLIMBUS_4_TX_TEXT, SLIMBUS_5_TX_TEXT,
128 TERT_MI2S_TX_TEXT, QUAT_MI2S_TX_TEXT, ADM_LSM_TX_TEXT,
Aditya Bavanarie9454c62018-08-23 23:45:20 +0530129 INT3_MI2S_TX_TEXT, VA_CDC_DMA_TX_0_TEXT, VA_CDC_DMA_TX_1_TEXT,
Xiaoyu Yef439aed2019-01-02 16:40:01 -0800130 VA_CDC_DMA_TX_2_TEXT, TX_CDC_DMA_TX_3_TEXT, QUIN_TDM_TX_TEXT
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530131};
132
133struct msm_pcm_route_bdai_pp_params {
134 u16 port_id; /* AFE port ID */
135 unsigned long pp_params_config;
136 bool mute_on;
137 int latency;
138};
139
140static struct msm_pcm_route_bdai_pp_params
141 msm_bedais_pp_params[MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX] = {
142 {HDMI_RX, 0, 0, 0},
143 {DISPLAY_PORT_RX, 0, 0, 0},
144};
145
146/*
147 * The be_dai_name_table is passed to HAL so that it can specify the
148 * BE ID for the BE it wants to enable based on the name. Thus there
149 * is a matching table and structure in HAL that need to be updated
150 * if any changes to these are made.
151 */
152struct msm_pcm_route_bdai_name {
153 unsigned int be_id;
154 char be_name[LPASS_BE_NAME_MAX_LENGTH];
155};
156static struct msm_pcm_route_bdai_name be_dai_name_table[MSM_BACKEND_DAI_MAX];
157
158static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
159 int fe_id);
160
Vikram Panduranga6e55ad82018-03-14 13:56:18 -0700161static void msm_routing_load_topology(size_t data_size, void *data);
162static void msm_routing_unload_topology(uint32_t topology_id);
163
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530164static int msm_routing_get_bit_width(unsigned int format)
165{
166 int bit_width;
167
168 switch (format) {
169 case SNDRV_PCM_FORMAT_S32_LE:
170 bit_width = 32;
171 break;
172 case SNDRV_PCM_FORMAT_S24_LE:
173 case SNDRV_PCM_FORMAT_S24_3LE:
174 bit_width = 24;
175 break;
176 case SNDRV_PCM_FORMAT_S16_LE:
177 default:
178 bit_width = 16;
179 }
180 return bit_width;
181}
182
183static bool msm_is_resample_needed(int input_sr, int output_sr)
184{
185 bool rc = false;
186
187 if (input_sr != output_sr)
188 rc = true;
189
190 pr_debug("perform resampling (%s) for copp rate (%d)afe rate (%d)",
191 (rc ? "oh yes" : "not really"),
192 input_sr, output_sr);
193
194 return rc;
195}
196
197static void msm_pcm_routing_cfg_pp(int port_id, int copp_idx, int topology,
198 int channels)
199{
200 int rc = 0;
201
202 switch (topology) {
203 case SRS_TRUMEDIA_TOPOLOGY_ID:
204 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
205 msm_dts_srs_tm_init(port_id, copp_idx);
206 break;
207 case DS2_ADM_COPP_TOPOLOGY_ID:
208 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY %d\n",
209 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
210 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
211 is_custom_stereo_on);
212 if (rc < 0)
213 pr_err("%s: DS2 topo_id 0x%x, port %d, CS %d rc %d\n",
214 __func__, topology, port_id,
215 is_custom_stereo_on, rc);
216 break;
217 case DOLBY_ADM_COPP_TOPOLOGY_ID:
218 if (is_ds2_on) {
219 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY\n", __func__);
220 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
221 is_custom_stereo_on);
222 if (rc < 0)
223 pr_err("%s:DS2 topo_id 0x%x, port %d, rc %d\n",
224 __func__, topology, port_id, rc);
225 } else {
226 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
227 rc = msm_dolby_dap_init(port_id, copp_idx, channels,
228 is_custom_stereo_on);
229 if (rc < 0)
230 pr_err("%s: DS1 topo_id 0x%x, port %d, rc %d\n",
231 __func__, topology, port_id, rc);
232 }
233 break;
234 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
235 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
236 rc = msm_qti_pp_asphere_init(port_id, copp_idx);
237 if (rc < 0)
238 pr_err("%s: topo_id 0x%x, port %d, copp %d, rc %d\n",
239 __func__, topology, port_id, copp_idx, rc);
240 break;
241 default:
242 /* custom topology specific feature param handlers */
243 break;
244 }
245}
246
247static void msm_pcm_routing_deinit_pp(int port_id, int topology)
248{
249 switch (topology) {
250 case SRS_TRUMEDIA_TOPOLOGY_ID:
251 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
252 msm_dts_srs_tm_deinit(port_id);
253 break;
254 case DS2_ADM_COPP_TOPOLOGY_ID:
255 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID %d\n",
256 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
257 msm_ds2_dap_deinit(port_id);
258 break;
259 case DOLBY_ADM_COPP_TOPOLOGY_ID:
260 if (is_ds2_on) {
261 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID\n", __func__);
262 msm_ds2_dap_deinit(port_id);
263 } else {
264 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
265 msm_dolby_dap_deinit(port_id);
266 }
267 break;
268 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
269 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
270 msm_qti_pp_asphere_deinit(port_id);
271 break;
272 default:
273 /* custom topology specific feature deinit handlers */
274 break;
275 }
276}
277
278static void msm_pcm_routng_cfg_matrix_map_pp(struct route_payload payload,
279 int path_type, int perf_mode)
280{
281 int itr = 0, rc = 0;
282
283 if ((path_type == ADM_PATH_PLAYBACK) &&
284 (perf_mode == LEGACY_PCM_MODE) &&
285 is_custom_stereo_on) {
286 for (itr = 0; itr < payload.num_copps; itr++) {
287 if ((payload.port_id[itr] != SLIMBUS_0_RX) &&
288 (payload.port_id[itr] != RT_PROXY_PORT_001_RX)) {
289 continue;
290 }
291
292 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd(
293 payload.port_id[itr],
294 payload.copp_idx[itr],
295 payload.session_id,
296 Q14_GAIN_ZERO_POINT_FIVE,
297 Q14_GAIN_ZERO_POINT_FIVE,
298 Q14_GAIN_ZERO_POINT_FIVE,
299 Q14_GAIN_ZERO_POINT_FIVE);
300 if (rc < 0)
301 pr_err("%s: err setting custom stereo\n",
302 __func__);
303 }
304 }
305}
306
307#define SLIMBUS_EXTPROC_RX AFE_PORT_INVALID
308struct msm_pcm_routing_bdai_data msm_bedais[MSM_BACKEND_DAI_MAX] = {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530309 { PRIMARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_PRI_I2S_RX},
310 { PRIMARY_I2S_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_PRI_I2S_TX},
311 { SLIMBUS_0_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_0_RX},
312 { SLIMBUS_0_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_0_TX},
313 { HDMI_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_HDMI},
314 { INT_BT_SCO_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_BT_SCO_RX},
315 { INT_BT_SCO_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_BT_SCO_TX},
316 { INT_FM_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_FM_RX},
317 { INT_FM_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_FM_TX},
318 { RT_PROXY_PORT_001_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530319 LPASS_BE_AFE_PCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530320 { RT_PROXY_PORT_001_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530321 LPASS_BE_AFE_PCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530322 { AFE_PORT_ID_PRIMARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530323 LPASS_BE_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530324 { AFE_PORT_ID_PRIMARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530325 LPASS_BE_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530326 { VOICE_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530327 LPASS_BE_VOICE_PLAYBACK_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530328 { VOICE2_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530329 LPASS_BE_VOICE2_PLAYBACK_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530330 { VOICE_RECORD_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530331 LPASS_BE_INCALL_RECORD_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530332 { VOICE_RECORD_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530333 LPASS_BE_INCALL_RECORD_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530334 { MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_MI2S_RX},
335 { MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_MI2S_TX},
336 { SECONDARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SEC_I2S_RX},
337 { SLIMBUS_1_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_1_RX},
338 { SLIMBUS_1_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_1_TX},
339 { SLIMBUS_2_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_2_RX},
340 { SLIMBUS_2_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_2_TX},
341 { SLIMBUS_3_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_3_RX},
342 { SLIMBUS_3_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_3_TX},
343 { SLIMBUS_4_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_4_RX},
344 { SLIMBUS_4_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_4_TX},
345 { SLIMBUS_5_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_5_RX},
346 { SLIMBUS_5_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_5_TX},
347 { SLIMBUS_6_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_6_RX},
348 { SLIMBUS_6_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_6_TX},
349 { SLIMBUS_7_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_7_RX},
350 { SLIMBUS_7_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_7_TX},
351 { SLIMBUS_8_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_8_RX},
352 { SLIMBUS_8_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_8_TX},
353 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_RX},
354 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_TX},
355 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_1_TX},
356 { AFE_PORT_ID_QUATERNARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530357 LPASS_BE_QUAT_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530358 { AFE_PORT_ID_QUATERNARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530359 LPASS_BE_QUAT_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530360 { AFE_PORT_ID_SECONDARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530361 LPASS_BE_SEC_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530362 { AFE_PORT_ID_SECONDARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530363 LPASS_BE_SEC_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530364 { AFE_PORT_ID_PRIMARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530365 LPASS_BE_PRI_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530366 { AFE_PORT_ID_PRIMARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530367 LPASS_BE_PRI_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530368 { AFE_PORT_ID_TERTIARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530369 LPASS_BE_TERT_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530370 { AFE_PORT_ID_TERTIARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530371 LPASS_BE_TERT_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530372 { AUDIO_PORT_ID_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530373 LPASS_BE_AUDIO_I2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530374 { AFE_PORT_ID_SECONDARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530375 LPASS_BE_SEC_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530376 { AFE_PORT_ID_SECONDARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530377 LPASS_BE_SEC_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530378 { AFE_PORT_ID_PRIMARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200379 LPASS_BE_PRI_SPDIF_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530380 { AFE_PORT_ID_SECONDARY_MI2S_RX_SD1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530381 LPASS_BE_SEC_MI2S_RX_SD1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530382 { AFE_PORT_ID_QUINARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530383 LPASS_BE_QUIN_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530384 { AFE_PORT_ID_QUINARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530385 LPASS_BE_QUIN_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530386 { AFE_PORT_ID_SENARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530387 LPASS_BE_SENARY_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530388 { AFE_PORT_ID_PRIMARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530389 LPASS_BE_PRI_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530390 { AFE_PORT_ID_PRIMARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530391 LPASS_BE_PRI_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530392 { AFE_PORT_ID_PRIMARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530393 LPASS_BE_PRI_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530394 { AFE_PORT_ID_PRIMARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530395 LPASS_BE_PRI_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530396 { AFE_PORT_ID_PRIMARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530397 LPASS_BE_PRI_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530398 { AFE_PORT_ID_PRIMARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530399 LPASS_BE_PRI_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530400 { AFE_PORT_ID_PRIMARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530401 LPASS_BE_PRI_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530402 { AFE_PORT_ID_PRIMARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530403 LPASS_BE_PRI_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530404 { AFE_PORT_ID_PRIMARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530405 LPASS_BE_PRI_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530406 { AFE_PORT_ID_PRIMARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530407 LPASS_BE_PRI_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530408 { AFE_PORT_ID_PRIMARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530409 LPASS_BE_PRI_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530410 { AFE_PORT_ID_PRIMARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530411 LPASS_BE_PRI_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530412 { AFE_PORT_ID_PRIMARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530413 LPASS_BE_PRI_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530414 { AFE_PORT_ID_PRIMARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530415 LPASS_BE_PRI_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530416 { AFE_PORT_ID_PRIMARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530417 LPASS_BE_PRI_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530418 { AFE_PORT_ID_PRIMARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530419 LPASS_BE_PRI_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530420 { AFE_PORT_ID_SECONDARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530421 LPASS_BE_SEC_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530422 { AFE_PORT_ID_SECONDARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530423 LPASS_BE_SEC_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530424 { AFE_PORT_ID_SECONDARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530425 LPASS_BE_SEC_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530426 { AFE_PORT_ID_SECONDARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530427 LPASS_BE_SEC_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530428 { AFE_PORT_ID_SECONDARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530429 LPASS_BE_SEC_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530430 { AFE_PORT_ID_SECONDARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530431 LPASS_BE_SEC_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530432 { AFE_PORT_ID_SECONDARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530433 LPASS_BE_SEC_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530434 { AFE_PORT_ID_SECONDARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530435 LPASS_BE_SEC_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530436 { AFE_PORT_ID_SECONDARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530437 LPASS_BE_SEC_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530438 { AFE_PORT_ID_SECONDARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530439 LPASS_BE_SEC_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530440 { AFE_PORT_ID_SECONDARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530441 LPASS_BE_SEC_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530442 { AFE_PORT_ID_SECONDARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530443 LPASS_BE_SEC_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530444 { AFE_PORT_ID_SECONDARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530445 LPASS_BE_SEC_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530446 { AFE_PORT_ID_SECONDARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530447 LPASS_BE_SEC_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530448 { AFE_PORT_ID_SECONDARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530449 LPASS_BE_SEC_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530450 { AFE_PORT_ID_SECONDARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530451 LPASS_BE_SEC_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530452 { AFE_PORT_ID_TERTIARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530453 LPASS_BE_TERT_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530454 { AFE_PORT_ID_TERTIARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530455 LPASS_BE_TERT_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530456 { AFE_PORT_ID_TERTIARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530457 LPASS_BE_TERT_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530458 { AFE_PORT_ID_TERTIARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530459 LPASS_BE_TERT_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530460 { AFE_PORT_ID_TERTIARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530461 LPASS_BE_TERT_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530462 { AFE_PORT_ID_TERTIARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530463 LPASS_BE_TERT_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530464 { AFE_PORT_ID_TERTIARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530465 LPASS_BE_TERT_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530466 { AFE_PORT_ID_TERTIARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530467 LPASS_BE_TERT_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530468 { AFE_PORT_ID_TERTIARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530469 LPASS_BE_TERT_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530470 { AFE_PORT_ID_TERTIARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530471 LPASS_BE_TERT_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530472 { AFE_PORT_ID_TERTIARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530473 LPASS_BE_TERT_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530474 { AFE_PORT_ID_TERTIARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530475 LPASS_BE_TERT_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530476 { AFE_PORT_ID_TERTIARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530477 LPASS_BE_TERT_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530478 { AFE_PORT_ID_TERTIARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530479 LPASS_BE_TERT_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530480 { AFE_PORT_ID_TERTIARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530481 LPASS_BE_TERT_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530482 { AFE_PORT_ID_TERTIARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530483 LPASS_BE_TERT_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530484 { AFE_PORT_ID_QUATERNARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530485 LPASS_BE_QUAT_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530486 { AFE_PORT_ID_QUATERNARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530487 LPASS_BE_QUAT_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530488 { AFE_PORT_ID_QUATERNARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530489 LPASS_BE_QUAT_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530490 { AFE_PORT_ID_QUATERNARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530491 LPASS_BE_QUAT_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530492 { AFE_PORT_ID_QUATERNARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530493 LPASS_BE_QUAT_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530494 { AFE_PORT_ID_QUATERNARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530495 LPASS_BE_QUAT_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530496 { AFE_PORT_ID_QUATERNARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530497 LPASS_BE_QUAT_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530498 { AFE_PORT_ID_QUATERNARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530499 LPASS_BE_QUAT_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530500 { AFE_PORT_ID_QUATERNARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530501 LPASS_BE_QUAT_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530502 { AFE_PORT_ID_QUATERNARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530503 LPASS_BE_QUAT_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530504 { AFE_PORT_ID_QUATERNARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530505 LPASS_BE_QUAT_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530506 { AFE_PORT_ID_QUATERNARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530507 LPASS_BE_QUAT_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530508 { AFE_PORT_ID_QUATERNARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530509 LPASS_BE_QUAT_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530510 { AFE_PORT_ID_QUATERNARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530511 LPASS_BE_QUAT_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530512 { AFE_PORT_ID_QUATERNARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530513 LPASS_BE_QUAT_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530514 { AFE_PORT_ID_QUATERNARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530515 LPASS_BE_QUAT_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530516 { AFE_PORT_ID_QUINARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530517 LPASS_BE_QUIN_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530518 { AFE_PORT_ID_QUINARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530519 LPASS_BE_QUIN_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530520 { AFE_PORT_ID_QUINARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530521 LPASS_BE_QUIN_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530522 { AFE_PORT_ID_QUINARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530523 LPASS_BE_QUIN_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530524 { AFE_PORT_ID_QUINARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530525 LPASS_BE_QUIN_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530526 { AFE_PORT_ID_QUINARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530527 LPASS_BE_QUIN_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530528 { AFE_PORT_ID_QUINARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530529 LPASS_BE_QUIN_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530530 { AFE_PORT_ID_QUINARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530531 LPASS_BE_QUIN_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530532 { AFE_PORT_ID_QUINARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530533 LPASS_BE_QUIN_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530534 { AFE_PORT_ID_QUINARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530535 LPASS_BE_QUIN_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530536 { AFE_PORT_ID_QUINARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530537 LPASS_BE_QUIN_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530538 { AFE_PORT_ID_QUINARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530539 LPASS_BE_QUIN_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530540 { AFE_PORT_ID_QUINARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530541 LPASS_BE_QUIN_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530542 { AFE_PORT_ID_QUINARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530543 LPASS_BE_QUIN_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530544 { AFE_PORT_ID_QUINARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530545 LPASS_BE_QUIN_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530546 { AFE_PORT_ID_QUINARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530547 LPASS_BE_QUIN_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530548 { INT_BT_A2DP_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530549 LPASS_BE_INT_BT_A2DP_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530550 { AFE_PORT_ID_USB_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530551 LPASS_BE_USB_AUDIO_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530552 { AFE_PORT_ID_USB_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530553 LPASS_BE_USB_AUDIO_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530554 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530555 LPASS_BE_DISPLAY_PORT},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530556 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0,
Karthikeyan Mani57550082018-05-03 18:43:58 -0700557 LPASS_BE_DISPLAY_PORT1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530558 { AFE_PORT_ID_TERTIARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530559 LPASS_BE_TERT_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530560 { AFE_PORT_ID_TERTIARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530561 LPASS_BE_TERT_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530562 { AFE_PORT_ID_QUATERNARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530563 LPASS_BE_QUAT_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530564 { AFE_PORT_ID_QUATERNARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530565 LPASS_BE_QUAT_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530566 { AFE_PORT_ID_QUINARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530567 LPASS_BE_QUIN_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530568 { AFE_PORT_ID_QUINARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530569 LPASS_BE_QUIN_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530570 { AFE_PORT_ID_INT0_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530571 LPASS_BE_INT0_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530572 { AFE_PORT_ID_INT0_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530573 LPASS_BE_INT0_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530574 { AFE_PORT_ID_INT1_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530575 LPASS_BE_INT1_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530576 { AFE_PORT_ID_INT1_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530577 LPASS_BE_INT1_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530578 { AFE_PORT_ID_INT2_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530579 LPASS_BE_INT2_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530580 { AFE_PORT_ID_INT2_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530581 LPASS_BE_INT2_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530582 { AFE_PORT_ID_INT3_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530583 LPASS_BE_INT3_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530584 { AFE_PORT_ID_INT3_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530585 LPASS_BE_INT3_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530586 { AFE_PORT_ID_INT4_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530587 LPASS_BE_INT4_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530588 { AFE_PORT_ID_INT4_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530589 LPASS_BE_INT4_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530590 { AFE_PORT_ID_INT5_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530591 LPASS_BE_INT5_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530592 { AFE_PORT_ID_INT5_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530593 LPASS_BE_INT5_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530594 { AFE_PORT_ID_INT6_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530595 LPASS_BE_INT6_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530596 { AFE_PORT_ID_INT6_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530597 LPASS_BE_INT6_MI2S_TX},
Dieter Luecking70668fc2018-09-28 15:03:01 +0200598 { AFE_PORT_ID_SENARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
599 LPASS_BE_SEN_AUXPCM_RX},
600 { AFE_PORT_ID_SENARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
601 LPASS_BE_SEN_AUXPCM_TX},
602 { AFE_PORT_ID_SENARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
603 LPASS_BE_SENARY_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530604 { AFE_PORT_ID_WSA_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530605 LPASS_BE_WSA_CDC_DMA_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530606 { AFE_PORT_ID_WSA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530607 LPASS_BE_WSA_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530608 { AFE_PORT_ID_WSA_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530609 LPASS_BE_WSA_CDC_DMA_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530610 { AFE_PORT_ID_WSA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530611 LPASS_BE_WSA_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530612 { AFE_PORT_ID_WSA_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530613 LPASS_BE_WSA_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530614 { AFE_PORT_ID_VA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530615 LPASS_BE_VA_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530616 { AFE_PORT_ID_VA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530617 LPASS_BE_VA_CDC_DMA_TX_1},
Xiaoyu Yef439aed2019-01-02 16:40:01 -0800618 { AFE_PORT_ID_VA_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
619 LPASS_BE_VA_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530620 { AFE_PORT_ID_RX_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530621 LPASS_BE_RX_CDC_DMA_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530622 { AFE_PORT_ID_TX_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530623 LPASS_BE_TX_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530624 { AFE_PORT_ID_RX_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530625 LPASS_BE_RX_CDC_DMA_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530626 { AFE_PORT_ID_TX_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530627 LPASS_BE_TX_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530628 { AFE_PORT_ID_RX_CODEC_DMA_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530629 LPASS_BE_RX_CDC_DMA_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530630 { AFE_PORT_ID_TX_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530631 LPASS_BE_TX_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530632 { AFE_PORT_ID_RX_CODEC_DMA_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530633 LPASS_BE_RX_CDC_DMA_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530634 { AFE_PORT_ID_TX_CODEC_DMA_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530635 LPASS_BE_TX_CDC_DMA_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530636 { AFE_PORT_ID_RX_CODEC_DMA_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530637 LPASS_BE_RX_CDC_DMA_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530638 { AFE_PORT_ID_TX_CODEC_DMA_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530639 LPASS_BE_TX_CDC_DMA_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530640 { AFE_PORT_ID_RX_CODEC_DMA_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530641 LPASS_BE_RX_CDC_DMA_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530642 { AFE_PORT_ID_TX_CODEC_DMA_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530643 LPASS_BE_TX_CDC_DMA_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530644 { AFE_PORT_ID_RX_CODEC_DMA_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530645 LPASS_BE_RX_CDC_DMA_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530646 { AFE_PORT_ID_RX_CODEC_DMA_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530647 LPASS_BE_RX_CDC_DMA_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530648 { AFE_PORT_ID_PRIMARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200649 LPASS_BE_PRI_SPDIF_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530650 { AFE_PORT_ID_SECONDARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200651 LPASS_BE_SEC_SPDIF_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530652 { AFE_PORT_ID_SECONDARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200653 LPASS_BE_SEC_SPDIF_TX},
Surendar Karka3ef3d812018-09-28 18:52:35 +0530654 { SLIMBUS_9_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_9_RX},
655 { SLIMBUS_9_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_9_TX},
Surendar Karkad47fda42018-05-20 19:21:10 +0530656 { AFE_LOOPBACK_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_AFE_LOOPBACK_TX},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530657};
658
659/* Track ASM playback & capture sessions of DAI
660 * Track LSM listen sessions
661 */
662static struct msm_pcm_routing_fdai_data
663 fe_dai_map[MSM_FRONTEND_DAI_MAX][2] = {
664 /* MULTIMEDIA1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530665 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
666 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530667 /* MULTIMEDIA2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530668 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
669 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530670 /* MULTIMEDIA3 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530671 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
672 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530673 /* MULTIMEDIA4 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530674 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
675 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530676 /* MULTIMEDIA5 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530677 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
678 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530679 /* MULTIMEDIA6 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530680 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
681 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530682 /* MULTIMEDIA7*/
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530683 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
684 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530685 /* MULTIMEDIA8 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530686 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
687 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530688 /* MULTIMEDIA9 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530689 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
690 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530691 /* MULTIMEDIA10 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530692 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
693 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530694 /* MULTIMEDIA11 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530695 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
696 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530697 /* MULTIMEDIA12 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530698 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
699 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530700 /* MULTIMEDIA13 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530701 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
702 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530703 /* MULTIMEDIA14 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530704 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
705 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530706 /* MULTIMEDIA15 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530707 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
708 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530709 /* MULTIMEDIA16 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530710 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
711 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530712 /* MULTIMEDIA17 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530713 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
714 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530715 /* MULTIMEDIA18 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530716 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
717 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530718 /* MULTIMEDIA19 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530719 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
720 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530721 /* MULTIMEDIA20 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530722 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
723 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Derek Chen07c6d1c2018-07-05 10:39:25 -0700724 /* MULTIMEDIA21 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530725 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
726 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Surendar Karkac1cde372018-08-14 18:56:24 +0530727 /* MULTIMEDIA26 */
728 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
729 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
730 /* MULTIMEDIA27 */
731 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
732 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530733 /* MULTIMEDIA28 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530734 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
735 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530736 /* MULTIMEDIA29 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530737 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
738 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530739 /* VOIP */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530740 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
741 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530742 /* AFE_RX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530743 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
744 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530745 /* AFE_TX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530746 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
747 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530748 /* VOICE_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530749 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
750 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530751 /* DTMF_RX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530752 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
753 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530754 /* QCHAT */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530755 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
756 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530757 /* VOLTE_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530758 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
759 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530760 /* LSM1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530761 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
762 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530763 /* LSM2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530764 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
765 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530766 /* LSM3 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530767 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
768 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530769 /* LSM4 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530770 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
771 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530772 /* LSM5 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530773 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
774 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530775 /* LSM6 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530776 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
777 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530778 /* LSM7 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530779 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
780 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530781 /* LSM8 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530782 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
783 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530784 /* VOICE2_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530785 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
786 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530787 /* VOICEMMODE1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530788 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
789 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530790 /* VOICEMMODE2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530791 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
792 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530793};
794
795static unsigned long session_copp_map[MSM_FRONTEND_DAI_MAX][2]
796 [MSM_BACKEND_DAI_MAX];
797static struct msm_pcm_routing_app_type_data app_type_cfg[MAX_APP_TYPES];
798static struct msm_pcm_routing_app_type_data lsm_app_type_cfg[MAX_APP_TYPES];
799static struct msm_pcm_stream_app_type_cfg
800 fe_dai_app_type_cfg[MSM_FRONTEND_DAI_MAX][2][MSM_BACKEND_DAI_MAX];
801
802static int last_be_id_configured[MSM_FRONTEND_DAI_MAX][MAX_SESSION_TYPES];
803
Florian Pfister522073c2018-09-26 15:39:15 +0200804/* The caller of this should acquire routing lock */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530805void msm_pcm_routing_get_bedai_info(int be_idx,
806 struct msm_pcm_routing_bdai_data *be_dai)
807{
808 if (be_idx >= 0 && be_idx < MSM_BACKEND_DAI_MAX)
809 memcpy(be_dai, &msm_bedais[be_idx],
810 sizeof(struct msm_pcm_routing_bdai_data));
811}
812
Florian Pfister522073c2018-09-26 15:39:15 +0200813/* The caller of this should acquire routing lock */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530814void msm_pcm_routing_get_fedai_info(int fe_idx, int sess_type,
815 struct msm_pcm_routing_fdai_data *fe_dai)
816{
817 if ((sess_type == SESSION_TYPE_TX) || (sess_type == SESSION_TYPE_RX))
818 memcpy(fe_dai, &fe_dai_map[fe_idx][sess_type],
819 sizeof(struct msm_pcm_routing_fdai_data));
820}
821
822void msm_pcm_routing_acquire_lock(void)
823{
824 mutex_lock(&routing_lock);
825}
826
827void msm_pcm_routing_release_lock(void)
828{
829 mutex_unlock(&routing_lock);
830}
831
832static int msm_pcm_routing_get_app_type_idx(int app_type)
833{
834 int idx;
835
836 pr_debug("%s: app_type: %d\n", __func__, app_type);
837 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
838 if (app_type_cfg[idx].app_type == app_type)
839 return idx;
840 }
841 pr_info("%s: App type not available, fallback to default\n", __func__);
842 return 0;
843}
844
845static int msm_pcm_routing_get_lsm_app_type_idx(int app_type)
846{
847 int idx;
848
849 pr_debug("%s: app_type: %d\n", __func__, app_type);
850 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
851 if (lsm_app_type_cfg[idx].app_type == app_type)
852 return idx;
853 }
854 pr_debug("%s: App type not available, fallback to default\n", __func__);
855 return 0;
856}
857
Surendar Karkae7507512018-07-20 15:46:54 +0530858static int get_port_id(int port_id)
859{
860 return (port_id == AFE_LOOPBACK_TX ? msm_ec_ref_port_id : port_id);
861}
862
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530863static bool is_mm_lsm_fe_id(int fe_id)
864{
865 bool rc = true;
866
867 if (fe_id > MSM_FRONTEND_DAI_MM_MAX_ID &&
868 ((fe_id < MSM_FRONTEND_DAI_LSM1) ||
869 (fe_id > MSM_FRONTEND_DAI_LSM8))) {
870 rc = false;
871 }
872 return rc;
873}
874
Bhalchandra Gajareeed46bd2018-05-15 16:48:07 -0700875/*
876 * msm_pcm_routing_send_chmix_cfg:
877 * send the channel mixer command to mix the input channels
878 * into output channels.
879 *
880 * @fe_id: front end id
881 * @ip_channel_cnt: input channel count
882 * @op_channel_cnt: output channel count
883 * @ch_wght_coeff: channel weight co-efficients for channel mixing
884 * @session_type: indicates session is of type TX or RX
885 * @stream_type: indicates either Audio or Listen stream type
886 */
887int msm_pcm_routing_send_chmix_cfg(int fe_id, int ip_channel_cnt,
888 int op_channel_cnt, int *ch_wght_coeff,
889 int session_type, int stream_type)
890{
891
892 int rc = 0, idx = 0;
893 int be_index = 0, port_id;
894 unsigned int session_id = 0;
895
896 pr_debug("%s:fe_id[%d] ip_ch[%d] op_ch[%d] sess_type [%d], stream_type[%d]",
897 __func__, fe_id, ip_channel_cnt, op_channel_cnt, session_type,
898 stream_type);
899 if (!is_mm_lsm_fe_id(fe_id)) {
900 /* bad ID assigned in machine driver */
901 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
902 return -EINVAL;
903 }
904
905 if (ch_wght_coeff == NULL) {
906 pr_err("%s: Null channel weightage coefficients passed\n",
907 __func__);
908 return -EINVAL;
909 }
910
911 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
912 port_id = msm_bedais[be_index].port_id;
913 if (!msm_bedais[be_index].active ||
914 !test_bit(fe_id, &msm_bedais[be_index].fe_sessions[0]))
915 continue;
916
917 session_id = fe_dai_map[fe_id][session_type].strm_id;
918
919 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
920 unsigned long copp =
921 session_copp_map[fe_id][session_type][be_index];
922 if (!test_bit(idx, &copp))
923 continue;
924 msm_qti_pp_send_chmix_cfg_cmd(port_id, idx,
925 session_id, ip_channel_cnt,
926 op_channel_cnt, ch_wght_coeff,
927 session_type, stream_type);
928 if (rc < 0)
929 pr_err("%s: err setting channel mix config\n",
930 __func__);
931 }
932 }
933
934 return 0;
935}
936EXPORT_SYMBOL(msm_pcm_routing_send_chmix_cfg);
937
Dhananjay Kumar807f7e92018-12-11 18:10:08 +0530938/**
939 * msm_pcm_routing_set_channel_mixer_cfg - cache channel mixer
940 * setting before use case start.
941 *
942 * @fe_id: frontend idx
943 * @type: stream direction type
944 * @params: parameters of channel mixer setting
945 *
946 * Return 0 for success
947 */
948int msm_pcm_routing_set_channel_mixer_cfg(
949 int fe_id, int type,
950 struct msm_pcm_channel_mixer *params)
951{
952 int i, j = 0;
953
954 channel_mixer_v2[fe_id][type].enable = params->enable;
955 channel_mixer_v2[fe_id][type].rule = params->rule;
956 channel_mixer_v2[fe_id][type].input_channel =
957 params->input_channel;
958 channel_mixer_v2[fe_id][type].output_channel =
959 params->output_channel;
960 channel_mixer_v2[fe_id][type].port_idx = params->port_idx;
961
962 for (i = 0; i < ADM_MAX_CHANNELS; i++)
963 channel_mixer_v2[fe_id][type].in_ch_map[i] =
964 params->in_ch_map[i];
965 for (i = 0; i < ADM_MAX_CHANNELS; i++)
966 channel_mixer_v2[fe_id][type].out_ch_map[i] =
967 params->out_ch_map[i];
968
969 for (i = 0; i < ADM_MAX_CHANNELS; i++)
970 for (j = 0; j < ADM_MAX_CHANNELS; j++)
971 channel_mixer_v2[fe_id][type].channel_weight[i][j] =
972 params->channel_weight[i][j];
973
974 channel_mixer_v2[fe_id][type].override_in_ch_map =
975 params->override_in_ch_map;
976 channel_mixer_v2[fe_id][type].override_out_ch_map =
977 params->override_out_ch_map;
978
979 return 0;
980}
981EXPORT_SYMBOL(msm_pcm_routing_set_channel_mixer_cfg);
982
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530983int msm_pcm_routing_reg_stream_app_type_cfg(
984 int fedai_id, int session_type, int be_id,
985 struct msm_pcm_stream_app_type_cfg *cfg_data)
986{
987 int ret = 0;
988
989 if (cfg_data == NULL) {
990 pr_err("%s: Received NULL pointer for cfg_data\n", __func__);
991 ret = -EINVAL;
992 goto done;
993 }
994
995 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
996 __func__, fedai_id, session_type, be_id,
997 cfg_data->app_type, cfg_data->acdb_dev_id,
998 cfg_data->sample_rate);
999
1000 if (!is_mm_lsm_fe_id(fedai_id)) {
1001 pr_err("%s: Invalid machine driver ID %d\n",
1002 __func__, fedai_id);
1003 ret = -EINVAL;
1004 goto done;
1005 }
1006 if (session_type != SESSION_TYPE_RX &&
1007 session_type != SESSION_TYPE_TX) {
1008 pr_err("%s: Invalid session type %d\n",
1009 __func__, session_type);
1010 ret = -EINVAL;
1011 goto done;
1012 }
1013 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1014 pr_err("%s: Received out of bounds be_id %d\n",
1015 __func__, be_id);
1016 ret = -EINVAL;
1017 goto done;
1018 }
1019
1020 fe_dai_app_type_cfg[fedai_id][session_type][be_id] = *cfg_data;
1021
1022 /*
1023 * Store the BE ID of the configuration information set as the latest so
1024 * the get mixer control knows what to return.
1025 */
1026 last_be_id_configured[fedai_id][session_type] = be_id;
1027
1028done:
1029 return ret;
1030}
1031EXPORT_SYMBOL(msm_pcm_routing_reg_stream_app_type_cfg);
1032
1033/**
1034 * msm_pcm_routing_get_stream_app_type_cfg
1035 *
1036 * Receives fedai_id, session_type, be_id, and populates app_type,
1037 * acdb_dev_id, & sample rate. Returns 0 on success. On failure returns
1038 * -EINVAL and does not alter passed values.
1039 *
1040 * fedai_id - Passed value, front end ID for which app type config is wanted
1041 * session_type - Passed value, session type for which app type config
1042 * is wanted
1043 * be_id - Returned value, back end device id the app type config data is for
1044 * cfg_data - Returned value, configuration data used by app type config
1045 */
1046int msm_pcm_routing_get_stream_app_type_cfg(
1047 int fedai_id, int session_type, int *bedai_id,
1048 struct msm_pcm_stream_app_type_cfg *cfg_data)
1049{
1050 int be_id;
1051 int ret = 0;
1052
1053 if (bedai_id == NULL) {
1054 pr_err("%s: Received NULL pointer for backend ID\n", __func__);
1055 ret = -EINVAL;
1056 goto done;
1057 } else if (cfg_data == NULL) {
1058 pr_err("%s: NULL pointer sent for cfg_data\n", __func__);
1059 ret = -EINVAL;
1060 goto done;
1061 } else if (!is_mm_lsm_fe_id(fedai_id)) {
1062 pr_err("%s: Invalid FE ID %d\n", __func__, fedai_id);
1063 ret = -EINVAL;
1064 goto done;
1065 } else if (session_type != SESSION_TYPE_RX &&
1066 session_type != SESSION_TYPE_TX) {
1067 pr_err("%s: Invalid session type %d\n", __func__, session_type);
1068 ret = -EINVAL;
1069 goto done;
1070 }
1071
1072 be_id = last_be_id_configured[fedai_id][session_type];
1073 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1074 pr_err("%s: Invalid BE ID %d\n", __func__, be_id);
1075 ret = -EINVAL;
1076 goto done;
1077 }
1078
1079 *bedai_id = be_id;
1080 *cfg_data = fe_dai_app_type_cfg[fedai_id][session_type][be_id];
1081 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
1082 __func__, fedai_id, session_type, *bedai_id,
1083 cfg_data->app_type, cfg_data->acdb_dev_id,
1084 cfg_data->sample_rate);
1085done:
1086 return ret;
1087}
1088EXPORT_SYMBOL(msm_pcm_routing_get_stream_app_type_cfg);
1089
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301090static struct cal_block_data *msm_routing_find_topology_by_path(int path,
1091 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301092{
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301093 struct list_head *ptr, *next;
1094 struct cal_block_data *cal_block = NULL;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301095 pr_debug("%s\n", __func__);
1096
1097 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301098 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301099
1100 cal_block = list_entry(ptr,
1101 struct cal_block_data, list);
1102
Vikram Panduranga770b8382017-09-27 12:17:36 -07001103 if (cal_utils_is_cal_stale(cal_block))
1104 continue;
1105
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301106 if (((struct audio_cal_info_adm_top *)cal_block
1107 ->cal_info)->path == path) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301108 return cal_block;
1109 }
1110 }
1111 pr_debug("%s: Can't find topology for path %d\n", __func__, path);
1112 return NULL;
1113}
1114
1115static struct cal_block_data *msm_routing_find_topology(int path,
1116 int app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301117 int acdb_id,
Haynes Mathew George4728d6b2018-06-08 17:26:24 -07001118 int cal_index,
1119 bool exact)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301120{
1121 struct list_head *ptr, *next;
1122 struct cal_block_data *cal_block = NULL;
1123 struct audio_cal_info_adm_top *cal_info;
1124
1125 pr_debug("%s\n", __func__);
1126
1127 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301128 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301129
1130 cal_block = list_entry(ptr,
1131 struct cal_block_data, list);
1132
Vikram Panduranga770b8382017-09-27 12:17:36 -07001133 if (cal_utils_is_cal_stale(cal_block))
1134 continue;
1135
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301136 cal_info = (struct audio_cal_info_adm_top *)
1137 cal_block->cal_info;
1138 if ((cal_info->path == path) &&
1139 (cal_info->app_type == app_type) &&
1140 (cal_info->acdb_id == acdb_id)) {
1141 return cal_block;
1142 }
1143 }
Haynes Mathew George4728d6b2018-06-08 17:26:24 -07001144 pr_debug("%s: Can't find topology for path %d, app %d, "
1145 "acdb_id %d %s\n", __func__, path, app_type, acdb_id,
1146 exact ? "fail" : "defaulting to search by path");
1147 return exact ? NULL : msm_routing_find_topology_by_path(path,
1148 cal_index);
1149}
1150
1151static int msm_routing_find_topology_on_index(int session_type, int app_type,
1152 int acdb_dev_id, int idx,
1153 bool exact)
1154{
1155 int topology = -EINVAL;
1156 struct cal_block_data *cal_block = NULL;
1157
1158 mutex_lock(&cal_data[idx]->lock);
1159 cal_block = msm_routing_find_topology(session_type, app_type,
1160 acdb_dev_id, idx, exact);
1161 if (cal_block != NULL) {
1162 topology = ((struct audio_cal_info_adm_top *)
1163 cal_block->cal_info)->topology;
1164 }
1165 mutex_unlock(&cal_data[idx]->lock);
1166 return topology;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301167}
1168
Vikram Panduranga770b8382017-09-27 12:17:36 -07001169/*
1170 * Retrieving cal_block will mark cal_block as stale.
1171 * Hence it cannot be reused or resent unless the flag
1172 * is reset.
1173 */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301174static int msm_routing_get_adm_topology(int fedai_id, int session_type,
1175 int be_id)
1176{
1177 int topology = NULL_COPP_TOPOLOGY;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301178 int app_type = 0, acdb_dev_id = 0;
1179
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301180 pr_debug("%s: fedai_id %d, session_type %d, be_id %d\n",
1181 __func__, fedai_id, session_type, be_id);
1182
1183 if (cal_data == NULL)
1184 goto done;
1185
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301186 app_type = fe_dai_app_type_cfg[fedai_id][session_type][be_id].app_type;
1187 acdb_dev_id =
1188 fe_dai_app_type_cfg[fedai_id][session_type][be_id].acdb_dev_id;
1189
Haynes Mathew George4728d6b2018-06-08 17:26:24 -07001190 pr_debug("%s: Check for exact LSM topology\n", __func__);
1191 topology = msm_routing_find_topology_on_index(session_type,
1192 app_type,
1193 acdb_dev_id,
1194 ADM_LSM_TOPOLOGY_CAL_TYPE_IDX,
1195 true /*exact*/);
1196 if (topology < 0) {
1197 pr_debug("%s: Check for compatible topology\n", __func__);
1198 topology = msm_routing_find_topology_on_index(session_type,
1199 app_type,
1200 acdb_dev_id,
1201 ADM_TOPOLOGY_CAL_TYPE_IDX,
1202 false /*exact*/);
1203 if (topology < 0)
1204 topology = NULL_COPP_TOPOLOGY;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301205 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301206done:
1207 pr_debug("%s: Using topology %d\n", __func__, topology);
1208 return topology;
1209}
1210
1211static uint8_t is_be_dai_extproc(int be_dai)
1212{
1213 if (be_dai == MSM_BACKEND_DAI_EXTPROC_RX ||
1214 be_dai == MSM_BACKEND_DAI_EXTPROC_TX ||
1215 be_dai == MSM_BACKEND_DAI_EXTPROC_EC_TX)
1216 return 1;
1217 else
1218 return 0;
1219}
1220
1221static void msm_pcm_routing_build_matrix(int fedai_id, int sess_type,
1222 int path_type, int perf_mode,
1223 uint32_t passthr_mode)
1224{
1225 int i, port_type, j, num_copps = 0;
1226 struct route_payload payload;
1227
1228 port_type = ((path_type == ADM_PATH_PLAYBACK ||
1229 path_type == ADM_PATH_COMPRESSED_RX) ?
1230 MSM_AFE_PORT_TYPE_RX : MSM_AFE_PORT_TYPE_TX);
1231
1232 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1233 if (!is_be_dai_extproc(i) &&
1234 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1235 (msm_bedais[i].active) &&
1236 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
Surendar Karkae7507512018-07-20 15:46:54 +05301237 int port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301238 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1239 unsigned long copp =
1240 session_copp_map[fedai_id][sess_type][i];
1241 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301242 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301243 payload.copp_idx[num_copps] = j;
1244 payload.app_type[num_copps] =
1245 fe_dai_app_type_cfg
1246 [fedai_id][sess_type][i]
1247 .app_type;
1248 payload.acdb_dev_id[num_copps] =
1249 fe_dai_app_type_cfg
1250 [fedai_id][sess_type][i]
1251 .acdb_dev_id;
1252 payload.sample_rate[num_copps] =
1253 fe_dai_app_type_cfg
1254 [fedai_id][sess_type][i]
1255 .sample_rate;
1256 num_copps++;
1257 }
1258 }
1259 }
1260 }
1261
1262 if (num_copps) {
1263 payload.num_copps = num_copps;
1264 payload.session_id = fe_dai_map[fedai_id][sess_type].strm_id;
1265 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1266 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1267 }
1268}
1269
1270void msm_pcm_routing_reg_psthr_stream(int fedai_id, int dspst_id,
1271 int stream_type)
1272{
1273 int i, session_type, path_type, port_type;
1274 u32 mode = 0;
1275
1276 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1277 /* bad ID assigned in machine driver */
1278 pr_err("%s: bad MM ID\n", __func__);
1279 return;
1280 }
1281
1282 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1283 session_type = SESSION_TYPE_RX;
1284 path_type = ADM_PATH_PLAYBACK;
1285 port_type = MSM_AFE_PORT_TYPE_RX;
1286 } else {
1287 session_type = SESSION_TYPE_TX;
1288 path_type = ADM_PATH_LIVE_REC;
1289 port_type = MSM_AFE_PORT_TYPE_TX;
1290 }
1291
1292 mutex_lock(&routing_lock);
1293
1294 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1295 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1296 if (!is_be_dai_extproc(i) &&
1297 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1298 (msm_bedais[i].active) &&
1299 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1300 mode = afe_get_port_type(msm_bedais[i].port_id);
1301 adm_connect_afe_port(mode, dspst_id,
1302 msm_bedais[i].port_id);
1303 break;
1304 }
1305 }
1306 mutex_unlock(&routing_lock);
1307}
1308
1309static bool route_check_fe_id_adm_support(int fe_id)
1310{
1311 bool rc = true;
1312
1313 if ((fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1314 (fe_id <= MSM_FRONTEND_DAI_LSM8)) {
1315 /* fe id is listen while port is set to afe */
1316 if (lsm_port_index != ADM_LSM_PORT_INDEX) {
1317 pr_debug("%s: fe_id %d, lsm mux slim port %d\n",
1318 __func__, fe_id, lsm_port_index);
1319 rc = false;
1320 }
1321 }
1322
1323 return rc;
1324}
1325
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001326/*
1327 * msm_pcm_routing_get_pp_ch_cnt:
1328 * Read the processed channel count
1329 *
1330 * @fe_id: Front end ID
1331 * @session_type: Inidicates RX or TX session type
1332 */
1333int msm_pcm_routing_get_pp_ch_cnt(int fe_id, int session_type)
1334{
1335 struct msm_pcm_stream_app_type_cfg cfg_data;
1336 int be_id = 0, app_type_idx = 0, app_type = 0;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +05301337 int ret = -EINVAL;
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001338
1339 memset(&cfg_data, 0, sizeof(cfg_data));
1340
1341 if (!is_mm_lsm_fe_id(fe_id)) {
1342 pr_err("%s: bad MM ID\n", __func__);
1343 return -EINVAL;
1344 }
1345
1346 ret = msm_pcm_routing_get_stream_app_type_cfg(fe_id, session_type,
1347 &be_id, &cfg_data);
1348 if (ret) {
Mangesh Kunchamwardaf02b02018-06-28 19:42:24 +05301349 pr_err("%s: cannot get stream app type cfg\n", __func__);
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001350 return ret;
1351 }
1352
1353 app_type = cfg_data.app_type;
1354 app_type_idx = msm_pcm_routing_get_lsm_app_type_idx(app_type);
1355 return lsm_app_type_cfg[app_type_idx].num_out_channels;
1356}
1357EXPORT_SYMBOL(msm_pcm_routing_get_pp_ch_cnt);
1358
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301359int msm_pcm_routing_reg_phy_compr_stream(int fe_id, int perf_mode,
1360 int dspst_id, int stream_type,
1361 uint32_t passthr_mode)
1362{
1363 int i, j, session_type, path_type, port_type, topology;
1364 int num_copps = 0;
1365 struct route_payload payload;
1366 u32 channels, sample_rate;
1367 u16 bit_width = 16;
1368 bool is_lsm;
1369
1370 pr_debug("%s:fe_id[%d] perf_mode[%d] id[%d] stream_type[%d] passt[%d]",
1371 __func__, fe_id, perf_mode, dspst_id,
1372 stream_type, passthr_mode);
1373 if (!is_mm_lsm_fe_id(fe_id)) {
1374 /* bad ID assigned in machine driver */
1375 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
1376 return -EINVAL;
1377 }
1378
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301379 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1380 session_type = SESSION_TYPE_RX;
1381 if (passthr_mode != LEGACY_PCM)
1382 path_type = ADM_PATH_COMPRESSED_RX;
1383 else
1384 path_type = ADM_PATH_PLAYBACK;
1385 port_type = MSM_AFE_PORT_TYPE_RX;
1386 } else if (stream_type == SNDRV_PCM_STREAM_CAPTURE) {
1387 session_type = SESSION_TYPE_TX;
Laxminath Kasam38070be2017-08-17 18:21:59 +05301388 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301389 path_type = ADM_PATH_COMPRESSED_TX;
1390 else
1391 path_type = ADM_PATH_LIVE_REC;
1392 port_type = MSM_AFE_PORT_TYPE_TX;
1393 } else {
1394 pr_err("%s: invalid stream type %d\n", __func__, stream_type);
1395 return -EINVAL;
1396 }
1397
1398 is_lsm = (fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1399 (fe_id <= MSM_FRONTEND_DAI_LSM8);
1400 mutex_lock(&routing_lock);
1401
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301402 fe_dai_map[fe_id][session_type].strm_id = dspst_id;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301403 fe_dai_map[fe_id][session_type].perf_mode = perf_mode;
1404 fe_dai_map[fe_id][session_type].passthr_mode = passthr_mode;
1405 if (!route_check_fe_id_adm_support(fe_id)) {
1406 /* ignore adm open if not supported for fe_id */
1407 pr_debug("%s: No ADM support for fe id %d\n", __func__, fe_id);
1408 mutex_unlock(&routing_lock);
1409 return 0;
1410 }
1411
1412 payload.num_copps = 0; /* only RX needs to use payload */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301413 /* re-enable EQ if active */
1414 msm_qti_pp_send_eq_values(fe_id);
1415 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301416 if (!is_be_dai_extproc(i) &&
1417 (afe_get_port_type(msm_bedais[i].port_id) ==
1418 port_type) &&
1419 (msm_bedais[i].active) &&
1420 (test_bit(fe_id, &msm_bedais[i].fe_sessions[0]))) {
1421 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301422 int port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301423
1424 /*
1425 * check if ADM needs to be configured with different
1426 * channel mapping than backend
1427 */
1428 if (!msm_bedais[i].adm_override_ch)
1429 channels = msm_bedais[i].channel;
1430 else
1431 channels = msm_bedais[i].adm_override_ch;
1432
1433 bit_width = msm_routing_get_bit_width(
1434 msm_bedais[i].format);
1435 app_type =
1436 fe_dai_app_type_cfg[fe_id][session_type][i].app_type;
1437 if (app_type && is_lsm) {
1438 app_type_idx =
1439 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1440 sample_rate =
1441 fe_dai_app_type_cfg[fe_id][session_type][i]
1442 .sample_rate;
1443 bit_width =
1444 lsm_app_type_cfg[app_type_idx].bit_width;
1445 } else if (app_type) {
1446 app_type_idx =
1447 msm_pcm_routing_get_app_type_idx(
1448 app_type);
1449 sample_rate =
1450 fe_dai_app_type_cfg[fe_id][session_type][i].sample_rate;
1451 bit_width =
1452 app_type_cfg[app_type_idx].bit_width;
1453 } else {
1454 sample_rate = msm_bedais[i].sample_rate;
1455 }
1456 acdb_dev_id =
1457 fe_dai_app_type_cfg[fe_id][session_type][i].acdb_dev_id;
1458 topology = msm_routing_get_adm_topology(fe_id,
1459 session_type,
1460 i);
1461 if ((passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
1462 || (passthr_mode ==
Ralf Herzc8701f72018-06-20 11:37:35 +02001463 COMPRESSED_PASSTHROUGH_GEN)
1464 || (passthr_mode ==
1465 COMPRESSED_PASSTHROUGH_IEC61937))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301466 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
1467 pr_debug("%s: Before adm open topology %d\n", __func__,
1468 topology);
1469
1470 copp_idx =
Surendar Karkae7507512018-07-20 15:46:54 +05301471 adm_open(port_id, path_type, sample_rate,
1472 channels, topology, perf_mode,
1473 bit_width, app_type, acdb_dev_id,
1474 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301475 if ((copp_idx < 0) ||
1476 (copp_idx >= MAX_COPPS_PER_PORT)) {
1477 pr_err("%s:adm open failed coppid:%d\n",
1478 __func__, copp_idx);
1479 mutex_unlock(&routing_lock);
1480 return -EINVAL;
1481 }
1482 pr_debug("%s: set idx bit of fe:%d, type: %d, be:%d\n",
1483 __func__, fe_id, session_type, i);
1484 set_bit(copp_idx,
1485 &session_copp_map[fe_id][session_type][i]);
1486
1487 if (msm_is_resample_needed(
1488 sample_rate,
1489 msm_bedais[i].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05301490 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301491 msm_bedais[i].sample_rate);
1492
1493 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1494 unsigned long copp =
1495 session_copp_map[fe_id][session_type][i];
1496 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301497 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301498 payload.copp_idx[num_copps] = j;
1499 payload.app_type[num_copps] =
1500 fe_dai_app_type_cfg
1501 [fe_id][session_type][i]
1502 .app_type;
1503 payload.acdb_dev_id[num_copps] =
1504 fe_dai_app_type_cfg
1505 [fe_id][session_type][i]
1506 .acdb_dev_id;
1507 payload.sample_rate[num_copps] =
1508 fe_dai_app_type_cfg
1509 [fe_id][session_type][i]
1510 .sample_rate;
1511 num_copps++;
1512 }
1513 }
1514 if (passthr_mode != COMPRESSED_PASSTHROUGH_DSD
Ralf Herzc8701f72018-06-20 11:37:35 +02001515 && passthr_mode != COMPRESSED_PASSTHROUGH_GEN
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301516 && passthr_mode != COMPRESSED_PASSTHROUGH_IEC61937)
Surendar Karkae7507512018-07-20 15:46:54 +05301517 msm_routing_send_device_pp_params(port_id,
1518 copp_idx, fe_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301519 }
1520 }
1521 if (num_copps) {
1522 payload.num_copps = num_copps;
1523 payload.session_id = fe_dai_map[fe_id][session_type].strm_id;
1524 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1525 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1526 }
1527 mutex_unlock(&routing_lock);
1528 return 0;
1529}
1530
1531static u32 msm_pcm_routing_get_voc_sessionid(u16 val)
1532{
1533 u32 session_id;
1534
1535 switch (val) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301536 case MSM_FRONTEND_DAI_QCHAT:
1537 session_id = voc_get_session_id(QCHAT_SESSION_NAME);
1538 break;
1539 case MSM_FRONTEND_DAI_VOIP:
1540 session_id = voc_get_session_id(VOIP_SESSION_NAME);
1541 break;
1542 case MSM_FRONTEND_DAI_VOICEMMODE1:
1543 session_id = voc_get_session_id(VOICEMMODE1_NAME);
1544 break;
1545 case MSM_FRONTEND_DAI_VOICEMMODE2:
1546 session_id = voc_get_session_id(VOICEMMODE2_NAME);
1547 break;
1548 default:
1549 session_id = 0;
1550 }
1551
1552 pr_debug("%s session_id 0x%x", __func__, session_id);
1553 return session_id;
1554}
1555
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301556static int msm_pcm_routing_channel_mixer_v2(int fe_id, bool perf_mode,
1557 int dspst_id, int stream_type)
1558{
1559 int copp_idx = 0;
1560 int sess_type = 0;
1561 int j = 0, be_id = 0;
1562 int ret = 0;
1563
1564 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1565 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1566 return 0;
1567 }
1568
1569 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1570 sess_type = SESSION_TYPE_RX;
1571 else
1572 sess_type = SESSION_TYPE_TX;
1573
1574 if (!(channel_mixer_v2[fe_id][sess_type].enable)) {
1575 pr_debug("%s: channel mixer not enabled for FE %d direction %d\n",
1576 __func__, fe_id, sess_type);
1577 return 0;
1578 }
1579
1580 be_id = channel_mixer_v2[fe_id][sess_type].port_idx - 1;
1581 channel_mixer_v2[fe_id][sess_type].input_channels[0] =
1582 channel_mixer_v2[fe_id][sess_type].input_channel;
1583
1584 pr_debug("%s sess type %d,fe_id %d,override in:%d out:%d,be active %d\n",
1585 __func__, sess_type, fe_id,
1586 channel_mixer_v2[fe_id][sess_type].override_in_ch_map,
1587 channel_mixer_v2[fe_id][sess_type].override_out_ch_map,
1588 msm_bedais[be_id].active);
1589
1590 if ((msm_bedais[be_id].active) &&
1591 test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0])) {
1592 unsigned long copp =
1593 session_copp_map[fe_id][sess_type][be_id];
1594 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1595 if (test_bit(j, &copp)) {
1596 copp_idx = j;
1597 break;
1598 }
1599 }
1600
1601 ret = adm_programable_channel_mixer(
1602 msm_bedais[be_id].port_id,
1603 copp_idx, dspst_id, sess_type,
1604 &channel_mixer_v2[fe_id][sess_type], 0);
1605 }
1606
1607 return ret;
1608}
1609
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301610static int msm_pcm_routing_channel_mixer(int fe_id, bool perf_mode,
1611 int dspst_id, int stream_type)
1612{
1613 int copp_idx = 0;
1614 int sess_type = 0;
1615 int i = 0, j = 0, be_id;
1616 int ret = 0;
1617
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301618 ret = msm_pcm_routing_channel_mixer_v2(fe_id, perf_mode,
1619 dspst_id, stream_type);
1620 if (ret) {
1621 pr_err("%s channel mixer v2 cmd set failure%d\n", __func__,
1622 fe_id);
1623 return ret;
1624 }
1625
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301626 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1627 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1628 return 0;
1629 }
1630
1631 if (!(channel_mixer[fe_id].enable)) {
1632 pr_debug("%s: channel mixer not enabled for FE %d\n",
1633 __func__, fe_id);
1634 return 0;
1635 }
1636
1637 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1638 sess_type = SESSION_TYPE_RX;
1639 else
1640 sess_type = SESSION_TYPE_TX;
1641
1642 for (i = 0; i < ADM_MAX_CHANNELS && channel_input[fe_id][i] > 0;
1643 ++i) {
1644 be_id = channel_input[fe_id][i] - 1;
1645 channel_mixer[fe_id].input_channels[i] =
1646 msm_bedais[be_id].channel;
1647
1648 if ((msm_bedais[be_id].active) &&
1649 test_bit(fe_id,
1650 &msm_bedais[be_id].fe_sessions[0])) {
1651 unsigned long copp =
1652 session_copp_map[fe_id][sess_type][be_id];
1653 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1654 if (test_bit(j, &copp)) {
1655 copp_idx = j;
1656 break;
1657 }
1658 }
1659
1660 pr_debug("%s: fe %d, be %d, channel %d, copp %d\n",
1661 __func__,
1662 fe_id, be_id, msm_bedais[be_id].channel,
1663 copp_idx);
1664 ret = adm_programable_channel_mixer(
Meng Wangf016d302019-01-21 10:35:53 +08001665 get_port_id(msm_bedais[be_id].port_id),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301666 copp_idx, dspst_id, sess_type,
1667 channel_mixer + fe_id, i);
1668 }
1669 }
1670
1671 return ret;
1672}
1673
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301674/**
1675 * msm_pcm_routing_set_channel_mixer_runtime - apply channel mixer
1676 * setting during runtime.
1677 *
1678 * @be_id: backend index
1679 * @session_id: session index
1680 * @session_type: session type
1681 * @params: parameters for channel mixer
1682 *
1683 * Retuen: 0 for success, else error
1684 */
1685int msm_pcm_routing_set_channel_mixer_runtime(int be_id, int session_id,
1686 int session_type,
1687 struct msm_pcm_channel_mixer *params)
1688{
1689 int rc = 0;
1690 int port_id, copp_idx = 0;
1691
1692 be_id--;
1693 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1694 pr_err("%s: invalid backend id %d\n", __func__,
1695 be_id);
1696 return -EINVAL;
1697 }
1698
1699 port_id = msm_bedais[be_id].port_id;
1700 copp_idx = adm_get_default_copp_idx(port_id);
1701 pr_debug("%s: port_id - %d, copp_idx %d session id - %d\n",
1702 __func__, port_id, copp_idx, session_id);
1703
1704 if ((params->input_channel < 0) ||
1705 (params->input_channel > ADM_MAX_CHANNELS)) {
1706 pr_err("%s: invalid input channel %d\n", __func__,
1707 params->input_channel);
1708 return -EINVAL;
1709 }
1710
1711 if ((params->output_channel < 0) ||
1712 (params->output_channel > ADM_MAX_CHANNELS)) {
1713 pr_err("%s: invalid output channel %d\n", __func__,
1714 params->output_channel);
1715 return -EINVAL;
1716 }
1717
1718 params->input_channels[0] = params->input_channel;
1719
1720 pr_debug("%s sess type %d,override in:%d out:%d,be active %d\n",
1721 __func__, session_type,
1722 params->override_in_ch_map,
1723 params->override_out_ch_map,
1724 msm_bedais[be_id].active);
1725
1726 rc = adm_programable_channel_mixer(port_id,
1727 copp_idx,
1728 session_id,
1729 session_type,
1730 params,
1731 0);
1732 if (rc) {
1733 pr_err("%s: send params failed rc=%d\n", __func__, rc);
1734 rc = -EINVAL;
1735 }
1736 return rc;
1737}
1738EXPORT_SYMBOL(msm_pcm_routing_set_channel_mixer_runtime);
1739
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301740int msm_pcm_routing_reg_phy_stream(int fedai_id, int perf_mode,
1741 int dspst_id, int stream_type)
1742{
1743 int i, j, session_type, path_type, port_type, topology, num_copps = 0;
1744 struct route_payload payload;
1745 u32 channels, sample_rate;
1746 uint16_t bits_per_sample = 16;
1747 uint32_t passthr_mode = LEGACY_PCM;
1748 int ret = 0;
1749
1750 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1751 /* bad ID assigned in machine driver */
1752 pr_err("%s: bad MM ID %d\n", __func__, fedai_id);
1753 return -EINVAL;
1754 }
1755
1756 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1757 session_type = SESSION_TYPE_RX;
1758 path_type = ADM_PATH_PLAYBACK;
1759 port_type = MSM_AFE_PORT_TYPE_RX;
1760 } else {
1761 session_type = SESSION_TYPE_TX;
1762 path_type = ADM_PATH_LIVE_REC;
1763 port_type = MSM_AFE_PORT_TYPE_TX;
1764 }
1765
1766 mutex_lock(&routing_lock);
1767
1768 payload.num_copps = 0; /* only RX needs to use payload */
1769 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1770 fe_dai_map[fedai_id][session_type].perf_mode = perf_mode;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301771 fe_dai_map[fedai_id][session_type].passthr_mode = LEGACY_PCM;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301772
1773 /* re-enable EQ if active */
1774 msm_qti_pp_send_eq_values(fedai_id);
1775 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1776 if (!is_be_dai_extproc(i) &&
1777 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1778 (msm_bedais[i].active) &&
1779 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1780 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301781 int port_id = get_port_id(msm_bedais[i].port_id);
1782
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301783 /*
1784 * check if ADM needs to be configured with different
1785 * channel mapping than backend
1786 */
1787 if (!msm_bedais[i].adm_override_ch)
1788 channels = msm_bedais[i].channel;
1789 else
1790 channels = msm_bedais[i].adm_override_ch;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301791
1792 bits_per_sample = msm_routing_get_bit_width(
1793 msm_bedais[i].format);
1794
1795 app_type =
1796 fe_dai_app_type_cfg[fedai_id][session_type][i].app_type;
1797 if (app_type) {
1798 app_type_idx =
1799 msm_pcm_routing_get_app_type_idx(app_type);
1800 sample_rate =
1801 fe_dai_app_type_cfg[fedai_id][session_type][i]
1802 .sample_rate;
1803 bits_per_sample =
1804 app_type_cfg[app_type_idx].bit_width;
1805 } else
1806 sample_rate = msm_bedais[i].sample_rate;
1807
1808 acdb_dev_id =
1809 fe_dai_app_type_cfg[fedai_id][session_type][i]
1810 .acdb_dev_id;
1811 topology = msm_routing_get_adm_topology(fedai_id,
1812 session_type,
1813 i);
Surendar Karkae7507512018-07-20 15:46:54 +05301814 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301815 sample_rate, channels, topology,
1816 perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +05301817 app_type, acdb_dev_id,
1818 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301819 if ((copp_idx < 0) ||
1820 (copp_idx >= MAX_COPPS_PER_PORT)) {
1821 pr_err("%s: adm open failed copp_idx:%d\n",
Vikram Panduranga770b8382017-09-27 12:17:36 -07001822 __func__, copp_idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301823 mutex_unlock(&routing_lock);
1824 return -EINVAL;
1825 }
1826 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1827 __func__, fedai_id, session_type, i);
1828 set_bit(copp_idx,
1829 &session_copp_map[fedai_id][session_type][i]);
1830
1831 if (msm_is_resample_needed(
1832 sample_rate,
1833 msm_bedais[i].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05301834 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301835 msm_bedais[i].sample_rate);
1836
1837 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1838 unsigned long copp =
1839 session_copp_map[fedai_id][session_type][i];
1840 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301841 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301842 payload.copp_idx[num_copps] = j;
1843 payload.app_type[num_copps] =
1844 fe_dai_app_type_cfg
1845 [fedai_id][session_type]
1846 [i].app_type;
1847 payload.acdb_dev_id[num_copps] =
1848 fe_dai_app_type_cfg
1849 [fedai_id][session_type]
1850 [i].acdb_dev_id;
1851 payload.sample_rate[num_copps] =
1852 fe_dai_app_type_cfg
1853 [fedai_id][session_type]
1854 [i].sample_rate;
1855 num_copps++;
1856 }
1857 }
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301858 if (perf_mode == LEGACY_PCM_MODE)
Surendar Karkae7507512018-07-20 15:46:54 +05301859 msm_pcm_routing_cfg_pp(port_id, copp_idx,
1860 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301861 }
1862 }
1863 if (num_copps) {
1864 payload.num_copps = num_copps;
1865 payload.session_id = fe_dai_map[fedai_id][session_type].strm_id;
1866 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1867 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1868 }
1869
1870 ret = msm_pcm_routing_channel_mixer(fedai_id, perf_mode,
1871 dspst_id, stream_type);
1872 mutex_unlock(&routing_lock);
1873 return ret;
1874}
1875
1876int msm_pcm_routing_reg_phy_stream_v2(int fedai_id, int perf_mode,
1877 int dspst_id, int stream_type,
1878 struct msm_pcm_routing_evt event_info)
1879{
1880 if (msm_pcm_routing_reg_phy_stream(fedai_id, perf_mode, dspst_id,
1881 stream_type)) {
1882 pr_err("%s: failed to reg phy stream\n", __func__);
1883 return -EINVAL;
1884 }
1885
1886 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1887 fe_dai_map[fedai_id][SESSION_TYPE_RX].event_info = event_info;
1888 else
1889 fe_dai_map[fedai_id][SESSION_TYPE_TX].event_info = event_info;
1890 return 0;
1891}
1892
1893void msm_pcm_routing_dereg_phy_stream(int fedai_id, int stream_type)
1894{
Surendar Karkae7507512018-07-20 15:46:54 +05301895 int i, port_type, session_type, path_type, topology, port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301896 struct msm_pcm_routing_fdai_data *fdai;
1897
1898 if (!is_mm_lsm_fe_id(fedai_id)) {
1899 /* bad ID assigned in machine driver */
1900 pr_err("%s: bad MM ID\n", __func__);
1901 return;
1902 }
1903
1904 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1905 port_type = MSM_AFE_PORT_TYPE_RX;
1906 session_type = SESSION_TYPE_RX;
1907 path_type = ADM_PATH_PLAYBACK;
1908 } else {
1909 port_type = MSM_AFE_PORT_TYPE_TX;
1910 session_type = SESSION_TYPE_TX;
1911 path_type = ADM_PATH_LIVE_REC;
1912 }
1913
1914 mutex_lock(&routing_lock);
1915 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1916 if (!is_be_dai_extproc(i) &&
1917 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1918 (msm_bedais[i].active) &&
1919 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1920 int idx;
1921 unsigned long copp =
1922 session_copp_map[fedai_id][session_type][i];
1923 fdai = &fe_dai_map[fedai_id][session_type];
1924
1925 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1926 if (test_bit(idx, &copp))
1927 break;
1928
1929 if (idx >= MAX_COPPS_PER_PORT || idx < 0) {
1930 pr_debug("%s: copp idx is invalid, exiting\n",
1931 __func__);
1932 continue;
1933 }
Surendar Karkae7507512018-07-20 15:46:54 +05301934 port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301935 topology = adm_get_topology_for_port_copp_idx(
Surendar Karkae7507512018-07-20 15:46:54 +05301936 port_id, idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07001937 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +05301938 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301939 pr_debug("%s:copp:%ld,idx bit fe:%d,type:%d,be:%d\n",
1940 __func__, copp, fedai_id, session_type, i);
1941 clear_bit(idx,
1942 &session_copp_map[fedai_id][session_type][i]);
1943 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1944 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1945 (fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301946 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05301947 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301948 }
1949 }
1950
1951 fe_dai_map[fedai_id][session_type].strm_id = INVALID_SESSION;
1952 fe_dai_map[fedai_id][session_type].be_srate = 0;
1953 mutex_unlock(&routing_lock);
1954}
1955
1956/* Check if FE/BE route is set */
1957static bool msm_pcm_routing_route_is_set(u16 be_id, u16 fe_id)
1958{
1959 bool rc = false;
1960
1961 if (!is_mm_lsm_fe_id(fe_id)) {
1962 /* recheck FE ID in the mixer control defined in this file */
1963 pr_err("%s: bad MM ID\n", __func__);
1964 return rc;
1965 }
1966
1967 if (test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0]))
1968 rc = true;
1969
1970 return rc;
1971}
1972
1973static void msm_pcm_routing_process_audio(u16 reg, u16 val, int set)
1974{
1975 int session_type, path_type, topology;
1976 u32 channels, sample_rate;
1977 uint16_t bits_per_sample = 16;
1978 struct msm_pcm_routing_fdai_data *fdai;
1979 uint32_t passthr_mode;
1980 bool is_lsm;
1981
1982 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
1983
1984 if (!is_mm_lsm_fe_id(val)) {
1985 /* recheck FE ID in the mixer control defined in this file */
1986 pr_err("%s: bad MM ID\n", __func__);
1987 return;
1988 }
1989
1990 if (!route_check_fe_id_adm_support(val)) {
1991 /* ignore adm open if not supported for fe_id */
1992 pr_debug("%s: No ADM support for fe id %d\n", __func__, val);
Meng Wang6d8ecdd2019-04-11 11:06:47 +08001993 if (set)
1994 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
1995 else
1996 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301997 return;
1998 }
1999
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05302000 session_type =
2001 (afe_get_port_type(msm_bedais[reg].port_id) == MSM_AFE_PORT_TYPE_RX) ?
2002 SESSION_TYPE_RX : SESSION_TYPE_TX;
2003 fdai = &fe_dai_map[val][session_type];
2004 passthr_mode = fdai->passthr_mode;
2005 if (session_type == SESSION_TYPE_RX) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302006 if (passthr_mode != LEGACY_PCM)
2007 path_type = ADM_PATH_COMPRESSED_RX;
2008 else
2009 path_type = ADM_PATH_PLAYBACK;
2010 } else {
Ralf Herzc8701f72018-06-20 11:37:35 +02002011 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302012 path_type = ADM_PATH_COMPRESSED_TX;
2013 else
2014 path_type = ADM_PATH_LIVE_REC;
2015 }
2016 is_lsm = (val >= MSM_FRONTEND_DAI_LSM1) &&
2017 (val <= MSM_FRONTEND_DAI_LSM8);
2018
2019 mutex_lock(&routing_lock);
2020 if (set) {
2021 if (!test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
2022 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
2023 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
2024 voc_start_playback(set, msm_bedais[reg].port_id);
2025
2026 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302027 if (msm_bedais[reg].active && fdai->strm_id !=
2028 INVALID_SESSION) {
2029 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05302030 int port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302031 /*
2032 * check if ADM needs to be configured with different
2033 * channel mapping than backend
2034 */
2035 if (!msm_bedais[reg].adm_override_ch)
2036 channels = msm_bedais[reg].channel;
2037 else
2038 channels = msm_bedais[reg].adm_override_ch;
2039 if (session_type == SESSION_TYPE_TX &&
2040 fdai->be_srate &&
2041 (fdai->be_srate != msm_bedais[reg].sample_rate)) {
2042 pr_debug("%s: flush strm %d diff BE rates\n",
2043 __func__, fdai->strm_id);
2044
2045 if (fdai->event_info.event_func)
2046 fdai->event_info.event_func(
2047 MSM_PCM_RT_EVT_BUF_RECFG,
2048 fdai->event_info.priv_data);
2049 fdai->be_srate = 0; /* might not need it */
2050 }
2051
2052 bits_per_sample = msm_routing_get_bit_width(
2053 msm_bedais[reg].format);
2054
2055 app_type =
2056 fe_dai_app_type_cfg[val][session_type][reg].app_type;
2057 if (app_type && is_lsm) {
2058 app_type_idx =
2059 msm_pcm_routing_get_lsm_app_type_idx(app_type);
2060 sample_rate =
2061 fe_dai_app_type_cfg[val][session_type][reg]
2062 .sample_rate;
2063 bits_per_sample =
2064 lsm_app_type_cfg[app_type_idx].bit_width;
2065 } else if (app_type) {
2066 app_type_idx =
2067 msm_pcm_routing_get_app_type_idx(app_type);
2068 sample_rate =
2069 fe_dai_app_type_cfg[val][session_type][reg]
2070 .sample_rate;
2071 bits_per_sample =
2072 app_type_cfg[app_type_idx].bit_width;
2073 } else
2074 sample_rate = msm_bedais[reg].sample_rate;
2075
2076 topology = msm_routing_get_adm_topology(val,
2077 session_type,
2078 reg);
2079 acdb_dev_id =
2080 fe_dai_app_type_cfg[val][session_type][reg].acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05302081 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302082 sample_rate, channels, topology,
2083 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +05302084 app_type, acdb_dev_id,
2085 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302086 if ((copp_idx < 0) ||
2087 (copp_idx >= MAX_COPPS_PER_PORT)) {
2088 pr_err("%s: adm open failed\n", __func__);
2089 mutex_unlock(&routing_lock);
2090 return;
2091 }
2092 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
2093 __func__, val, session_type, reg);
2094 set_bit(copp_idx,
2095 &session_copp_map[val][session_type][reg]);
2096
2097 if (msm_is_resample_needed(
2098 sample_rate,
2099 msm_bedais[reg].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05302100 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302101 msm_bedais[reg].sample_rate);
2102
2103 if (session_type == SESSION_TYPE_RX &&
2104 fdai->event_info.event_func)
2105 fdai->event_info.event_func(
2106 MSM_PCM_RT_EVT_DEVSWITCH,
2107 fdai->event_info.priv_data);
2108
2109 msm_pcm_routing_build_matrix(val, session_type,
2110 path_type,
2111 fdai->perf_mode,
2112 passthr_mode);
2113 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
2114 (passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05302115 msm_pcm_routing_cfg_pp(port_id, copp_idx,
2116 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302117 }
2118 } else {
2119 if (test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
2120 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
2121 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
2122 voc_start_playback(set, msm_bedais[reg].port_id);
2123 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302124 if (msm_bedais[reg].active && fdai->strm_id !=
2125 INVALID_SESSION) {
2126 int idx;
2127 int port_id;
2128 unsigned long copp =
2129 session_copp_map[val][session_type][reg];
2130 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
2131 if (test_bit(idx, &copp))
2132 break;
2133
Vignesh Kulothungane59d3152018-10-10 14:19:59 -07002134 if (idx >= MAX_COPPS_PER_PORT) {
2135 pr_debug("%s: copp idx is invalid, exiting\n",
2136 __func__);
2137 mutex_unlock(&routing_lock);
2138 return;
2139 }
Surendar Karkae7507512018-07-20 15:46:54 +05302140 port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302141 topology = adm_get_topology_for_port_copp_idx(port_id,
2142 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07002143 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +05302144 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302145 pr_debug("%s: copp: %ld, reset idx bit fe:%d, type: %d, be:%d topology=0x%x\n",
2146 __func__, copp, val, session_type, reg,
2147 topology);
2148 clear_bit(idx,
2149 &session_copp_map[val][session_type][reg]);
2150 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
2151 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
2152 (fdai->perf_mode == LEGACY_PCM_MODE) &&
2153 (passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05302154 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302155 msm_pcm_routing_build_matrix(val, session_type,
2156 path_type,
2157 fdai->perf_mode,
2158 passthr_mode);
2159 }
2160 }
2161 if ((msm_bedais[reg].port_id == VOICE_RECORD_RX)
2162 || (msm_bedais[reg].port_id == VOICE_RECORD_TX))
2163 voc_start_record(msm_bedais[reg].port_id, set, voc_session_id);
2164
2165 mutex_unlock(&routing_lock);
2166}
2167
2168static int msm_routing_get_audio_mixer(struct snd_kcontrol *kcontrol,
2169 struct snd_ctl_elem_value *ucontrol)
2170{
2171 struct soc_mixer_control *mc =
2172 (struct soc_mixer_control *)kcontrol->private_value;
2173
Meng Wang05d5e9a2018-03-28 16:45:03 +08002174 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302175 ucontrol->value.integer.value[0] = 1;
2176 else
2177 ucontrol->value.integer.value[0] = 0;
2178
Meng Wang05d5e9a2018-03-28 16:45:03 +08002179 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302180 ucontrol->value.integer.value[0]);
2181
2182 return 0;
2183}
2184
2185static int msm_routing_put_audio_mixer(struct snd_kcontrol *kcontrol,
2186 struct snd_ctl_elem_value *ucontrol)
2187{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302188 struct snd_soc_dapm_widget *widget =
2189 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302190 struct soc_mixer_control *mc =
2191 (struct soc_mixer_control *)kcontrol->private_value;
2192 struct snd_soc_dapm_update *update = NULL;
2193
2194 if (ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08002195 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false) {
2196 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302197 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2198 update);
2199 } else if (!ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08002200 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true) {
2201 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302202 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2203 update);
2204 }
2205
2206 return 1;
2207}
2208
2209static int msm_routing_get_listen_mixer(struct snd_kcontrol *kcontrol,
2210 struct snd_ctl_elem_value *ucontrol)
2211{
2212 struct soc_mixer_control *mc =
2213 (struct soc_mixer_control *)kcontrol->private_value;
2214
Meng Wang05d5e9a2018-03-28 16:45:03 +08002215 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302216 ucontrol->value.integer.value[0] = 1;
2217 else
2218 ucontrol->value.integer.value[0] = 0;
2219
Meng Wang05d5e9a2018-03-28 16:45:03 +08002220 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302221 ucontrol->value.integer.value[0]);
2222
2223 return 0;
2224}
2225
2226static int msm_routing_put_listen_mixer(struct snd_kcontrol *kcontrol,
2227 struct snd_ctl_elem_value *ucontrol)
2228{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302229 struct snd_soc_dapm_widget *widget =
2230 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302231 struct soc_mixer_control *mc =
2232 (struct soc_mixer_control *)kcontrol->private_value;
2233 struct snd_soc_dapm_update *update = NULL;
2234
Meng Wang05d5e9a2018-03-28 16:45:03 +08002235 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302236 ucontrol->value.integer.value[0]);
2237
2238 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) == false)
2240 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302241 snd_soc_dapm_mixer_update_power(widget->dapm,
2242 kcontrol, 1, update);
2243 } else if (!ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002244 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true)
2245 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302246 snd_soc_dapm_mixer_update_power(widget->dapm,
2247 kcontrol, 0, update);
2248 }
2249
2250 return 1;
2251}
2252
2253static void msm_pcm_routing_process_voice(u16 reg, u16 val, int set)
2254{
2255 u32 session_id = 0;
2256 u16 path_type;
2257 struct media_format_info voc_be_media_format;
2258
2259 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
2260
2261 session_id = msm_pcm_routing_get_voc_sessionid(val);
2262
2263 pr_debug("%s: FE DAI 0x%x session_id 0x%x\n",
2264 __func__, val, session_id);
2265
2266 mutex_lock(&routing_lock);
2267
2268 if (set)
2269 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2270 else
2271 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
2272
2273 if (val == MSM_FRONTEND_DAI_DTMF_RX &&
2274 afe_get_port_type(msm_bedais[reg].port_id) ==
2275 MSM_AFE_PORT_TYPE_RX) {
2276 pr_debug("%s(): set=%d port id=0x%x for dtmf generation\n",
2277 __func__, set, msm_bedais[reg].port_id);
2278 afe_set_dtmf_gen_rx_portid(msm_bedais[reg].port_id, set);
2279 }
2280
2281 if (afe_get_port_type(msm_bedais[reg].port_id) ==
2282 MSM_AFE_PORT_TYPE_RX)
2283 path_type = RX_PATH;
2284 else
2285 path_type = TX_PATH;
2286
2287 if (set) {
2288 if (msm_bedais[reg].active) {
2289 voc_set_route_flag(session_id, path_type, 1);
2290
2291 memset(&voc_be_media_format, 0,
2292 sizeof(struct media_format_info));
2293
2294 voc_be_media_format.port_id = msm_bedais[reg].port_id;
2295 voc_be_media_format.num_channels =
2296 msm_bedais[reg].channel;
2297 voc_be_media_format.sample_rate =
2298 msm_bedais[reg].sample_rate;
2299 voc_be_media_format.bits_per_sample =
2300 msm_bedais[reg].format;
2301 /* Defaulting this to 1 for voice call usecases */
2302 voc_be_media_format.channel_mapping[0] = 1;
2303
2304 voc_set_device_config(session_id, path_type,
2305 &voc_be_media_format);
2306
2307 if (voc_get_route_flag(session_id, TX_PATH) &&
2308 voc_get_route_flag(session_id, RX_PATH))
2309 voc_enable_device(session_id);
2310 } else {
2311 pr_debug("%s BE is not active\n", __func__);
2312 }
2313 } else {
2314 voc_set_route_flag(session_id, path_type, 0);
2315 voc_disable_device(session_id);
2316 }
2317
2318 mutex_unlock(&routing_lock);
2319
2320}
2321
2322static int msm_routing_get_voice_mixer(struct snd_kcontrol *kcontrol,
2323 struct snd_ctl_elem_value *ucontrol)
2324{
2325 struct soc_mixer_control *mc =
2326 (struct soc_mixer_control *)kcontrol->private_value;
2327
2328 mutex_lock(&routing_lock);
2329
Meng Wang05d5e9a2018-03-28 16:45:03 +08002330 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302331 ucontrol->value.integer.value[0] = 1;
2332 else
2333 ucontrol->value.integer.value[0] = 0;
2334
2335 mutex_unlock(&routing_lock);
2336
Meng Wang05d5e9a2018-03-28 16:45:03 +08002337 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302338 ucontrol->value.integer.value[0]);
2339
2340 return 0;
2341}
2342
2343static int msm_routing_put_voice_mixer(struct snd_kcontrol *kcontrol,
2344 struct snd_ctl_elem_value *ucontrol)
2345{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302346 struct snd_soc_dapm_widget *widget =
2347 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302348 struct soc_mixer_control *mc =
2349 (struct soc_mixer_control *)kcontrol->private_value;
2350 struct snd_soc_dapm_update *update = NULL;
2351
2352 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002353 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302354 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2355 update);
2356 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002357 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302358 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2359 update);
2360 }
2361
2362 return 1;
2363}
2364
2365static int msm_routing_get_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2366 struct snd_ctl_elem_value *ucontrol)
2367{
2368 struct soc_mixer_control *mc =
2369 (struct soc_mixer_control *)kcontrol->private_value;
2370
2371 mutex_lock(&routing_lock);
2372
Meng Wang05d5e9a2018-03-28 16:45:03 +08002373 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302374 ucontrol->value.integer.value[0] = 1;
2375 else
2376 ucontrol->value.integer.value[0] = 0;
2377
2378 mutex_unlock(&routing_lock);
2379
Meng Wang05d5e9a2018-03-28 16:45:03 +08002380 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302381 ucontrol->value.integer.value[0]);
2382
2383 return 0;
2384}
2385
2386static int msm_routing_put_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2387 struct snd_ctl_elem_value *ucontrol)
2388{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302389 struct snd_soc_dapm_widget *widget =
2390 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302391 struct soc_mixer_control *mc =
2392 (struct soc_mixer_control *)kcontrol->private_value;
2393 struct snd_soc_dapm_update *update = NULL;
2394
2395 if (ucontrol->value.integer.value[0]) {
2396 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002397 set_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302398 mutex_unlock(&routing_lock);
2399
2400 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2401 update);
2402 } else {
2403 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002404 clear_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302405 mutex_unlock(&routing_lock);
2406
2407 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2408 update);
2409 }
2410
Meng Wang05d5e9a2018-03-28 16:45:03 +08002411 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302412 ucontrol->value.integer.value[0]);
2413
2414 return 1;
2415}
2416
2417/*
2418 * Return the mapping between port ID and backend ID to enable the AFE callback
2419 * to determine the acdb_dev_id from the port id
2420 */
2421int msm_pcm_get_be_id_from_port_id(int port_id)
2422{
2423 int i;
2424 int be_id = -EINVAL;
2425
2426 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
2427 if (msm_bedais[i].port_id == port_id) {
2428 be_id = i;
2429 break;
2430 }
2431 }
2432
2433 return be_id;
2434}
2435
2436/*
2437 * Return the registered dev_acdb_id given a port ID to enable identifying the
2438 * correct AFE calibration information by comparing the header information.
2439 */
2440static int msm_pcm_get_dev_acdb_id_by_port_id(int port_id)
2441{
2442 int acdb_id = -EINVAL;
2443 int i = 0;
2444 int session;
2445 int port_type = afe_get_port_type(port_id);
2446 int be_id = msm_pcm_get_be_id_from_port_id(port_id);
2447
2448 pr_debug("%s:port_id %d be_id %d, port_type 0x%x\n",
2449 __func__, port_id, be_id, port_type);
2450
2451 if (port_type == MSM_AFE_PORT_TYPE_TX) {
2452 session = SESSION_TYPE_TX;
2453 } else if (port_type == MSM_AFE_PORT_TYPE_RX) {
2454 session = SESSION_TYPE_RX;
2455 } else {
2456 pr_err("%s: Invalid port type %d\n", __func__, port_type);
2457 acdb_id = -EINVAL;
2458 goto exit;
2459 }
2460
2461 if (be_id < 0) {
2462 pr_err("%s: Error getting backend id %d\n", __func__, be_id);
2463 goto exit;
2464 }
2465
2466 mutex_lock(&routing_lock);
2467 i = find_first_bit(&msm_bedais[be_id].fe_sessions[0],
2468 MSM_FRONTEND_DAI_MAX);
2469 if (i < MSM_FRONTEND_DAI_MAX)
2470 acdb_id = fe_dai_app_type_cfg[i][session][be_id].acdb_dev_id;
2471
2472 pr_debug("%s: FE[%d] session[%d] BE[%d] acdb_id(%d)\n",
2473 __func__, i, session, be_id, acdb_id);
2474 mutex_unlock(&routing_lock);
2475exit:
2476 return acdb_id;
2477}
2478
2479static int msm_routing_get_switch_mixer(struct snd_kcontrol *kcontrol,
2480 struct snd_ctl_elem_value *ucontrol)
2481{
2482 ucontrol->value.integer.value[0] = fm_switch_enable;
2483 pr_debug("%s: FM Switch enable %ld\n", __func__,
2484 ucontrol->value.integer.value[0]);
2485 return 0;
2486}
2487
2488static int msm_routing_put_switch_mixer(struct snd_kcontrol *kcontrol,
2489 struct snd_ctl_elem_value *ucontrol)
2490{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302491 struct snd_soc_dapm_widget *widget =
2492 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302493 struct snd_soc_dapm_update *update = NULL;
2494
2495 pr_debug("%s: FM Switch enable %ld\n", __func__,
2496 ucontrol->value.integer.value[0]);
2497 if (ucontrol->value.integer.value[0])
2498 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2499 update);
2500 else
2501 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2502 update);
2503 fm_switch_enable = ucontrol->value.integer.value[0];
2504 return 1;
2505}
2506
2507static int msm_routing_get_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2508 struct snd_ctl_elem_value *ucontrol)
2509{
2510 ucontrol->value.integer.value[0] = hfp_switch_enable;
2511 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2512 ucontrol->value.integer.value[0]);
2513 return 0;
2514}
2515
2516static int msm_routing_put_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2517 struct snd_ctl_elem_value *ucontrol)
2518{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302519 struct snd_soc_dapm_widget *widget =
2520 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302521 struct snd_soc_dapm_update *update = NULL;
2522
2523 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2524 ucontrol->value.integer.value[0]);
2525 if (ucontrol->value.integer.value[0])
2526 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2527 1, update);
2528 else
2529 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2530 0, update);
2531 hfp_switch_enable = ucontrol->value.integer.value[0];
2532 return 1;
2533}
2534
Aniket Kumar Latac0c31472018-02-22 14:46:09 -08002535static int msm_routing_a2dp_switch_mixer_get(struct snd_kcontrol *kcontrol,
2536 struct snd_ctl_elem_value *ucontrol)
2537{
2538 ucontrol->value.integer.value[0] = a2dp_switch_enable;
2539 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2540 ucontrol->value.integer.value[0]);
2541 return 0;
2542}
2543
2544static int msm_routing_a2dp_switch_mixer_put(struct snd_kcontrol *kcontrol,
2545 struct snd_ctl_elem_value *ucontrol)
2546{
2547 struct snd_soc_dapm_widget *widget =
2548 snd_soc_dapm_kcontrol_widget(kcontrol);
2549 struct snd_soc_dapm_update *update = NULL;
2550
2551 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2552 ucontrol->value.integer.value[0]);
2553 a2dp_switch_enable = ucontrol->value.integer.value[0];
2554 if (a2dp_switch_enable)
2555 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2556 1, update);
2557 else
2558 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2559 0, update);
2560 return 1;
2561}
2562
Zhou Songcaa541d2019-02-19 18:37:47 +08002563static int msm_routing_sco_switch_mixer_get(struct snd_kcontrol *kcontrol,
2564 struct snd_ctl_elem_value *ucontrol)
2565{
2566 ucontrol->value.integer.value[0] = sco_switch_enable;
2567 pr_debug("%s: SCO Switch enable %ld\n", __func__,
2568 ucontrol->value.integer.value[0]);
2569 return 0;
2570}
2571
2572static int msm_routing_sco_switch_mixer_put(struct snd_kcontrol *kcontrol,
2573 struct snd_ctl_elem_value *ucontrol)
2574{
2575 struct snd_soc_dapm_widget *widget =
2576 snd_soc_dapm_kcontrol_widget(kcontrol);
2577 struct snd_soc_dapm_update *update = NULL;
2578
2579 pr_debug("%s: SCO Switch enable %ld\n", __func__,
2580 ucontrol->value.integer.value[0]);
2581 sco_switch_enable = ucontrol->value.integer.value[0];
2582 if (sco_switch_enable)
2583 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2584 1, update);
2585 else
2586 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2587 0, update);
2588 return 1;
2589}
2590
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302591static int msm_routing_get_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2592 struct snd_ctl_elem_value *ucontrol)
2593{
2594 ucontrol->value.integer.value[0] = int0_mi2s_switch_enable;
2595 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2596 ucontrol->value.integer.value[0]);
2597 return 0;
2598}
2599
2600static int msm_routing_put_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2601 struct snd_ctl_elem_value *ucontrol)
2602{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302603 struct snd_soc_dapm_widget *widget =
2604 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302605 struct snd_soc_dapm_update *update = NULL;
2606
2607 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2608 ucontrol->value.integer.value[0]);
2609 if (ucontrol->value.integer.value[0])
2610 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2611 update);
2612 else
2613 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2614 update);
2615 int0_mi2s_switch_enable = ucontrol->value.integer.value[0];
2616 return 1;
2617}
2618
2619static int msm_routing_get_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2620 struct snd_ctl_elem_value *ucontrol)
2621{
2622 ucontrol->value.integer.value[0] = int4_mi2s_switch_enable;
2623 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2624 ucontrol->value.integer.value[0]);
2625 return 0;
2626}
2627
2628static int msm_routing_put_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2629 struct snd_ctl_elem_value *ucontrol)
2630{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302631 struct snd_soc_dapm_widget *widget =
2632 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302633 struct snd_soc_dapm_update *update = NULL;
2634
2635 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2636 ucontrol->value.integer.value[0]);
2637 if (ucontrol->value.integer.value[0])
2638 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2639 update);
2640 else
2641 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2642 update);
2643 int4_mi2s_switch_enable = ucontrol->value.integer.value[0];
2644 return 1;
2645}
2646
2647static int msm_routing_get_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2648 struct snd_ctl_elem_value *ucontrol)
2649{
2650 ucontrol->value.integer.value[0] = usb_switch_enable;
2651 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2652 ucontrol->value.integer.value[0]);
2653 return 0;
2654}
2655
2656static int msm_routing_put_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2657 struct snd_ctl_elem_value *ucontrol)
2658{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302659 struct snd_soc_dapm_widget *widget =
2660 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302661 struct snd_soc_dapm_update *update = NULL;
2662
2663 pr_debug("%s: USB Switch enable %ld\n", __func__,
2664 ucontrol->value.integer.value[0]);
2665 if (ucontrol->value.integer.value[0])
2666 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2667 1, update);
2668 else
2669 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2670 0, update);
2671 usb_switch_enable = ucontrol->value.integer.value[0];
2672 return 1;
2673}
2674
2675static int msm_routing_get_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2676 struct snd_ctl_elem_value *ucontrol)
2677{
2678 ucontrol->value.integer.value[0] = pri_mi2s_switch_enable;
2679 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2680 ucontrol->value.integer.value[0]);
2681 return 0;
2682}
2683
2684static int msm_routing_put_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2685 struct snd_ctl_elem_value *ucontrol)
2686{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302687 struct snd_soc_dapm_widget *widget =
2688 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302689 struct snd_soc_dapm_update *update = NULL;
2690
2691 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2692 ucontrol->value.integer.value[0]);
2693 if (ucontrol->value.integer.value[0])
2694 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2695 update);
2696 else
2697 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2698 update);
2699 pri_mi2s_switch_enable = ucontrol->value.integer.value[0];
2700 return 1;
2701}
2702
2703static int msm_routing_get_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2704 struct snd_ctl_elem_value *ucontrol)
2705{
2706 ucontrol->value.integer.value[0] = sec_mi2s_switch_enable;
2707 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2708 ucontrol->value.integer.value[0]);
2709 return 0;
2710}
2711
2712static int msm_routing_put_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2713 struct snd_ctl_elem_value *ucontrol)
2714{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302715 struct snd_soc_dapm_widget *widget =
2716 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302717 struct snd_soc_dapm_update *update = NULL;
2718
2719 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2720 ucontrol->value.integer.value[0]);
2721 if (ucontrol->value.integer.value[0])
2722 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2723 update);
2724 else
2725 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2726 update);
2727 sec_mi2s_switch_enable = ucontrol->value.integer.value[0];
2728 return 1;
2729}
2730
2731static int msm_routing_get_tert_mi2s_switch_mixer(
2732 struct snd_kcontrol *kcontrol,
2733 struct snd_ctl_elem_value *ucontrol)
2734{
2735 ucontrol->value.integer.value[0] = tert_mi2s_switch_enable;
2736 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2737 ucontrol->value.integer.value[0]);
2738 return 0;
2739}
2740
2741static int msm_routing_put_tert_mi2s_switch_mixer(
2742 struct snd_kcontrol *kcontrol,
2743 struct snd_ctl_elem_value *ucontrol)
2744{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302745 struct snd_soc_dapm_widget *widget =
2746 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302747 struct snd_soc_dapm_update *update = NULL;
2748
2749 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2750 ucontrol->value.integer.value[0]);
2751 if (ucontrol->value.integer.value[0])
2752 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2753 update);
2754 else
2755 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2756 update);
2757 tert_mi2s_switch_enable = ucontrol->value.integer.value[0];
2758 return 1;
2759}
2760
2761static int msm_routing_get_quat_mi2s_switch_mixer(
2762 struct snd_kcontrol *kcontrol,
2763 struct snd_ctl_elem_value *ucontrol)
2764{
2765 ucontrol->value.integer.value[0] = quat_mi2s_switch_enable;
2766 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2767 ucontrol->value.integer.value[0]);
2768 return 0;
2769}
2770
2771static int msm_routing_put_quat_mi2s_switch_mixer(
2772 struct snd_kcontrol *kcontrol,
2773 struct snd_ctl_elem_value *ucontrol)
2774{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302775 struct snd_soc_dapm_widget *widget =
2776 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302777 struct snd_soc_dapm_update *update = NULL;
2778
2779 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2780 ucontrol->value.integer.value[0]);
2781 if (ucontrol->value.integer.value[0])
2782 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2783 update);
2784 else
2785 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2786 update);
2787 quat_mi2s_switch_enable = ucontrol->value.integer.value[0];
2788 return 1;
2789}
2790
Rohit Kumara5077932017-09-10 22:05:05 +05302791static int msm_routing_get_quin_mi2s_switch_mixer(
2792 struct snd_kcontrol *kcontrol,
2793 struct snd_ctl_elem_value *ucontrol)
2794{
2795 ucontrol->value.integer.value[0] = quin_mi2s_switch_enable;
2796 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2797 ucontrol->value.integer.value[0]);
2798 return 0;
2799}
2800
2801static int msm_routing_put_quin_mi2s_switch_mixer(
2802 struct snd_kcontrol *kcontrol,
2803 struct snd_ctl_elem_value *ucontrol)
2804{
2805 struct snd_soc_dapm_widget *widget =
2806 snd_soc_dapm_kcontrol_widget(kcontrol);
2807 struct snd_soc_dapm_update *update = NULL;
2808
2809 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2810 ucontrol->value.integer.value[0]);
2811 if (ucontrol->value.integer.value[0])
2812 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2813 update);
2814 else
2815 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2816 update);
2817 quin_mi2s_switch_enable = ucontrol->value.integer.value[0];
2818 return 1;
2819}
2820
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302821static int msm_routing_get_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2822 struct snd_ctl_elem_value *ucontrol)
2823{
2824 ucontrol->value.integer.value[0] = fm_pcmrx_switch_enable;
2825 pr_debug("%s: FM Switch enable %ld\n", __func__,
2826 ucontrol->value.integer.value[0]);
2827 return 0;
2828}
2829
2830static int msm_routing_put_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2831 struct snd_ctl_elem_value *ucontrol)
2832{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302833 struct snd_soc_dapm_widget *widget =
2834 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302835 struct snd_soc_dapm_update *update = NULL;
2836
2837 pr_debug("%s: FM Switch enable %ld\n", __func__,
2838 ucontrol->value.integer.value[0]);
2839 if (ucontrol->value.integer.value[0])
2840 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2841 update);
2842 else
2843 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2844 update);
2845 fm_pcmrx_switch_enable = ucontrol->value.integer.value[0];
2846 return 1;
2847}
2848
2849static int msm_routing_lsm_port_get(struct snd_kcontrol *kcontrol,
2850 struct snd_ctl_elem_value *ucontrol)
2851{
2852 ucontrol->value.integer.value[0] = lsm_port_index;
2853 return 0;
2854}
2855
2856static int msm_routing_lsm_port_put(struct snd_kcontrol *kcontrol,
2857 struct snd_ctl_elem_value *ucontrol)
2858{
2859 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
2860 int mux = ucontrol->value.enumerated.item[0];
2861 int lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2862
2863 if (mux >= e->items) {
2864 pr_err("%s: Invalid mux value %d\n", __func__, mux);
2865 return -EINVAL;
2866 }
2867
2868 pr_debug("%s: LSM enable %ld\n", __func__,
2869 ucontrol->value.integer.value[0]);
2870 switch (ucontrol->value.integer.value[0]) {
2871 case 1:
2872 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_0_TX;
2873 break;
2874 case 2:
2875 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_1_TX;
2876 break;
2877 case 3:
2878 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_2_TX;
2879 break;
2880 case 4:
2881 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_3_TX;
2882 break;
2883 case 5:
2884 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_4_TX;
2885 break;
2886 case 6:
2887 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2888 break;
2889 case 7:
2890 lsm_port = AFE_PORT_ID_TERTIARY_MI2S_TX;
2891 break;
2892 case 8:
2893 lsm_port = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2894 break;
2895 case 9:
2896 lsm_port = ADM_LSM_PORT_ID;
2897 break;
2898 case 10:
2899 lsm_port = AFE_PORT_ID_INT3_MI2S_TX;
2900 break;
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +05302901 case 11:
2902 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
2903 break;
2904 case 12:
2905 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_1;
2906 break;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302907 case 13:
Xiaoyu Yef439aed2019-01-02 16:40:01 -08002908 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_2;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302909 break;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302910 case 14:
Xiaoyu Yef439aed2019-01-02 16:40:01 -08002911 lsm_port = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2912 break;
2913 case 15:
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302914 lsm_port = AFE_PORT_ID_QUINARY_TDM_TX;
2915 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302916 default:
2917 pr_err("Default lsm port");
2918 break;
2919 }
2920 set_lsm_port(lsm_port);
2921 lsm_port_index = ucontrol->value.integer.value[0];
2922
2923 return 0;
2924}
2925
2926static int msm_routing_lsm_func_get(struct snd_kcontrol *kcontrol,
2927 struct snd_ctl_elem_value *ucontrol)
2928{
2929 int i;
2930 u16 port_id;
2931 enum afe_mad_type mad_type;
2932
2933 pr_debug("%s: enter\n", __func__);
2934 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2935 if (!strnstr(kcontrol->id.name, lsm_port_text[i],
2936 strlen(lsm_port_text[i])))
2937 break;
2938
2939 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002940 pr_warn("%s: Invalid id name %s\n", __func__,
2941 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302942 return -EINVAL;
2943 }
2944
2945 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2946
2947 /*Check for Tertiary/Quaternary/INT3 TX port*/
2948 if (strnstr(kcontrol->id.name, lsm_port_text[7],
2949 strlen(lsm_port_text[7])))
2950 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
2951
2952 if (strnstr(kcontrol->id.name, lsm_port_text[8],
2953 strlen(lsm_port_text[8])))
2954 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2955
2956 if (strnstr(kcontrol->id.name, lsm_port_text[10],
2957 strlen(lsm_port_text[10])))
2958 port_id = AFE_PORT_ID_INT3_MI2S_TX;
2959
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302960 if (strnstr(kcontrol->id.name, lsm_port_text[13],
2961 strlen(lsm_port_text[13])))
2962 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2963
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302964 if (strnstr(kcontrol->id.name, lsm_port_text[14],
2965 strlen(lsm_port_text[14])))
2966 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
2967
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302968 mad_type = afe_port_get_mad_type(port_id);
2969 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
2970 mad_type);
2971 switch (mad_type) {
2972 case MAD_HW_NONE:
2973 ucontrol->value.integer.value[0] = MADNONE;
2974 break;
2975 case MAD_HW_AUDIO:
2976 ucontrol->value.integer.value[0] = MADAUDIO;
2977 break;
2978 case MAD_HW_BEACON:
2979 ucontrol->value.integer.value[0] = MADBEACON;
2980 break;
2981 case MAD_HW_ULTRASOUND:
2982 ucontrol->value.integer.value[0] = MADULTRASOUND;
2983 break;
2984 case MAD_SW_AUDIO:
2985 ucontrol->value.integer.value[0] = MADSWAUDIO;
2986 break;
2987 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002988 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302989 return -EINVAL;
2990 }
2991 return 0;
2992}
2993
2994static int msm_routing_lsm_func_put(struct snd_kcontrol *kcontrol,
2995 struct snd_ctl_elem_value *ucontrol)
2996{
2997 int i;
2998 u16 port_id;
2999 enum afe_mad_type mad_type;
3000
3001 pr_debug("%s: enter\n", __func__);
3002 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
3003 if (strnstr(kcontrol->id.name, lsm_port_text[i],
3004 strlen(lsm_port_text[i])))
3005 break;
3006
3007 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003008 pr_warn("%s: Invalid id name %s\n", __func__,
3009 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303010 return -EINVAL;
3011 }
3012
3013 port_id = i * 2 + 1 + SLIMBUS_0_RX;
3014 switch (ucontrol->value.integer.value[0]) {
3015 case MADNONE:
3016 mad_type = MAD_HW_NONE;
3017 break;
3018 case MADAUDIO:
3019 mad_type = MAD_HW_AUDIO;
3020 break;
3021 case MADBEACON:
3022 mad_type = MAD_HW_BEACON;
3023 break;
3024 case MADULTRASOUND:
3025 mad_type = MAD_HW_ULTRASOUND;
3026 break;
3027 case MADSWAUDIO:
3028 mad_type = MAD_SW_AUDIO;
3029 break;
3030 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003031 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303032 return -EINVAL;
3033 }
3034
3035 /*Check for Tertiary/Quaternary/INT3 TX port*/
3036 if (strnstr(kcontrol->id.name, lsm_port_text[7],
3037 strlen(lsm_port_text[7])))
3038 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3039
3040 if (strnstr(kcontrol->id.name, lsm_port_text[8],
3041 strlen(lsm_port_text[8])))
3042 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3043
3044 if (strnstr(kcontrol->id.name, lsm_port_text[10],
3045 strlen(lsm_port_text[10])))
3046 port_id = AFE_PORT_ID_INT3_MI2S_TX;
3047
Aditya Bavanarie9454c62018-08-23 23:45:20 +05303048 if (strnstr(kcontrol->id.name, lsm_port_text[13],
3049 strlen(lsm_port_text[13])))
3050 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
3051
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303052 if (strnstr(kcontrol->id.name, lsm_port_text[14],
3053 strlen(lsm_port_text[14])))
3054 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
3055
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303056 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
3057 mad_type);
3058 return afe_port_set_mad_type(port_id, mad_type);
3059}
3060
3061static const char *const adm_override_chs_text[] = {"Zero", "One", "Two"};
3062
3063static SOC_ENUM_SINGLE_EXT_DECL(slim_7_rx_adm_override_chs,
3064 adm_override_chs_text);
3065
3066static int msm_routing_adm_get_backend_idx(struct snd_kcontrol *kcontrol)
3067{
3068 int backend_id;
3069
3070 if (strnstr(kcontrol->id.name, "SLIM7_RX", sizeof("SLIM7_RX"))) {
3071 backend_id = MSM_BACKEND_DAI_SLIMBUS_7_RX;
3072 } else {
3073 pr_err("%s: unsupported backend id: %s",
3074 __func__, kcontrol->id.name);
3075 return -EINVAL;
3076 }
3077
3078 return backend_id;
3079}
3080static int msm_routing_adm_channel_config_get(
3081 struct snd_kcontrol *kcontrol,
3082 struct snd_ctl_elem_value *ucontrol)
3083{
3084 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
3085
3086 if (backend_id >= 0) {
3087 mutex_lock(&routing_lock);
3088 ucontrol->value.integer.value[0] =
3089 msm_bedais[backend_id].adm_override_ch;
3090 pr_debug("%s: adm channel count %ld for BE:%d\n", __func__,
3091 ucontrol->value.integer.value[0], backend_id);
3092 mutex_unlock(&routing_lock);
3093 }
3094
3095 return 0;
3096}
3097
3098static int msm_routing_adm_channel_config_put(
3099 struct snd_kcontrol *kcontrol,
3100 struct snd_ctl_elem_value *ucontrol)
3101{
3102 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
3103
3104 if (backend_id >= 0) {
3105 mutex_lock(&routing_lock);
3106 msm_bedais[backend_id].adm_override_ch =
3107 ucontrol->value.integer.value[0];
3108 pr_debug("%s:updating BE :%d adm channels: %d\n",
3109 __func__, backend_id,
3110 msm_bedais[backend_id].adm_override_ch);
3111 mutex_unlock(&routing_lock);
3112 }
3113
3114 return 0;
3115}
3116
3117static const struct snd_kcontrol_new adm_channel_config_controls[] = {
3118 SOC_ENUM_EXT("SLIM7_RX ADM Channels", slim_7_rx_adm_override_chs,
3119 msm_routing_adm_channel_config_get,
3120 msm_routing_adm_channel_config_put),
3121};
3122
3123static int msm_routing_slim_0_rx_aanc_mux_get(struct snd_kcontrol *kcontrol,
3124 struct snd_ctl_elem_value *ucontrol)
3125{
3126
3127 mutex_lock(&routing_lock);
3128 ucontrol->value.integer.value[0] = slim0_rx_aanc_fb_port;
3129 mutex_unlock(&routing_lock);
3130 pr_debug("%s: AANC Mux Port %ld\n", __func__,
3131 ucontrol->value.integer.value[0]);
3132 return 0;
3133};
3134
3135static int msm_routing_slim_0_rx_aanc_mux_put(struct snd_kcontrol *kcontrol,
3136 struct snd_ctl_elem_value *ucontrol)
3137{
3138 struct aanc_data aanc_info;
3139
3140 mutex_lock(&routing_lock);
3141 memset(&aanc_info, 0x00, sizeof(aanc_info));
3142 pr_debug("%s: AANC Mux Port %ld\n", __func__,
3143 ucontrol->value.integer.value[0]);
3144 slim0_rx_aanc_fb_port = ucontrol->value.integer.value[0];
3145 if (ucontrol->value.integer.value[0] == 0) {
3146 aanc_info.aanc_active = false;
3147 aanc_info.aanc_tx_port = 0;
3148 aanc_info.aanc_rx_port = 0;
3149 } else {
3150 aanc_info.aanc_active = true;
3151 aanc_info.aanc_rx_port = SLIMBUS_0_RX;
3152 aanc_info.aanc_tx_port =
3153 (SLIMBUS_0_RX - 1 + (slim0_rx_aanc_fb_port * 2));
3154 }
3155 afe_set_aanc_info(&aanc_info);
3156 mutex_unlock(&routing_lock);
3157 return 0;
3158};
3159static int msm_routing_get_port_mixer(struct snd_kcontrol *kcontrol,
3160 struct snd_ctl_elem_value *ucontrol)
3161{
3162 int idx = 0, shift = 0;
3163 struct soc_mixer_control *mc =
3164 (struct soc_mixer_control *)kcontrol->private_value;
3165
Meng Wang05d5e9a2018-03-28 16:45:03 +08003166 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
3167 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303168
3169 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
3170 pr_err("%s: Invalid idx = %d\n", __func__, idx);
3171 return -EINVAL;
3172 }
3173
3174 if (test_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003175 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303176 ucontrol->value.integer.value[0] = 1;
3177 else
3178 ucontrol->value.integer.value[0] = 0;
3179
Meng Wang05d5e9a2018-03-28 16:45:03 +08003180 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303181 ucontrol->value.integer.value[0]);
3182
3183 return 0;
3184}
3185
3186static int msm_routing_put_port_mixer(struct snd_kcontrol *kcontrol,
3187 struct snd_ctl_elem_value *ucontrol)
3188{
3189 int idx = 0, shift = 0;
3190 struct soc_mixer_control *mc =
3191 (struct soc_mixer_control *)kcontrol->private_value;
3192
Meng Wang05d5e9a2018-03-28 16:45:03 +08003193 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
3194 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303195
3196 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
3197 pr_err("%s: Invalid idx = %d\n", __func__, idx);
3198 return -EINVAL;
3199 }
3200
Meng Wang05d5e9a2018-03-28 16:45:03 +08003201 pr_debug("%s: shift 0x%x rshift 0x%x val %ld idx %d reminder shift %d\n",
3202 __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303203 ucontrol->value.integer.value[0], idx, shift);
3204
3205 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08003206 afe_loopback(1, msm_bedais[mc->shift].port_id,
3207 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303208 set_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003209 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303210 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08003211 afe_loopback(0, msm_bedais[mc->shift].port_id,
3212 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303213 clear_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003214 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303215 }
3216
3217 return 1;
3218}
3219
3220static int msm_pcm_get_channel_rule_index(struct snd_kcontrol *kcontrol,
3221 struct snd_ctl_elem_value *ucontrol)
3222{
3223 u16 fe_id = 0;
3224
3225 fe_id = ((struct soc_mixer_control *)
3226 kcontrol->private_value)->shift;
3227 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3228 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3229 return -EINVAL;
3230 }
3231
3232 ucontrol->value.integer.value[0] = channel_mixer[fe_id].rule;
3233
3234 return 0;
3235}
3236
3237static int msm_pcm_put_channel_rule_index(struct snd_kcontrol *kcontrol,
3238 struct snd_ctl_elem_value *ucontrol)
3239{
3240 u16 fe_id = 0;
3241
3242 fe_id = ((struct soc_mixer_control *)
3243 kcontrol->private_value)->shift;
3244 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3245 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3246 return -EINVAL;
3247 }
3248
3249 channel_mixer[fe_id].rule = ucontrol->value.integer.value[0];
3250
3251 return 1;
3252}
3253
3254static int msm_pcm_get_out_chs(struct snd_kcontrol *kcontrol,
3255 struct snd_ctl_elem_value *ucontrol)
3256{
3257 u16 fe_id = 0;
3258
3259 fe_id = ((struct soc_multi_mixer_control *)
3260 kcontrol->private_value)->shift;
3261 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3262 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3263 return -EINVAL;
3264 }
3265
3266 ucontrol->value.integer.value[0] =
3267 channel_mixer[fe_id].output_channel;
3268 return 0;
3269}
3270
3271static int msm_pcm_put_out_chs(struct snd_kcontrol *kcontrol,
3272 struct snd_ctl_elem_value *ucontrol)
3273{
3274 u16 fe_id = 0;
3275
3276 fe_id = ((struct soc_multi_mixer_control *)
3277 kcontrol->private_value)->shift;
3278 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3279 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3280 return -EINVAL;
3281 }
3282
3283 pr_debug("%s: fe_id is %d, output channels = %d\n", __func__,
3284 fe_id,
3285 (unsigned int)(ucontrol->value.integer.value[0]));
3286 channel_mixer[fe_id].output_channel =
3287 (unsigned int)(ucontrol->value.integer.value[0]);
3288
3289 return 1;
3290}
3291
3292static const char *const ch_mixer[] = {"Disable", "Enable"};
3293
3294/* If new backend is added, need update this array */
3295static const char *const be_name[] = {
3296"ZERO", "PRI_I2S_RX", "PRI_I2S_TX", "SLIM_0_RX",
3297"SLIM_0_TX", "HDMI_RX", "INT_BT_SCO_RX", "INT_BT_SCO_TX",
3298"INT_FM_RX", "INT_FM_TX", "AFE_PCM_RX", "AFE_PCM_TX",
3299"AUXPCM_RX", "AUXPCM_TX", "VOICE_PLAYBACK_TX", "VOICE2_PLAYBACK_TX",
3300"INCALL_RECORD_RX", "INCALL_RECORD_TX", "MI2S_RX", "MI2S_TX",
3301"SEC_I2S_RX", "SLIM_1_RX", "SLIM_1_TX", "SLIM_2_RX",
3302"SLIM_2_TX", "SLIM_3_RX", "SLIM_3_TX", "SLIM_4_RX",
3303"SLIM_4_TX", "SLIM_5_RX", "SLIM_5_TX", "SLIM_6_RX",
3304"SLIM_6_TX", "SLIM_7_RX", "SLIM_7_TX", "SLIM_8_RX",
3305"SLIM_8_TX", "EXTPROC_RX", "EXTPROC_TX", "EXPROC_EC_TX",
3306"QUAT_MI2S_RX", "QUAT_MI2S_TX", "SECOND_MI2S_RX", "SECOND_MI2S_TX",
3307"PRI_MI2S_RX", "PRI_MI2S_TX", "TERT_MI2S_RX", "TERT_MI2S_TX",
Ralf Herzc8701f72018-06-20 11:37:35 +02003308"AUDIO_I2S_RX", "SEC_AUXPCM_RX", "SEC_AUXPCM_TX", "PRI_SPDIF_RX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303309"SECOND_MI2S_RX_SD1", "QUIN_MI2S_RX", "QUIN_MI2S_TX", "SENARY_MI2S_TX",
3310"PRI_TDM_RX_0", "PRI_TDM_TX_0", "PRI_TDM_RX_1", "PRI_TDM_TX_1",
3311"PRI_TDM_RX_2", "PRI_TDM_TX_2", "PRI_TDM_RX_3", "PRI_TDM_TX_3",
3312"PRI_TDM_RX_4", "PRI_TDM_TX_4", "PRI_TDM_RX_5", "PRI_TDM_TX_5",
3313"PRI_TDM_RX_6", "PRI_TDM_TX_6", "PRI_TDM_RX_7", "PRI_TDM_TX_7",
3314"SEC_TDM_RX_0", "SEC_TDM_TX_0", "SEC_TDM_RX_1", "SEC_TDM_TX_1",
3315"SEC_TDM_RX_2", "SEC_TDM_TX_2", "SEC_TDM_RX_3", "SEC_TDM_TX_3",
3316"SEC_TDM_RX_4", "SEC_TDM_TX_4", "SEC_TDM_RX_5", "SEC_TDM_TX_5",
3317"SEC_TDM_RX_6", "SEC_TDM_TX_6", "SEC_TDM_RX_7", "SEC_TDM_TX_7",
3318"TERT_TDM_RX_0", "TERT_TDM_TX_0", "TERT_TDM_RX_1", "TERT_TDM_TX_1",
3319"TERT_TDM_RX_2", "TERT_TDM_TX_2", "TERT_TDM_RX_3", "TERT_TDM_TX_3",
3320"TERT_TDM_RX_4", "TERT_TDM_TX_4", "TERT_TDM_RX_5", "TERT_TDM_TX_5",
3321"TERT_TDM_RX_6", "TERT_TDM_TX_6", "TERT_TDM_RX_7", "TERT_TDM_TX_7",
3322"QUAT_TDM_RX_0", "QUAT_TDM_TX_0", "QUAT_TDM_RX_1", "QUAT_TDM_TX_1",
3323"QUAT_TDM_RX_2", "QUAT_TDM_TX_2", "QUAT_TDM_RX_3", "QUAT_TDM_TX_3",
3324"QUAT_TDM_RX_4", "QUAT_TDM_TX_4", "QUAT_TDM_RX_5", "QUAT_TDM_TX_5",
3325"QUAT_TDM_RX_6", "QUAT_TDM_TX_6", "QUAT_TDM_RX_7", "QUAT_TDM_TX_7",
Rohit Kumara5077932017-09-10 22:05:05 +05303326"QUIN_TDM_RX_0", "QUIN_TDM_TX_0", "QUIN_TDM_RX_1", "QUIN_TDM_TX_1",
3327"QUIN_TDM_RX_2", "QUIN_TDM_TX_2", "QUIN_TDM_RX_3", "QUIN_TDM_TX_3",
3328"QUIN_TDM_RX_4", "QUIN_TDM_TX_4", "QUIN_TDM_RX_5", "QUIN_TDM_TX_5",
3329"QUIN_TDM_RX_6", "QUIN_TDM_TX_6", "QUIN_TDM_RX_7", "QUIN_TDM_TX_7",
Meng Wangf016d302019-01-21 10:35:53 +08003330"INT_BT_A2DP_RX", "USB_RX", "USB_TX", "DISPLAY_PORT_RX",
3331"DISPLAY_PORT_RX1", "TERT_AUXPCM_RX", "TERT_AUXPCM_TX", "QUAT_AUXPCM_RX",
3332"QUAT_AUXPCM_TX", "QUIN_AUXPCM_RX", "QUIN_AUXPCM_TX", "INT0_MI2S_RX",
3333"INT0_MI2S_TX", "INT1_MI2S_RX", "INT1_MI2S_TX", "INT2_MI2S_RX",
3334"INT2_MI2S_TX", "INT3_MI2S_RX", "INT3_MI2S_TX", "INT4_MI2S_RX",
3335"INT4_MI2S_TX", "INT5_MI2S_RX", "INT5_MI2S_TX", "INT6_MI2S_RX",
3336"INT6_MI2S_TX", "SEN_AUXPCM_RX", "SEN_AUXPCM_TX", "SENARY_MI2S_RX",
3337"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 -08003338"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 +05303339"RX_CDC_DMA_RX_0", "TX_CDC_DMA_TX_0", "RX_CDC_DMA_RX_1", "TX_CDC_DMA_TX_1",
3340"RX_CDC_DMA_RX_2", "TX_CDC_DMA_TX_2", "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_3",
3341"RX_CDC_DMA_RX_4", "TX_CDC_DMA_TX_4", "RX_CDC_DMA_RX_5", "TX_CDC_DMA_TX_5",
3342"RX_CDC_DMA_RX_6", "RX_CDC_DMA_RX_7",
3343"PRI_SPDIF_TX", "SEC_SPDIF_RX", "SEC_SPDIF_TX",
Meng Wangf016d302019-01-21 10:35:53 +08003344"SLIM_9_RX", "SLIM_9_TX", "AFE_LOOPBACK_TX"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303345};
3346
3347static SOC_ENUM_SINGLE_DECL(mm1_channel_mux,
3348 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, ch_mixer);
3349static SOC_ENUM_SINGLE_DECL(mm2_channel_mux,
3350 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA2, ch_mixer);
3351static SOC_ENUM_SINGLE_DECL(mm3_channel_mux,
3352 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA3, ch_mixer);
3353static SOC_ENUM_SINGLE_DECL(mm4_channel_mux,
3354 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA4, ch_mixer);
3355
3356static SOC_ENUM_DOUBLE_DECL(mm1_ch1_enum,
3357 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 0, be_name);
3358static SOC_ENUM_DOUBLE_DECL(mm1_ch2_enum,
3359 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 1, be_name);
3360static SOC_ENUM_DOUBLE_DECL(mm1_ch3_enum,
3361 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 2, be_name);
3362static SOC_ENUM_DOUBLE_DECL(mm1_ch4_enum,
3363 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 3, be_name);
3364static SOC_ENUM_DOUBLE_DECL(mm1_ch5_enum,
3365 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 4, be_name);
3366static SOC_ENUM_DOUBLE_DECL(mm1_ch6_enum,
3367 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 5, be_name);
3368static SOC_ENUM_DOUBLE_DECL(mm1_ch7_enum,
3369 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 6, be_name);
3370static SOC_ENUM_DOUBLE_DECL(mm1_ch8_enum,
3371 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 7, be_name);
3372
3373static int msm_pcm_get_ctl_enum_info(struct snd_ctl_elem_info *uinfo,
3374 unsigned int channels,
3375 unsigned int items, const char *const names[])
3376{
3377 if (uinfo->value.enumerated.item >= items)
3378 uinfo->value.enumerated.item = items - 1;
3379
3380 WARN(strlen(names[uinfo->value.enumerated.item]) >=
3381 sizeof(uinfo->value.enumerated.name),
3382 "ALSA: too long item name '%s'\n",
3383 names[uinfo->value.enumerated.item]);
3384 strlcpy(uinfo->value.enumerated.name,
3385 names[uinfo->value.enumerated.item],
3386 sizeof(uinfo->value.enumerated.name));
3387 return 0;
3388}
3389
3390static int msm_pcm_channel_mixer_info(struct snd_kcontrol *kcontrol,
3391 struct snd_ctl_elem_info *uinfo)
3392{
3393 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3394
3395 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3396 uinfo->count = 1;
3397
3398 uinfo->value.enumerated.items = ARRAY_SIZE(ch_mixer);
3399 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3400
3401 return 0;
3402}
3403static int msm_pcm_channel_mixer_get(struct snd_kcontrol *kcontrol,
3404 struct snd_ctl_elem_value *ucontrol)
3405{
3406 u16 fe_id = 0;
3407
3408 fe_id = ((struct soc_enum *)
3409 kcontrol->private_value)->shift_l;
3410 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3411 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3412 return -EINVAL;
3413 }
3414
3415 pr_debug("%s: FE %d %s\n", __func__,
3416 fe_id,
3417 channel_mixer[fe_id].enable ? "Enabled" : "Disabled");
3418 ucontrol->value.enumerated.item[0] = channel_mixer[fe_id].enable;
3419 return 0;
3420}
3421
3422static int msm_pcm_channel_mixer_put(struct snd_kcontrol *kcontrol,
3423 struct snd_ctl_elem_value *ucontrol)
3424{
3425 u16 fe_id = 0;
3426
3427 fe_id = ((struct soc_enum *)
3428 kcontrol->private_value)->shift_l;
3429 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3430 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3431 return -EINVAL;
3432 }
3433
3434 channel_mixer[fe_id].enable = ucontrol->value.enumerated.item[0];
3435 pr_debug("%s: %s FE %d\n", __func__,
3436 channel_mixer[fe_id].enable ? "Enable" : "Disable",
3437 fe_id);
3438 return 0;
3439}
3440
3441static int msm_pcm_channel_input_be_info(struct snd_kcontrol *kcontrol,
3442 struct snd_ctl_elem_info *uinfo)
3443{
3444 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3445
3446 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3447 uinfo->count = 1;
3448
3449 uinfo->value.enumerated.items = ARRAY_SIZE(be_name);
3450 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3451
3452 return 0;
3453}
3454
3455static int msm_pcm_channel_input_be_put(struct snd_kcontrol *kcontrol,
3456 struct snd_ctl_elem_value *ucontrol)
3457{
3458 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3459 u16 fe_id = 0, in_ch = 0;
3460
3461 fe_id = e->shift_l;
3462 in_ch = e->shift_r;
3463 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3464 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3465 return -EINVAL;
3466 }
3467 if (in_ch >= ADM_MAX_CHANNELS) {
3468 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3469 return -EINVAL;
3470 }
3471
3472 channel_input[fe_id][in_ch] = ucontrol->value.enumerated.item[0];
3473 return 1;
3474}
3475
3476static int msm_pcm_channel_input_be_get(struct snd_kcontrol *kcontrol,
3477 struct snd_ctl_elem_value *ucontrol)
3478{
3479 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3480 u16 fe_id = 0, in_ch = 0;
3481
3482 fe_id = e->shift_l;
3483 in_ch = e->shift_r;
3484 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3485 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3486 return -EINVAL;
3487 }
3488 if (in_ch >= ADM_MAX_CHANNELS) {
3489 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3490 return -EINVAL;
3491 }
3492
3493 ucontrol->value.enumerated.item[0] = channel_input[fe_id][in_ch];
3494 return 1;
3495}
3496
3497
3498static int msm_pcm_channel_weight_info(struct snd_kcontrol *kcontrol,
3499 struct snd_ctl_elem_info *uinfo)
3500{
3501 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3502 uinfo->count = ADM_MAX_CHANNELS;
3503 uinfo->value.integer.min = 0;
3504 uinfo->value.integer.max = WEIGHT_0_DB;
3505
3506 return 0;
3507}
3508
3509static int msm_pcm_channel_weight_put(struct snd_kcontrol *kcontrol,
3510 struct snd_ctl_elem_value *ucontrol)
3511{
3512 u16 fe_id = 0, out_ch = 0;
3513 int i, weight;
3514
3515 fe_id = ((struct soc_multi_mixer_control *)
3516 kcontrol->private_value)->shift;
3517 out_ch = ((struct soc_multi_mixer_control *)
3518 kcontrol->private_value)->rshift;
3519 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3520 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3521 return -EINVAL;
3522 }
3523 if (out_ch >= ADM_MAX_CHANNELS) {
3524 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3525 return -EINVAL;
3526 }
3527
3528 pr_debug("%s: FE_ID: %d, channel weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld\n",
3529 __func__, fe_id,
3530 ucontrol->value.integer.value[0],
3531 ucontrol->value.integer.value[1],
3532 ucontrol->value.integer.value[2],
3533 ucontrol->value.integer.value[3],
3534 ucontrol->value.integer.value[4],
3535 ucontrol->value.integer.value[5],
3536 ucontrol->value.integer.value[6],
3537 ucontrol->value.integer.value[7]);
3538
3539 for (i = 0; i < ADM_MAX_CHANNELS; ++i) {
3540 weight = ucontrol->value.integer.value[i];
3541 channel_mixer[fe_id].channel_weight[out_ch][i] = weight;
3542 pr_debug("%s: FE_ID %d, output %d input %d weight %d\n",
3543 __func__, fe_id, out_ch, i,
3544 channel_mixer[fe_id].channel_weight[out_ch][i]);
3545 }
3546
3547 return 0;
3548}
3549
3550static int msm_pcm_channel_weight_get(struct snd_kcontrol *kcontrol,
3551 struct snd_ctl_elem_value *ucontrol)
3552{
3553 u16 fe_id = 0, out_ch = 0;
3554 int i;
3555
3556 fe_id = ((struct soc_multi_mixer_control *)
3557 kcontrol->private_value)->shift;
3558 out_ch = ((struct soc_multi_mixer_control *)
3559 kcontrol->private_value)->rshift;
3560 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3561 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3562 return -EINVAL;
3563 }
3564 if (out_ch >= ADM_MAX_CHANNELS) {
3565 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3566 return -EINVAL;
3567 }
3568
3569 for (i = 0; i < ADM_MAX_CHANNELS; ++i)
3570 ucontrol->value.integer.value[i] =
3571 channel_mixer[fe_id].channel_weight[out_ch][i];
3572
3573 pr_debug("%s: FE_ID: %d, weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld",
3574 __func__, fe_id,
3575 ucontrol->value.integer.value[0],
3576 ucontrol->value.integer.value[1],
3577 ucontrol->value.integer.value[2],
3578 ucontrol->value.integer.value[3],
3579 ucontrol->value.integer.value[4],
3580 ucontrol->value.integer.value[5],
3581 ucontrol->value.integer.value[6],
3582 ucontrol->value.integer.value[7]);
3583
3584 return 0;
3585}
3586
3587static const struct snd_kcontrol_new channel_mixer_controls[] = {
3588 SOC_SINGLE_EXT("MultiMedia1 Channel Rule", SND_SOC_NOPM,
3589 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3590 msm_pcm_get_channel_rule_index,
3591 msm_pcm_put_channel_rule_index),
3592 SOC_SINGLE_EXT("MultiMedia2 Channel Rule", SND_SOC_NOPM,
3593 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3594 msm_pcm_get_channel_rule_index,
3595 msm_pcm_put_channel_rule_index),
3596 SOC_SINGLE_EXT("MultiMedia3 Channel Rule", SND_SOC_NOPM,
3597 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3598 msm_pcm_get_channel_rule_index,
3599 msm_pcm_put_channel_rule_index),
3600 SOC_SINGLE_EXT("MultiMedia4 Channel Rule", SND_SOC_NOPM,
3601 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3602 msm_pcm_get_channel_rule_index,
3603 msm_pcm_put_channel_rule_index),
3604 SOC_SINGLE_EXT("MultiMedia5 Channel Rule", SND_SOC_NOPM,
3605 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3606 msm_pcm_get_channel_rule_index,
3607 msm_pcm_put_channel_rule_index),
3608 SOC_SINGLE_EXT("MultiMedia6 Channel Rule", SND_SOC_NOPM,
3609 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3610 msm_pcm_get_channel_rule_index,
3611 msm_pcm_put_channel_rule_index),
3612
3613 SOC_SINGLE_EXT("MultiMedia1 Channels", SND_SOC_NOPM,
3614 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3615 msm_pcm_get_out_chs,
3616 msm_pcm_put_out_chs),
3617 SOC_SINGLE_EXT("MultiMedia2 Channels", SND_SOC_NOPM,
3618 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3619 msm_pcm_get_out_chs,
3620 msm_pcm_put_out_chs),
3621 SOC_SINGLE_EXT("MultiMedia3 Channels", SND_SOC_NOPM,
3622 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3623 msm_pcm_get_out_chs,
3624 msm_pcm_put_out_chs),
3625 SOC_SINGLE_EXT("MultiMedia4 Channels", SND_SOC_NOPM,
3626 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3627 msm_pcm_get_out_chs,
3628 msm_pcm_put_out_chs),
3629 SOC_SINGLE_EXT("MultiMedia5 Channels", SND_SOC_NOPM,
3630 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3631 msm_pcm_get_out_chs,
3632 msm_pcm_put_out_chs),
3633 SOC_SINGLE_EXT("MultiMedia6 Channels", SND_SOC_NOPM,
3634 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3635 msm_pcm_get_out_chs,
3636 msm_pcm_put_out_chs),
3637 {
3638 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3639 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3640 .name = "MultiMedia1 Channel Mixer",
3641 .info = msm_pcm_channel_mixer_info,
3642 .get = msm_pcm_channel_mixer_get,
3643 .put = msm_pcm_channel_mixer_put,
3644 .private_value = (unsigned long)&(mm1_channel_mux)
3645 },
3646 {
3647 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3648 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3649 .name = "MultiMedia2 Channel Mixer",
3650 .info = msm_pcm_channel_mixer_info,
3651 .get = msm_pcm_channel_mixer_get,
3652 .put = msm_pcm_channel_mixer_put,
3653 .private_value = (unsigned long)&(mm2_channel_mux)
3654 },
3655 {
3656 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3657 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3658 .name = "MultiMedia3 Channel Mixer",
3659 .info = msm_pcm_channel_mixer_info,
3660 .get = msm_pcm_channel_mixer_get,
3661 .put = msm_pcm_channel_mixer_put,
3662 .private_value = (unsigned long)&(mm3_channel_mux)
3663 },
3664 {
3665 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3666 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3667 .name = "MultiMedia4 Channel Mixer",
3668 .info = msm_pcm_channel_mixer_info,
3669 .get = msm_pcm_channel_mixer_get,
3670 .put = msm_pcm_channel_mixer_put,
3671 .private_value = (unsigned long)&(mm4_channel_mux)
3672 },
3673 {
3674 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3675 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3676 .name = "MultiMedia1 Output Channel1",
3677 .info = msm_pcm_channel_weight_info,
3678 .get = msm_pcm_channel_weight_get,
3679 .put = msm_pcm_channel_weight_put,
3680 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3681 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 0,}
3682 },
3683 {
3684 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3685 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3686 .name = "MultiMedia1 Output Channel2",
3687 .info = msm_pcm_channel_weight_info,
3688 .get = msm_pcm_channel_weight_get,
3689 .put = msm_pcm_channel_weight_put,
3690 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3691 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 1, }
3692 },
3693 {
3694 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3695 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3696 .name = "MultiMedia1 Output Channel3",
3697 .info = msm_pcm_channel_weight_info,
3698 .get = msm_pcm_channel_weight_get,
3699 .put = msm_pcm_channel_weight_put,
3700 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3701 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 2,}
3702 },
3703 {
3704 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3705 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3706 .name = "MultiMedia1 Output Channel4",
3707 .info = msm_pcm_channel_weight_info,
3708 .get = msm_pcm_channel_weight_get,
3709 .put = msm_pcm_channel_weight_put,
3710 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3711 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 3,}
3712 },
3713 {
3714 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3715 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3716 .name = "MultiMedia1 Output Channel5",
3717 .info = msm_pcm_channel_weight_info,
3718 .get = msm_pcm_channel_weight_get,
3719 .put = msm_pcm_channel_weight_put,
3720 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3721 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 4,}
3722 },
3723 {
3724 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3725 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3726 .name = "MultiMedia1 Output Channel6",
3727 .info = msm_pcm_channel_weight_info,
3728 .get = msm_pcm_channel_weight_get,
3729 .put = msm_pcm_channel_weight_put,
3730 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3731 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 5,}
3732 },
3733 {
3734 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3735 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3736 .name = "MultiMedia1 Output Channel7",
3737 .info = msm_pcm_channel_weight_info,
3738 .get = msm_pcm_channel_weight_get,
3739 .put = msm_pcm_channel_weight_put,
3740 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3741 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 6,}
3742 },
3743 {
3744 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3745 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3746 .name = "MultiMedia1 Output Channel8",
3747 .info = msm_pcm_channel_weight_info,
3748 .get = msm_pcm_channel_weight_get,
3749 .put = msm_pcm_channel_weight_put,
3750 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3751 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 7,}
3752 },
3753 {
3754 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3755 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3756 .name = "MultiMedia2 Output Channel1",
3757 .info = msm_pcm_channel_weight_info,
3758 .get = msm_pcm_channel_weight_get,
3759 .put = msm_pcm_channel_weight_put,
3760 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3761 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 0,}
3762 },
3763 {
3764 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3765 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3766 .name = "MultiMedia2 Output Channel2",
3767 .info = msm_pcm_channel_weight_info,
3768 .get = msm_pcm_channel_weight_get,
3769 .put = msm_pcm_channel_weight_put,
3770 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3771 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 1,}
3772 },
3773 {
3774 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3775 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3776 .name = "MultiMedia2 Output Channel3",
3777 .info = msm_pcm_channel_weight_info,
3778 .get = msm_pcm_channel_weight_get,
3779 .put = msm_pcm_channel_weight_put,
3780 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3781 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 2,}
3782 },
3783 {
3784 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3785 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3786 .name = "MultiMedia3 Output Channel1",
3787 .info = msm_pcm_channel_weight_info,
3788 .get = msm_pcm_channel_weight_get,
3789 .put = msm_pcm_channel_weight_put,
3790 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3791 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 0,}
3792 },
3793 {
3794 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3795 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3796 .name = "MultiMedia3 Output Channel2",
3797 .info = msm_pcm_channel_weight_info,
3798 .get = msm_pcm_channel_weight_get,
3799 .put = msm_pcm_channel_weight_put,
3800 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3801 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 1,}
3802 },
3803 {
3804 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3805 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3806 .name = "MultiMedia1 Channel1",
3807 .info = msm_pcm_channel_input_be_info,
3808 .get = msm_pcm_channel_input_be_get,
3809 .put = msm_pcm_channel_input_be_put,
3810 .private_value = (unsigned long)&(mm1_ch1_enum)
3811 },
3812 {
3813 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3814 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3815 .name = "MultiMedia1 Channel2",
3816 .info = msm_pcm_channel_input_be_info,
3817 .get = msm_pcm_channel_input_be_get,
3818 .put = msm_pcm_channel_input_be_put,
3819 .private_value = (unsigned long)&(mm1_ch2_enum)
3820 },
3821 {
3822 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3823 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3824 .name = "MultiMedia1 Channel3",
3825 .info = msm_pcm_channel_input_be_info,
3826 .get = msm_pcm_channel_input_be_get,
3827 .put = msm_pcm_channel_input_be_put,
3828 .private_value = (unsigned long)&(mm1_ch3_enum)
3829 },
3830 {
3831 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3832 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3833 .name = "MultiMedia1 Channel4",
3834 .info = msm_pcm_channel_input_be_info,
3835 .get = msm_pcm_channel_input_be_get,
3836 .put = msm_pcm_channel_input_be_put,
3837 .private_value = (unsigned long)&(mm1_ch4_enum)
3838 },
3839 {
3840 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3841 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3842 .name = "MultiMedia1 Channel5",
3843 .info = msm_pcm_channel_input_be_info,
3844 .get = msm_pcm_channel_input_be_get,
3845 .put = msm_pcm_channel_input_be_put,
3846 .private_value = (unsigned long)&(mm1_ch5_enum)
3847 },
3848 {
3849 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3850 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3851 .name = "MultiMedia1 Channel6",
3852 .info = msm_pcm_channel_input_be_info,
3853 .get = msm_pcm_channel_input_be_get,
3854 .put = msm_pcm_channel_input_be_put,
3855 .private_value = (unsigned long)&(mm1_ch6_enum)
3856 },
3857 {
3858 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3859 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3860 .name = "MultiMedia1 Channel7",
3861 .info = msm_pcm_channel_input_be_info,
3862 .get = msm_pcm_channel_input_be_get,
3863 .put = msm_pcm_channel_input_be_put,
3864 .private_value = (unsigned long)&(mm1_ch7_enum)
3865 },
3866 {
3867 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3868 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3869 .name = "MultiMedia1 Channel8",
3870 .info = msm_pcm_channel_input_be_info,
3871 .get = msm_pcm_channel_input_be_get,
3872 .put = msm_pcm_channel_input_be_put,
3873 .private_value = (unsigned long)&(mm1_ch8_enum)
3874 },
3875};
3876static int msm_ec_ref_ch_get(struct snd_kcontrol *kcontrol,
3877 struct snd_ctl_elem_value *ucontrol)
3878{
3879 ucontrol->value.integer.value[0] = msm_ec_ref_ch;
3880 pr_debug("%s: msm_ec_ref_ch = %ld\n", __func__,
3881 ucontrol->value.integer.value[0]);
3882 return 0;
3883}
3884
3885static int msm_ec_ref_ch_put(struct snd_kcontrol *kcontrol,
3886 struct snd_ctl_elem_value *ucontrol)
3887{
3888 msm_ec_ref_ch = ucontrol->value.integer.value[0];
3889 pr_debug("%s: msm_ec_ref_ch = %d\n", __func__, msm_ec_ref_ch);
3890 adm_num_ec_ref_rx_chans(msm_ec_ref_ch);
3891 return 0;
3892}
3893
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05303894static int msm_ec_ref_ch_downmixed_get(struct snd_kcontrol *kcontrol,
3895 struct snd_ctl_elem_value *ucontrol)
3896{
3897 ucontrol->value.integer.value[0] = msm_ec_ref_ch_downmixed;
3898 pr_debug("%s: msm_ec_ref_downmixed_ch = %ld\n", __func__,
3899 ucontrol->value.integer.value[0]);
3900 return 0;
3901}
3902
3903static int msm_ec_ref_ch_downmixed_put(struct snd_kcontrol *kcontrol,
3904 struct snd_ctl_elem_value *ucontrol)
3905{
3906 msm_ec_ref_ch_downmixed = ucontrol->value.integer.value[0];
3907 pr_debug("%s: msm_ec_ref_downmixed_ch = %d\n",
3908 __func__, msm_ec_ref_ch_downmixed);
3909 adm_num_ec_ref_rx_chans_downmixed(msm_ec_ref_ch_downmixed);
3910 return 0;
3911}
3912
3913static int msm_ec_ref_chmixer_weights_put(struct snd_kcontrol *kcontrol,
3914 struct snd_ctl_elem_value *ucontrol)
3915{
3916 int i = 0, ret = 0;
3917 uint16_t weights[PCM_FORMAT_MAX_NUM_CHANNEL_V8] = {0};
3918 int out_channel_idx = ((struct soc_multi_mixer_control *)
3919 kcontrol->private_value)->shift;
3920
3921 for (; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; i++)
3922 weights[i] = ucontrol->value.integer.value[i];
3923
3924 ret = adm_ec_ref_chmixer_weights(out_channel_idx,
3925 weights, PCM_FORMAT_MAX_NUM_CHANNEL_V8);
3926 pr_debug("%s: ch_index = %d, ret = %d\n", __func__, out_channel_idx, ret);
3927 return ret;
3928}
3929
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303930static const char *const ec_ref_ch_text[] = {"Zero", "One", "Two", "Three",
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05303931 "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven",
3932 "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303933
3934static int msm_ec_ref_bit_format_get(struct snd_kcontrol *kcontrol,
3935 struct snd_ctl_elem_value *ucontrol)
3936{
3937 switch (msm_ec_ref_bit_format) {
3938 case SNDRV_PCM_FORMAT_S24_LE:
3939 ucontrol->value.integer.value[0] = 2;
3940 break;
3941 case SNDRV_PCM_FORMAT_S16_LE:
3942 ucontrol->value.integer.value[0] = 1;
3943 break;
3944 default:
3945 ucontrol->value.integer.value[0] = 0;
3946 break;
3947 }
3948 pr_debug("%s: msm_ec_ref_bit_format = %ld\n",
3949 __func__, ucontrol->value.integer.value[0]);
3950 return 0;
3951}
3952
3953static int msm_ec_ref_bit_format_put(struct snd_kcontrol *kcontrol,
3954 struct snd_ctl_elem_value *ucontrol)
3955{
3956 u16 bit_width = 0;
3957
3958 switch (ucontrol->value.integer.value[0]) {
3959 case 2:
3960 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S24_LE;
3961 break;
3962 case 1:
3963 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
3964 break;
3965 default:
3966 msm_ec_ref_bit_format = 0;
3967 break;
3968 }
3969
3970 if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S16_LE)
3971 bit_width = 16;
3972 else if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S24_LE)
3973 bit_width = 24;
3974
3975 pr_debug("%s: msm_ec_ref_bit_format = %d\n",
3976 __func__, msm_ec_ref_bit_format);
3977 adm_ec_ref_rx_bit_width(bit_width);
3978 return 0;
3979}
3980
3981static char const *ec_ref_bit_format_text[] = {"0", "S16_LE", "S24_LE"};
3982
3983static int msm_ec_ref_rate_get(struct snd_kcontrol *kcontrol,
3984 struct snd_ctl_elem_value *ucontrol)
3985{
3986 ucontrol->value.integer.value[0] = msm_ec_ref_sampling_rate;
3987 pr_debug("%s: msm_ec_ref_sampling_rate = %ld\n",
3988 __func__, ucontrol->value.integer.value[0]);
3989 return 0;
3990}
3991
3992static int msm_ec_ref_rate_put(struct snd_kcontrol *kcontrol,
3993 struct snd_ctl_elem_value *ucontrol)
3994{
3995 switch (ucontrol->value.integer.value[0]) {
3996 case 0:
3997 msm_ec_ref_sampling_rate = 0;
3998 break;
3999 case 1:
4000 msm_ec_ref_sampling_rate = 8000;
4001 break;
4002 case 2:
4003 msm_ec_ref_sampling_rate = 16000;
4004 break;
4005 case 3:
4006 msm_ec_ref_sampling_rate = 32000;
4007 break;
4008 case 4:
4009 msm_ec_ref_sampling_rate = 44100;
4010 break;
4011 case 5:
4012 msm_ec_ref_sampling_rate = 48000;
4013 break;
4014 case 6:
4015 msm_ec_ref_sampling_rate = 96000;
4016 break;
4017 case 7:
4018 msm_ec_ref_sampling_rate = 192000;
4019 break;
4020 case 8:
4021 msm_ec_ref_sampling_rate = 384000;
4022 break;
4023 default:
4024 msm_ec_ref_sampling_rate = 48000;
4025 break;
4026 }
4027 pr_debug("%s: msm_ec_ref_sampling_rate = %d\n",
4028 __func__, msm_ec_ref_sampling_rate);
4029 adm_ec_ref_rx_sampling_rate(msm_ec_ref_sampling_rate);
4030 return 0;
4031}
4032
4033static const char *const ec_ref_rate_text[] = {"0", "8000", "16000",
4034 "32000", "44100", "48000", "96000", "192000", "384000"};
4035
4036static const struct soc_enum msm_route_ec_ref_params_enum[] = {
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05304037 SOC_ENUM_SINGLE_EXT(17, ec_ref_ch_text),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304038 SOC_ENUM_SINGLE_EXT(3, ec_ref_bit_format_text),
4039 SOC_ENUM_SINGLE_EXT(9, ec_ref_rate_text),
4040};
4041
4042static const struct snd_kcontrol_new ec_ref_param_controls[] = {
4043 SOC_ENUM_EXT("EC Reference Channels", msm_route_ec_ref_params_enum[0],
4044 msm_ec_ref_ch_get, msm_ec_ref_ch_put),
4045 SOC_ENUM_EXT("EC Reference Bit Format", msm_route_ec_ref_params_enum[1],
4046 msm_ec_ref_bit_format_get, msm_ec_ref_bit_format_put),
4047 SOC_ENUM_EXT("EC Reference SampleRate", msm_route_ec_ref_params_enum[2],
4048 msm_ec_ref_rate_get, msm_ec_ref_rate_put),
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05304049 SOC_ENUM_EXT("EC Reference Downmixed Channels", msm_route_ec_ref_params_enum[0],
4050 msm_ec_ref_ch_downmixed_get, msm_ec_ref_ch_downmixed_put),
4051 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch1", SND_SOC_NOPM, 0,
4052 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8,
4053 NULL, msm_ec_ref_chmixer_weights_put),
4054 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch2", SND_SOC_NOPM, 1,
4055 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8,
4056 NULL, msm_ec_ref_chmixer_weights_put),
4057 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch3", SND_SOC_NOPM, 2,
4058 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8,
4059 NULL, msm_ec_ref_chmixer_weights_put),
4060 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch4", SND_SOC_NOPM, 3,
4061 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8,
4062 NULL, msm_ec_ref_chmixer_weights_put),
4063 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch5", SND_SOC_NOPM, 4,
4064 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8,
4065 NULL, msm_ec_ref_chmixer_weights_put),
4066 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch6", SND_SOC_NOPM, 5,
4067 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8,
4068 NULL, msm_ec_ref_chmixer_weights_put),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304069};
4070
4071static int msm_routing_ec_ref_rx_get(struct snd_kcontrol *kcontrol,
4072 struct snd_ctl_elem_value *ucontrol)
4073{
4074 pr_debug("%s: ec_ref_rx = %d", __func__, msm_route_ec_ref_rx);
4075 mutex_lock(&routing_lock);
4076 ucontrol->value.integer.value[0] = msm_route_ec_ref_rx;
4077 mutex_unlock(&routing_lock);
4078 return 0;
4079}
4080
4081static int msm_routing_ec_ref_rx_put(struct snd_kcontrol *kcontrol,
4082 struct snd_ctl_elem_value *ucontrol)
4083{
4084 int ec_ref_port_id;
Asish Bhattacharya34504582017-08-08 12:55:01 +05304085 struct snd_soc_dapm_widget *widget =
4086 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304087 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
4088 struct snd_soc_dapm_update *update = NULL;
4089
4090
4091 mutex_lock(&routing_lock);
4092 switch (ucontrol->value.integer.value[0]) {
4093 case 0:
4094 msm_route_ec_ref_rx = 0;
4095 ec_ref_port_id = AFE_PORT_INVALID;
4096 break;
4097 case 1:
4098 msm_route_ec_ref_rx = 1;
4099 ec_ref_port_id = SLIMBUS_0_RX;
4100 break;
4101 case 2:
4102 msm_route_ec_ref_rx = 2;
4103 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_RX;
4104 break;
4105 case 3:
4106 msm_route_ec_ref_rx = 3;
4107 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
4108 break;
4109 case 4:
4110 msm_route_ec_ref_rx = 4;
4111 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
4112 break;
4113 case 5:
4114 msm_route_ec_ref_rx = 5;
4115 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
4116 break;
4117 case 6:
4118 msm_route_ec_ref_rx = 6;
4119 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
4120 break;
4121 case 7:
4122 msm_route_ec_ref_rx = 7;
4123 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_RX;
4124 break;
4125 case 9:
4126 msm_route_ec_ref_rx = 9;
4127 ec_ref_port_id = SLIMBUS_5_RX;
4128 break;
4129 case 10:
4130 msm_route_ec_ref_rx = 10;
4131 ec_ref_port_id = SLIMBUS_1_TX;
4132 break;
4133 case 11:
4134 msm_route_ec_ref_rx = 11;
4135 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_TX_1;
4136 break;
4137 case 12:
4138 msm_route_ec_ref_rx = 12;
4139 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX;
4140 break;
4141 case 13:
4142 msm_route_ec_ref_rx = 13;
4143 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_1;
4144 break;
4145 case 14:
4146 msm_route_ec_ref_rx = 14;
4147 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_2;
4148 break;
4149 case 15:
4150 msm_route_ec_ref_rx = 15;
4151 ec_ref_port_id = SLIMBUS_6_RX;
4152 break;
4153 case 16:
4154 msm_route_ec_ref_rx = 16;
4155 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_RX;
4156 break;
4157 case 17:
4158 msm_route_ec_ref_rx = 17;
4159 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_RX;
4160 break;
4161 case 18:
4162 msm_route_ec_ref_rx = 18;
4163 ec_ref_port_id = AFE_PORT_ID_TERTIARY_TDM_TX;
4164 break;
4165 case 19:
4166 msm_route_ec_ref_rx = 19;
4167 ec_ref_port_id = AFE_PORT_ID_USB_RX;
4168 break;
4169 case 20:
4170 msm_route_ec_ref_rx = 20;
4171 ec_ref_port_id = AFE_PORT_ID_INT0_MI2S_RX;
4172 break;
4173 case 21:
4174 msm_route_ec_ref_rx = 21;
4175 ec_ref_port_id = AFE_PORT_ID_INT4_MI2S_RX;
4176 break;
4177 case 22:
4178 msm_route_ec_ref_rx = 22;
4179 ec_ref_port_id = AFE_PORT_ID_INT3_MI2S_TX;
4180 break;
Aalique Grahamee4fd7d52017-11-28 13:24:13 -08004181 case 23:
4182 msm_route_ec_ref_rx = 23;
4183 ec_ref_port_id = AFE_PORT_ID_HDMI_OVER_DP_RX;
4184 break;
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05304185 case 24:
4186 msm_route_ec_ref_rx = 24;
4187 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_0;
4188 break;
4189 case 25:
4190 msm_route_ec_ref_rx = 25;
4191 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_1;
4192 break;
4193 case 26:
4194 msm_route_ec_ref_rx = 26;
4195 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_0;
4196 break;
4197 case 27:
4198 msm_route_ec_ref_rx = 27;
4199 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_1;
4200 break;
4201 case 28:
4202 msm_route_ec_ref_rx = 28;
4203 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_2;
4204 break;
Zhou Songb167db12018-07-02 17:14:00 +08004205 case 29:
4206 msm_route_ec_ref_rx = 29;
4207 ec_ref_port_id = SLIMBUS_7_RX;
4208 break;
Aditya Bavanari1e84a932018-06-18 19:40:08 +05304209 case 30:
4210 msm_route_ec_ref_rx = 30;
4211 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_0;
4212 break;
4213 case 31:
4214 msm_route_ec_ref_rx = 31;
4215 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_1;
4216 break;
4217 case 32:
4218 msm_route_ec_ref_rx = 32;
4219 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_2;
4220 break;
4221 case 33:
4222 msm_route_ec_ref_rx = 33;
4223 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_3;
4224 break;
4225 case 34:
4226 msm_route_ec_ref_rx = 34;
4227 ec_ref_port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_0;
4228 break;
Derek Chen2bb55772018-10-24 00:17:15 -07004229 case 35:
4230 msm_route_ec_ref_rx = 35;
4231 ec_ref_port_id = AFE_PORT_ID_TERTIARY_TDM_RX_2;
4232 break;
4233 case 36:
4234 msm_route_ec_ref_rx = 36;
4235 ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
4236 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304237 default:
4238 msm_route_ec_ref_rx = 0; /* NONE */
4239 pr_err("%s EC ref rx %ld not valid\n",
4240 __func__, ucontrol->value.integer.value[0]);
4241 ec_ref_port_id = AFE_PORT_INVALID;
4242 break;
4243 }
Surendar Karkae7507512018-07-20 15:46:54 +05304244 msm_ec_ref_port_id = ec_ref_port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304245 adm_ec_ref_rx_id(ec_ref_port_id);
4246 pr_debug("%s: msm_route_ec_ref_rx = %d\n",
4247 __func__, msm_route_ec_ref_rx);
4248 mutex_unlock(&routing_lock);
4249 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol,
4250 msm_route_ec_ref_rx, e, update);
4251 return 0;
4252}
4253
4254static const char *const ec_ref_rx[] = { "None", "SLIM_RX", "I2S_RX",
4255 "PRI_MI2S_TX", "SEC_MI2S_TX",
4256 "TERT_MI2S_TX", "QUAT_MI2S_TX", "SEC_I2S_RX", "PROXY_RX",
4257 "SLIM_5_RX", "SLIM_1_TX", "QUAT_TDM_TX_1",
4258 "QUAT_TDM_RX_0", "QUAT_TDM_RX_1", "QUAT_TDM_RX_2", "SLIM_6_RX",
4259 "TERT_MI2S_RX", "QUAT_MI2S_RX", "TERT_TDM_TX_0", "USB_AUDIO_RX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05304260 "INT0_MI2S_RX", "INT4_MI2S_RX", "INT3_MI2S_TX", "DISPLAY_PORT",
4261 "WSA_CDC_DMA_RX_0", "WSA_CDC_DMA_RX_1",
Zhou Songb167db12018-07-02 17:14:00 +08004262 "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_2",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05304263 "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 -07004264 "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 +05304265};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304266
4267static const struct soc_enum msm_route_ec_ref_rx_enum[] = {
4268 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rx), ec_ref_rx),
4269};
4270
4271static const struct snd_kcontrol_new ext_ec_ref_mux_ul1 =
4272 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL1 MUX Mux",
4273 msm_route_ec_ref_rx_enum[0],
4274 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4275
4276static const struct snd_kcontrol_new ext_ec_ref_mux_ul2 =
4277 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL2 MUX Mux",
4278 msm_route_ec_ref_rx_enum[0],
4279 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4280
4281static const struct snd_kcontrol_new ext_ec_ref_mux_ul3 =
4282 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL3 MUX Mux",
4283 msm_route_ec_ref_rx_enum[0],
4284 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4285
4286static const struct snd_kcontrol_new ext_ec_ref_mux_ul4 =
4287 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL4 MUX Mux",
4288 msm_route_ec_ref_rx_enum[0],
4289 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4290
4291static const struct snd_kcontrol_new ext_ec_ref_mux_ul5 =
4292 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL5 MUX Mux",
4293 msm_route_ec_ref_rx_enum[0],
4294 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4295
4296static const struct snd_kcontrol_new ext_ec_ref_mux_ul6 =
4297 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL6 MUX Mux",
4298 msm_route_ec_ref_rx_enum[0],
4299 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4300
4301static const struct snd_kcontrol_new ext_ec_ref_mux_ul8 =
4302 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL8 MUX Mux",
4303 msm_route_ec_ref_rx_enum[0],
4304 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4305
4306static const struct snd_kcontrol_new ext_ec_ref_mux_ul9 =
4307 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL9 MUX Mux",
4308 msm_route_ec_ref_rx_enum[0],
4309 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4310
Asish Bhattacharya34504582017-08-08 12:55:01 +05304311static const struct snd_kcontrol_new ext_ec_ref_mux_ul16 =
4312 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL16 MUX Mux",
4313 msm_route_ec_ref_rx_enum[0],
4314 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4315
Laxminath Kasam38070be2017-08-17 18:21:59 +05304316static const struct snd_kcontrol_new ext_ec_ref_mux_ul10 =
4317 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL10 MUX Mux",
4318 msm_route_ec_ref_rx_enum[0],
4319 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4320
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304321static const struct snd_kcontrol_new ext_ec_ref_mux_ul17 =
4322 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL17 MUX Mux",
4323 msm_route_ec_ref_rx_enum[0],
4324 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4325
4326static const struct snd_kcontrol_new ext_ec_ref_mux_ul18 =
4327 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL18 MUX Mux",
4328 msm_route_ec_ref_rx_enum[0],
4329 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4330
4331static const struct snd_kcontrol_new ext_ec_ref_mux_ul19 =
4332 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL19 MUX Mux",
4333 msm_route_ec_ref_rx_enum[0],
4334 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4335
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304336static const struct snd_kcontrol_new ext_ec_ref_mux_ul28 =
4337 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL28 MUX Mux",
4338 msm_route_ec_ref_rx_enum[0],
4339 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4340
4341static const struct snd_kcontrol_new ext_ec_ref_mux_ul29 =
4342 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL29 MUX Mux",
4343 msm_route_ec_ref_rx_enum[0],
4344 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4345
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304346static int msm_routing_ext_ec_get(struct snd_kcontrol *kcontrol,
4347 struct snd_ctl_elem_value *ucontrol)
4348{
4349 pr_debug("%s: ext_ec_ref_rx = %x\n", __func__, msm_route_ext_ec_ref);
4350
4351 mutex_lock(&routing_lock);
4352 ucontrol->value.integer.value[0] = msm_route_ext_ec_ref;
4353 mutex_unlock(&routing_lock);
4354 return 0;
4355}
4356
4357static int msm_routing_ext_ec_put(struct snd_kcontrol *kcontrol,
4358 struct snd_ctl_elem_value *ucontrol)
4359{
Asish Bhattacharya34504582017-08-08 12:55:01 +05304360 struct snd_soc_dapm_widget *widget =
4361 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304362 int mux = ucontrol->value.enumerated.item[0];
4363 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
4364 int ret = 1;
4365 bool state = true;
4366 uint16_t ext_ec_ref_port_id;
4367 struct snd_soc_dapm_update *update = NULL;
4368
4369 if (mux >= e->items) {
4370 pr_err("%s: Invalid mux value %d\n", __func__, mux);
4371 return -EINVAL;
4372 }
4373
4374 mutex_lock(&routing_lock);
4375 msm_route_ext_ec_ref = ucontrol->value.integer.value[0];
4376
4377 switch (msm_route_ext_ec_ref) {
4378 case EXT_EC_REF_PRI_MI2S_TX:
4379 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
4380 break;
4381 case EXT_EC_REF_SEC_MI2S_TX:
4382 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
4383 break;
4384 case EXT_EC_REF_TERT_MI2S_TX:
4385 ext_ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
4386 break;
4387 case EXT_EC_REF_QUAT_MI2S_TX:
4388 ext_ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
4389 break;
4390 case EXT_EC_REF_QUIN_MI2S_TX:
4391 ext_ec_ref_port_id = AFE_PORT_ID_QUINARY_MI2S_TX;
4392 break;
4393 case EXT_EC_REF_SLIM_1_TX:
4394 ext_ec_ref_port_id = SLIMBUS_1_TX;
4395 break;
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004396 case EXT_EC_REF_SEC_TDM_TX:
4397 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
4398 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304399 case EXT_EC_REF_NONE:
4400 default:
4401 ext_ec_ref_port_id = AFE_PORT_INVALID;
4402 state = false;
4403 break;
4404 }
4405
4406 pr_debug("%s: val = %d ext_ec_ref_port_id = 0x%0x state = %d\n",
4407 __func__, msm_route_ext_ec_ref, ext_ec_ref_port_id, state);
4408
4409 if (!voc_set_ext_ec_ref_port_id(ext_ec_ref_port_id, state)) {
4410 mutex_unlock(&routing_lock);
4411 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol, mux, e,
4412 update);
4413 } else {
4414 ret = -EINVAL;
4415 mutex_unlock(&routing_lock);
4416 }
4417 return ret;
4418}
4419
4420static const char * const ext_ec_ref_rx[] = {"NONE", "PRI_MI2S_TX",
4421 "SEC_MI2S_TX", "TERT_MI2S_TX",
4422 "QUAT_MI2S_TX", "QUIN_MI2S_TX",
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004423 "SLIM_1_TX", "SEC_TDM_TX"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304424
4425static const struct soc_enum msm_route_ext_ec_ref_rx_enum[] = {
4426 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ext_ec_ref_rx), ext_ec_ref_rx),
4427};
4428
4429static const struct snd_kcontrol_new voc_ext_ec_mux =
4430 SOC_DAPM_ENUM_EXT("VOC_EXT_EC MUX Mux", msm_route_ext_ec_ref_rx_enum[0],
4431 msm_routing_ext_ec_get, msm_routing_ext_ec_put);
4432
4433
4434static const struct snd_kcontrol_new pri_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004435 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4436 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304437 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4438 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004439 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4440 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304441 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4442 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004443 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4444 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304445 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4446 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004447 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4448 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304449 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4450 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004451 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4452 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304453 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4454 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004455 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4456 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304457 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4458 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004459 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4460 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304461 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4462 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004463 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4464 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304465 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4466 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004467 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4468 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304469 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4470 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004471 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4472 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304473 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4474 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004475 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4476 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304477 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4478 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004479 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4480 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304481 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004483 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4484 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304485 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004487 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4488 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304489 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4490 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004491 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4492 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304493 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004495 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4496 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304497 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004499 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4500 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304501 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004503 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4504 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304505 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004507 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4508 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304509 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4510 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304511 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4512 MSM_BACKEND_DAI_PRI_I2S_RX,
4513 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004515 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4516 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304517 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004519 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4520 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304521 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4522 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304523};
4524
4525static const struct snd_kcontrol_new sec_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004526 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4527 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304528 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004530 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4531 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304532 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4533 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004534 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4535 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304536 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4537 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004538 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4539 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304540 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4541 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004542 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4543 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304544 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4545 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004546 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4547 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304548 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4549 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004550 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4551 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304552 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4553 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004554 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4555 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304556 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4557 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004558 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4559 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304560 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004562 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4563 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304564 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004566 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4567 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304568 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004570 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4571 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304572 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004574 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4575 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304576 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004578 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4579 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304580 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004582 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4583 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304584 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004586 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4587 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304588 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4589 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004590 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4591 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304592 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004594 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4595 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304596 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004598 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4599 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304600 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4601 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304602 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4603 MSM_BACKEND_DAI_SEC_I2S_RX,
4604 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4605 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004606 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4607 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304608 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004610 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4611 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304612 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4613 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304614};
4615
Ralf Herzc8701f72018-06-20 11:37:35 +02004616static const struct snd_kcontrol_new pri_spdif_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004617 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004618 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304619 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4620 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004621 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004622 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304623 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4624 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004625 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004626 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304627 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4628 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004629 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004630 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304631 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004633 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004634 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304635 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004637 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004638 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304639 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004641 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004642 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304643 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004645 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004646 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304647 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004649 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004650 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304651 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004653 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004654 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304655 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004657 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004658 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304659 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004661 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004662 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304663 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4664 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004665 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004666 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304667 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4668 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004669 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004670 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304671 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004673 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004674 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304675 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004677 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004678 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304679 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004681 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004682 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304683 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004685 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004686 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304687 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004689 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004690 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304691 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4692 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304693 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4694 MSM_BACKEND_DAI_PRI_SPDIF_RX,
4695 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004697 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004698 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304699 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004701 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004702 MSM_BACKEND_DAI_PRI_SPDIF_RX,
4703 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4704 msm_routing_put_audio_mixer),
4705};
4706
4707static const struct snd_kcontrol_new sec_spdif_rx_mixer_controls[] = {
4708 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4709 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4710 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4711 msm_routing_put_audio_mixer),
4712 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4713 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4714 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4715 msm_routing_put_audio_mixer),
4716 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4717 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4718 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4719 msm_routing_put_audio_mixer),
4720 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4721 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4722 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4723 msm_routing_put_audio_mixer),
4724 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4725 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4726 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4727 msm_routing_put_audio_mixer),
4728 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4729 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4730 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4731 msm_routing_put_audio_mixer),
4732 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4733 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4734 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4735 msm_routing_put_audio_mixer),
4736 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4737 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4738 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4739 msm_routing_put_audio_mixer),
4740 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4741 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4742 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4743 msm_routing_put_audio_mixer),
4744 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4745 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4746 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4747 msm_routing_put_audio_mixer),
4748 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4749 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4750 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4751 msm_routing_put_audio_mixer),
4752 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4753 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4754 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4755 msm_routing_put_audio_mixer),
4756 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4757 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4758 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4759 msm_routing_put_audio_mixer),
4760 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4761 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4762 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4763 msm_routing_put_audio_mixer),
4764 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4765 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4766 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4767 msm_routing_put_audio_mixer),
4768 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4769 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4770 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4771 msm_routing_put_audio_mixer),
4772 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4773 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4774 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4775 msm_routing_put_audio_mixer),
4776 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4777 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4778 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4779 msm_routing_put_audio_mixer),
4780 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4781 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4782 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4783 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304784 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4785 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4786 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4787 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02004788 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4789 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4790 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4791 msm_routing_put_audio_mixer),
4792 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4793 MSM_BACKEND_DAI_SEC_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304794 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4795 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304796};
4797
4798static const struct snd_kcontrol_new slimbus_2_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004799 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4800 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304801 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004803 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4804 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304805 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004807 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4808 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304809 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004811 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4812 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304813 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004815 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4816 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304817 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004819 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4820 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304821 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004823 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4824 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304825 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004827 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4828 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304829 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004831 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4832 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304833 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4834 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004835 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4836 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304837 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004839 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4840 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304841 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004843 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4844 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304845 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004847 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4848 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304849 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004851 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4852 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304853 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004855 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4856 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304857 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004859 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4860 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304861 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4862 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304863 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4864 MSM_BACKEND_DAI_SLIMBUS_2_RX,
4865 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4866 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304867};
4868
4869static const struct snd_kcontrol_new slimbus_5_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004870 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4871 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304872 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004874 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4875 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304876 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004878 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4879 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304880 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004882 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4883 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304884 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004886 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4887 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304888 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004890 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4891 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304892 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004894 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4895 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304896 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004898 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4899 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304900 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004902 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4903 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304904 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4905 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004906 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4907 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304908 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4909 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004910 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4911 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304912 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4913 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004914 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4915 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304916 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4917 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004918 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4919 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304920 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4921 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004922 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4923 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304924 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4925 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004926 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4927 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304928 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004930 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4931 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304932 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4933 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004934 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4935 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304936 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4937 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004938 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4939 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304940 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4941 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004942 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4943 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304944 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4945 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304946 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4947 MSM_BACKEND_DAI_SLIMBUS_5_RX,
4948 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004950 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4951 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304952 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004954 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4955 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304956 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4957 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304958};
4959
4960static const struct snd_kcontrol_new slimbus_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004961 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4962 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304963 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4964 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004965 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4966 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304967 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004969 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4970 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304971 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4972 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004973 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4974 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304975 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4976 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004977 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4978 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304979 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4980 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004981 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4982 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304983 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4984 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004985 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4986 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304987 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4988 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004989 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4990 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304991 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004993 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4994 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304995 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004997 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4998 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304999 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005001 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5002 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305003 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5004 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005005 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5006 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305007 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005009 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5010 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305011 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005013 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5014 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305015 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005017 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5018 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305019 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005021 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5022 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305023 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005025 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5026 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305027 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5028 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005029 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5030 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305031 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5032 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005033 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5034 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305035 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5036 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305037 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5038 MSM_BACKEND_DAI_SLIMBUS_0_RX,
5039 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5040 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005041 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5042 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305043 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5044 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005045 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5046 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305047 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5048 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305049};
5050
5051static const struct snd_kcontrol_new mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005052 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5053 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305054 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005056 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5057 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305058 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005060 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5061 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305062 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005064 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5065 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305066 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005068 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5069 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305070 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005072 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5073 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305074 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5075 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005076 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5077 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305078 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005080 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5081 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305082 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005084 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5085 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305086 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005088 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5089 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305090 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005092 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5093 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305094 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005096 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5097 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305098 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005100 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5101 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305102 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005104 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5105 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305106 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005108 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5109 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305110 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005112 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5113 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305114 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005116 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5117 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305118 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5119 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005120 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5121 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305122 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5123 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005124 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5125 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305126 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5127 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305128 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5129 MSM_BACKEND_DAI_MI2S_RX,
5130 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5131 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005132 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5133 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305134 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5135 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005136 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5137 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305138 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5139 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305140};
5141
5142static const struct snd_kcontrol_new quaternary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005143 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5144 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305145 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005147 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5148 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305149 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005151 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5152 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305153 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005155 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5156 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305157 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005159 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5160 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305161 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005163 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5164 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305165 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005167 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5168 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305169 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005171 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5172 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305173 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005175 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5176 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305177 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005179 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5180 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305181 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005183 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5184 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305185 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005187 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5188 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305189 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005191 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5192 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305193 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005195 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5196 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305197 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005199 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5200 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305201 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5202 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005203 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5204 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305205 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005207 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5208 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305209 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5210 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005211 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5212 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305213 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5214 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005215 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5216 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305217 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5218 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305219 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5220 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
5221 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005223 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5224 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305225 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005227 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5228 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305229 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5230 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305231};
5232
5233static const struct snd_kcontrol_new quinary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005234 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5235 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305236 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5237 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005238 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5239 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305240 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5241 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005242 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5243 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305244 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5245 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005246 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5247 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305248 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5249 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005250 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5251 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305252 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005254 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5255 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305256 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5257 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005258 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5259 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305260 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5261 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005262 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5263 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305264 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5265 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005266 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5267 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305268 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5269 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005270 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5271 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305272 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5273 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005274 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5275 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305276 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5277 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005278 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5279 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305280 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5281 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005282 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5283 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305284 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005286 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5287 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305288 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5289 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005290 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5291 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305292 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005294 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5295 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305296 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005298 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5299 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305300 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005302 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5303 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305304 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005306 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5307 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305308 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5309 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305310 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5311 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
5312 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005314 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5315 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305316 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005318 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5319 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305320 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5321 msm_routing_put_audio_mixer),
5322
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305323};
5324
5325static const struct snd_kcontrol_new tertiary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005326 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5327 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305328 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005330 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5331 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305332 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005334 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5335 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305336 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005338 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5339 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305340 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005342 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5343 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305344 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005346 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5347 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305348 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005350 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5351 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305352 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005354 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5355 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305356 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005358 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5359 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305360 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005362 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5363 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305364 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005366 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5367 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305368 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005370 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5371 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305372 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005374 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5375 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305376 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5377 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005378 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5379 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305380 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5381 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005382 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5383 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305384 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5385 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005386 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5387 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305388 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5389 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005390 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5391 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305392 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5393 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305394 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5395 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
5396 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005398 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5399 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305400 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5401 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005402 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5403 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305404 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5405 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305406};
5407
5408static const struct snd_kcontrol_new secondary_mi2s_rx2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005409 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5410 MSM_BACKEND_DAI_SECONDARY_MI2S_RX_SD1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305411 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5412 msm_routing_put_audio_mixer),
5413};
5414
5415static const struct snd_kcontrol_new secondary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005416 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5417 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305418 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5419 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005420 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5421 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305422 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005424 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5425 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305426 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005428 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5429 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305430 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5431 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005432 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5433 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305434 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5435 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005436 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5437 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305438 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5439 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005440 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5441 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305442 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5443 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005444 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5445 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305446 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005448 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5449 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305450 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005452 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5453 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305454 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005456 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5457 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305458 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5459 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005460 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5461 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305462 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5463 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005464 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5465 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305466 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005468 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5469 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305470 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005472 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5473 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305474 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5475 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005476 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5477 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305478 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005480 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5481 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305482 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5483 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005484 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5485 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305486 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5487 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005488 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5489 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305490 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5491 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305492 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5493 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
5494 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005496 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5497 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305498 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5499 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005500 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5501 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305502 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5503 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305504};
5505
5506static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005507 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5508 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305509 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005511 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5512 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305513 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005515 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5516 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305517 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005519 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5520 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305521 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005523 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5524 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305525 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005527 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5528 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305529 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005531 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5532 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305533 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005535 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5536 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305537 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005539 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5540 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305541 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005543 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5544 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305545 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005547 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5548 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305549 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005551 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5552 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305553 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5554 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005555 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5556 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305557 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005559 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5560 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305561 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005563 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5564 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305565 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005567 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5568 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305569 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005571 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5572 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305573 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005575 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5576 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305577 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005579 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5580 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305581 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5582 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305583 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5584 MSM_BACKEND_DAI_PRI_MI2S_RX,
5585 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005587 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5588 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305589 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005591 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5592 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305593 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5594 msm_routing_put_audio_mixer),
5595
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305596};
5597
5598static const struct snd_kcontrol_new int0_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005599 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5600 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305601 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5602 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005603 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5604 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305605 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005607 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5608 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305609 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005611 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5612 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305613 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005615 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5616 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305617 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005619 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5620 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305621 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5622 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005623 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5624 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305625 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005627 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5628 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305629 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5630 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005631 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5632 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305633 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5634 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005635 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5636 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305637 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005639 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5640 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305641 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005643 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5644 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305645 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005647 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5648 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305649 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005651 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5652 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305653 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005655 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5656 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305657 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005659 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5660 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305661 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5662 msm_routing_put_audio_mixer),
5663};
5664
5665static const struct snd_kcontrol_new int4_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005666 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5667 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305668 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005670 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5671 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305672 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005674 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5675 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305676 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005678 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5679 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305680 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005682 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5683 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305684 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005686 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5687 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305688 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005690 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5691 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305692 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005694 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5695 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305696 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005698 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5699 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305700 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005702 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5703 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305704 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5705 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005706 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5707 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305708 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5709 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005710 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5711 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305712 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005714 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5715 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305716 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005718 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5719 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305720 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005722 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5723 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305724 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005726 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5727 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305728 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5729 msm_routing_put_audio_mixer),
5730};
5731
5732static const struct snd_kcontrol_new hdmi_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005733 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5734 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305735 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005737 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5738 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305739 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005741 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5742 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305743 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005745 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5746 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305747 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005749 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5750 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305751 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5752 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005753 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5754 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305755 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5756 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005757 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5758 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305759 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5760 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005761 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5762 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305763 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5764 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005765 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5766 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305767 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5768 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005769 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5770 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305771 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5772 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005773 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5774 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305775 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005777 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5778 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305779 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005781 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5782 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305783 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005785 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5786 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305787 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005789 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5790 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305791 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005793 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5794 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305795 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005797 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5798 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305799 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005801 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5802 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305803 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005805 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5806 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305807 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5808 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305809 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5810 MSM_BACKEND_DAI_HDMI_RX,
5811 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005813 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5814 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305815 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005817 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5818 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305819 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5820 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305821};
5822
5823static const struct snd_kcontrol_new display_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005824 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5825 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305826 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005828 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5829 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305830 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005832 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5833 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305834 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5835 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005836 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5837 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305838 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5839 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005840 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5841 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305842 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5843 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005844 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5845 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305846 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5847 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005848 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5849 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305850 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5851 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005852 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5853 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305854 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005856 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5857 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305858 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005860 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5861 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305862 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005864 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5865 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305866 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005868 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5869 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305870 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005872 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5873 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305874 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005876 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5877 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305878 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005880 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5881 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305882 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005884 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5885 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305886 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5887 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305888 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5889 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
5890 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5891 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305892};
5893
Karthikeyan Mani57550082018-05-03 18:43:58 -07005894static const struct snd_kcontrol_new display_port1_mixer_controls[] = {
5895 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5896 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5897 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5898 msm_routing_put_audio_mixer),
5899 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5900 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5901 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5902 msm_routing_put_audio_mixer),
5903 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5904 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5905 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5906 msm_routing_put_audio_mixer),
5907 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5908 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5909 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5910 msm_routing_put_audio_mixer),
5911 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5912 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5913 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5914 msm_routing_put_audio_mixer),
5915 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5916 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5917 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5918 msm_routing_put_audio_mixer),
5919 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5920 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5921 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5922 msm_routing_put_audio_mixer),
5923 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5924 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5925 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5926 msm_routing_put_audio_mixer),
5927 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5928 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5929 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5930 msm_routing_put_audio_mixer),
5931 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5932 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5933 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5934 msm_routing_put_audio_mixer),
5935 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5936 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5937 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5938 msm_routing_put_audio_mixer),
5939 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5940 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5941 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5942 msm_routing_put_audio_mixer),
5943 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5944 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5945 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5946 msm_routing_put_audio_mixer),
5947 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5948 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5949 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5950 msm_routing_put_audio_mixer),
5951 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5952 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5953 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5954 msm_routing_put_audio_mixer),
5955 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5956 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5957 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5958 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305959 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5960 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5961 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5962 msm_routing_put_audio_mixer),
Karthikeyan Mani57550082018-05-03 18:43:58 -07005963};
5964
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305965 /* incall music delivery mixer */
5966static const struct snd_kcontrol_new incall_music_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005967 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5968 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305969 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5970 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005971 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5972 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305973 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5974 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005975 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5976 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305977 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5978 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005979 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5980 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305981 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5982 msm_routing_put_audio_mixer),
5983};
5984
5985static const struct snd_kcontrol_new incall_music2_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005986 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5987 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305988 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005990 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5991 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305992 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005994 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5995 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305996 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5997 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005998 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5999 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306000 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6001 msm_routing_put_audio_mixer),
6002};
6003
6004static const struct snd_kcontrol_new slimbus_4_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006005 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6006 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306007 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006009 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6010 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306011 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006013 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6014 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306015 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006017 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6018 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306019 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6020 msm_routing_put_audio_mixer),
6021};
6022
6023static const struct snd_kcontrol_new slimbus_6_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006024 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6025 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306026 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006028 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6029 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306030 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006032 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6033 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306034 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006036 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6037 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306038 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006040 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6041 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306042 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6043 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006044 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6045 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306046 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6047 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006048 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6049 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306050 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006052 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6053 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306054 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006056 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6057 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306058 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006060 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6061 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306062 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006064 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6065 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306066 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006068 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6069 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306070 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006072 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6073 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306074 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6075 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006076 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6077 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306078 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006080 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6081 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306082 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006084 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6085 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306086 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6087 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306088 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6089 MSM_BACKEND_DAI_SLIMBUS_6_RX,
6090 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6091 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306092};
6093
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05306094static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_mixer_controls[] = {
6095 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6096 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6097 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6098 msm_routing_put_audio_mixer),
6099 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6100 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6101 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6102 msm_routing_put_audio_mixer),
6103 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6104 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6105 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6106 msm_routing_put_audio_mixer),
6107 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6108 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6109 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6110 msm_routing_put_audio_mixer),
6111 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6112 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6113 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6114 msm_routing_put_audio_mixer),
6115 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6116 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6117 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6118 msm_routing_put_audio_mixer),
6119 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6120 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6121 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6122 msm_routing_put_audio_mixer),
6123 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6124 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6125 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6126 msm_routing_put_audio_mixer),
6127 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6128 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6129 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6130 msm_routing_put_audio_mixer),
6131 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6132 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6133 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6134 msm_routing_put_audio_mixer),
6135 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6136 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6137 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6138 msm_routing_put_audio_mixer),
6139 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6140 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6141 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6142 msm_routing_put_audio_mixer),
6143 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6144 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6145 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6146 msm_routing_put_audio_mixer),
6147 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6148 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6149 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6150 msm_routing_put_audio_mixer),
6151 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6152 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6153 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6154 msm_routing_put_audio_mixer),
6155 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6156 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6157 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6158 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306159 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6160 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
6161 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6162 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05306163};
6164
6165static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_mixer_controls[] = {
6166 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6167 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6168 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6169 msm_routing_put_audio_mixer),
6170 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6171 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6172 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6173 msm_routing_put_audio_mixer),
6174 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6175 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6176 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6177 msm_routing_put_audio_mixer),
6178 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6179 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6180 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6181 msm_routing_put_audio_mixer),
6182 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6183 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6184 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6185 msm_routing_put_audio_mixer),
6186 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6187 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6188 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6189 msm_routing_put_audio_mixer),
6190 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6191 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6192 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6193 msm_routing_put_audio_mixer),
6194 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6195 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6196 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6197 msm_routing_put_audio_mixer),
6198 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6199 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6200 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6201 msm_routing_put_audio_mixer),
6202 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6203 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6204 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6205 msm_routing_put_audio_mixer),
6206 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6207 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6208 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6209 msm_routing_put_audio_mixer),
6210 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6211 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6212 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6213 msm_routing_put_audio_mixer),
6214 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6215 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6216 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6217 msm_routing_put_audio_mixer),
6218 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6219 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6220 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6221 msm_routing_put_audio_mixer),
6222 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6223 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6224 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6225 msm_routing_put_audio_mixer),
6226 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6227 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6228 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6229 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306230 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6231 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
6232 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6233 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05306234};
6235
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306236static const struct snd_kcontrol_new rx_cdc_dma_rx_0_mixer_controls[] = {
6237 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6238 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6239 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6240 msm_routing_put_audio_mixer),
6241 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6242 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6243 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6244 msm_routing_put_audio_mixer),
6245 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6246 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6247 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6248 msm_routing_put_audio_mixer),
6249 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6250 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6251 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6252 msm_routing_put_audio_mixer),
6253 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6254 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6255 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6256 msm_routing_put_audio_mixer),
6257 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6258 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6259 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6260 msm_routing_put_audio_mixer),
6261 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6262 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6263 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6264 msm_routing_put_audio_mixer),
6265 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6266 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6267 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6268 msm_routing_put_audio_mixer),
6269 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6270 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6271 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6272 msm_routing_put_audio_mixer),
6273 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6274 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6275 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6276 msm_routing_put_audio_mixer),
6277 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6278 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6279 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6280 msm_routing_put_audio_mixer),
6281 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6282 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6283 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6284 msm_routing_put_audio_mixer),
6285 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6286 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6287 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6288 msm_routing_put_audio_mixer),
6289 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6290 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6291 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6292 msm_routing_put_audio_mixer),
6293 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6294 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6295 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6296 msm_routing_put_audio_mixer),
6297 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6298 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6299 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6300 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306301 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6302 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6303 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6304 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306305};
6306
6307static const struct snd_kcontrol_new rx_cdc_dma_rx_1_mixer_controls[] = {
6308 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6309 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6310 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6311 msm_routing_put_audio_mixer),
6312 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6313 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6314 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6315 msm_routing_put_audio_mixer),
6316 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6317 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6318 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6319 msm_routing_put_audio_mixer),
6320 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6321 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6322 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6323 msm_routing_put_audio_mixer),
6324 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6325 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6326 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6327 msm_routing_put_audio_mixer),
6328 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6329 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6330 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6331 msm_routing_put_audio_mixer),
6332 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6333 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6334 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6335 msm_routing_put_audio_mixer),
6336 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6337 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6338 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6339 msm_routing_put_audio_mixer),
6340 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6341 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6342 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6343 msm_routing_put_audio_mixer),
6344 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6345 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6346 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6347 msm_routing_put_audio_mixer),
6348 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6349 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6350 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6351 msm_routing_put_audio_mixer),
6352 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6353 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6354 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6355 msm_routing_put_audio_mixer),
6356 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6357 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6358 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6359 msm_routing_put_audio_mixer),
6360 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6361 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6362 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6363 msm_routing_put_audio_mixer),
6364 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6365 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6366 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6367 msm_routing_put_audio_mixer),
6368 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6369 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6370 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6371 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306372 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6373 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6374 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6375 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306376};
6377
6378static const struct snd_kcontrol_new rx_cdc_dma_rx_2_mixer_controls[] = {
6379 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6380 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6381 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6382 msm_routing_put_audio_mixer),
6383 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6384 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6385 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6386 msm_routing_put_audio_mixer),
6387 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6388 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6389 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6390 msm_routing_put_audio_mixer),
6391 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6392 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6393 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6394 msm_routing_put_audio_mixer),
6395 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6396 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6397 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6398 msm_routing_put_audio_mixer),
6399 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6400 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6401 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6402 msm_routing_put_audio_mixer),
6403 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6404 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6405 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6406 msm_routing_put_audio_mixer),
6407 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6408 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6409 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6410 msm_routing_put_audio_mixer),
6411 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6412 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6413 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6414 msm_routing_put_audio_mixer),
6415 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6416 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6417 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6418 msm_routing_put_audio_mixer),
6419 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6420 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6421 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6422 msm_routing_put_audio_mixer),
6423 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6424 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6425 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6426 msm_routing_put_audio_mixer),
6427 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6428 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6429 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6430 msm_routing_put_audio_mixer),
6431 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6432 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6433 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6434 msm_routing_put_audio_mixer),
6435 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6436 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6437 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6438 msm_routing_put_audio_mixer),
6439 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6440 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6441 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6442 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306443 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6444 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6445 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6446 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306447};
6448
6449static const struct snd_kcontrol_new rx_cdc_dma_rx_3_mixer_controls[] = {
6450 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6451 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6452 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6453 msm_routing_put_audio_mixer),
6454 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6455 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6456 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6457 msm_routing_put_audio_mixer),
6458 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6459 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6460 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6461 msm_routing_put_audio_mixer),
6462 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6463 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6464 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6465 msm_routing_put_audio_mixer),
6466 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6467 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6468 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6469 msm_routing_put_audio_mixer),
6470 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6471 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6472 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6473 msm_routing_put_audio_mixer),
6474 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6475 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6476 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6477 msm_routing_put_audio_mixer),
6478 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6479 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6480 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6481 msm_routing_put_audio_mixer),
6482 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6483 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6484 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6485 msm_routing_put_audio_mixer),
6486 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6487 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6488 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6489 msm_routing_put_audio_mixer),
6490 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6491 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6492 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6493 msm_routing_put_audio_mixer),
6494 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6495 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6496 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6497 msm_routing_put_audio_mixer),
6498 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6499 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6500 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6501 msm_routing_put_audio_mixer),
6502 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6503 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6504 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6505 msm_routing_put_audio_mixer),
6506 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6507 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6508 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6509 msm_routing_put_audio_mixer),
6510 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6511 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6512 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6513 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306514 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6515 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6516 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6517 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306518};
6519
6520static const struct snd_kcontrol_new rx_cdc_dma_rx_4_mixer_controls[] = {
6521 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6522 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6523 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6524 msm_routing_put_audio_mixer),
6525 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6526 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6527 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6528 msm_routing_put_audio_mixer),
6529 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6530 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6531 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6532 msm_routing_put_audio_mixer),
6533 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6534 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6535 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6536 msm_routing_put_audio_mixer),
6537 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6538 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6539 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6540 msm_routing_put_audio_mixer),
6541 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6542 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6543 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6544 msm_routing_put_audio_mixer),
6545 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6546 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6547 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6548 msm_routing_put_audio_mixer),
6549 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6550 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6551 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6552 msm_routing_put_audio_mixer),
6553 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6554 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6555 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6556 msm_routing_put_audio_mixer),
6557 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6558 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6559 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6560 msm_routing_put_audio_mixer),
6561 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6562 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6563 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6564 msm_routing_put_audio_mixer),
6565 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6566 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6567 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6568 msm_routing_put_audio_mixer),
6569 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6570 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6571 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6572 msm_routing_put_audio_mixer),
6573 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6574 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6575 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6576 msm_routing_put_audio_mixer),
6577 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6578 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6579 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6580 msm_routing_put_audio_mixer),
6581 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6582 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6583 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6584 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306585 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6586 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6587 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6588 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306589};
6590
6591static const struct snd_kcontrol_new rx_cdc_dma_rx_5_mixer_controls[] = {
6592 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6593 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6594 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6595 msm_routing_put_audio_mixer),
6596 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6597 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6598 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6599 msm_routing_put_audio_mixer),
6600 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6601 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6602 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6603 msm_routing_put_audio_mixer),
6604 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6605 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6606 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6607 msm_routing_put_audio_mixer),
6608 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6609 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6610 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6611 msm_routing_put_audio_mixer),
6612 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6613 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6614 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6615 msm_routing_put_audio_mixer),
6616 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6617 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6618 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6619 msm_routing_put_audio_mixer),
6620 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6621 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6622 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6623 msm_routing_put_audio_mixer),
6624 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6625 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6626 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6627 msm_routing_put_audio_mixer),
6628 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6629 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6630 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6631 msm_routing_put_audio_mixer),
6632 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6633 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6634 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6635 msm_routing_put_audio_mixer),
6636 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6637 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6638 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6639 msm_routing_put_audio_mixer),
6640 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6641 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6642 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6643 msm_routing_put_audio_mixer),
6644 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6645 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6646 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6647 msm_routing_put_audio_mixer),
6648 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6649 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6650 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6651 msm_routing_put_audio_mixer),
6652 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6653 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6654 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6655 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306656 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6657 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6658 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6659 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306660};
6661
6662static const struct snd_kcontrol_new rx_cdc_dma_rx_6_mixer_controls[] = {
6663 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6664 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6665 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6666 msm_routing_put_audio_mixer),
6667 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6668 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6669 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6670 msm_routing_put_audio_mixer),
6671 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6672 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6673 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6674 msm_routing_put_audio_mixer),
6675 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6676 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6677 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6678 msm_routing_put_audio_mixer),
6679 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6680 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6681 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6682 msm_routing_put_audio_mixer),
6683 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6684 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6685 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6686 msm_routing_put_audio_mixer),
6687 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6688 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6689 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6690 msm_routing_put_audio_mixer),
6691 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6692 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6693 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6694 msm_routing_put_audio_mixer),
6695 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6696 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6697 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6698 msm_routing_put_audio_mixer),
6699 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6700 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6701 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6702 msm_routing_put_audio_mixer),
6703 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6704 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6705 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6706 msm_routing_put_audio_mixer),
6707 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6708 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6709 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6710 msm_routing_put_audio_mixer),
6711 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6712 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6713 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6714 msm_routing_put_audio_mixer),
6715 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6716 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6717 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6718 msm_routing_put_audio_mixer),
6719 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6720 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6721 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6722 msm_routing_put_audio_mixer),
6723 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6724 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6725 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6726 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306727 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6728 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6729 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6730 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306731};
6732
6733static const struct snd_kcontrol_new rx_cdc_dma_rx_7_mixer_controls[] = {
6734 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6735 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6736 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6737 msm_routing_put_audio_mixer),
6738 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6739 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6740 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6741 msm_routing_put_audio_mixer),
6742 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6743 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6744 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6745 msm_routing_put_audio_mixer),
6746 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6747 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6748 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6749 msm_routing_put_audio_mixer),
6750 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6751 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6752 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6753 msm_routing_put_audio_mixer),
6754 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6755 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6756 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6757 msm_routing_put_audio_mixer),
6758 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6759 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6760 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6761 msm_routing_put_audio_mixer),
6762 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6763 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6764 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6765 msm_routing_put_audio_mixer),
6766 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6767 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6768 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6769 msm_routing_put_audio_mixer),
6770 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6771 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6772 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6773 msm_routing_put_audio_mixer),
6774 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6775 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6776 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6777 msm_routing_put_audio_mixer),
6778 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6779 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6780 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6781 msm_routing_put_audio_mixer),
6782 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6783 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6784 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6785 msm_routing_put_audio_mixer),
6786 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6787 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6788 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6789 msm_routing_put_audio_mixer),
6790 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6791 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6792 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6793 msm_routing_put_audio_mixer),
6794 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6795 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6796 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6797 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306798 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6799 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6800 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6801 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306802};
6803
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306804static const struct snd_kcontrol_new slimbus_7_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006805 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6806 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306807 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006809 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6810 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306811 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006813 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6814 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306815 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006817 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6818 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306819 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006821 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6822 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306823 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006825 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6826 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306827 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006829 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6830 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306831 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006833 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6834 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306835 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006837 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6838 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306839 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006841 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6842 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306843 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006845 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6846 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306847 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006849 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6850 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306851 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006853 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6854 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306855 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006857 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6858 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306859 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006861 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6862 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306863 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006865 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6866 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306867 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6868 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306869 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6870 MSM_BACKEND_DAI_SLIMBUS_7_RX,
6871 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6872 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306873};
6874
Surendar Karka3ef3d812018-09-28 18:52:35 +05306875static const struct snd_kcontrol_new slimbus_9_rx_mixer_controls[] = {
6876 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6877 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6878 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6879 msm_routing_put_audio_mixer),
6880 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6881 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6882 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6883 msm_routing_put_audio_mixer),
6884 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6885 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6886 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6887 msm_routing_put_audio_mixer),
6888 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6889 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6890 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6891 msm_routing_put_audio_mixer),
6892 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6893 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6894 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6895 msm_routing_put_audio_mixer),
6896 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6897 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6898 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6899 msm_routing_put_audio_mixer),
6900 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6901 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6902 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6903 msm_routing_put_audio_mixer),
6904 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6905 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6906 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6907 msm_routing_put_audio_mixer),
6908 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6909 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6910 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6911 msm_routing_put_audio_mixer),
6912 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6913 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6914 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6915 msm_routing_put_audio_mixer),
6916 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6917 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6918 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6919 msm_routing_put_audio_mixer),
6920 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6921 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6922 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6923 msm_routing_put_audio_mixer),
6924 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6925 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6926 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6927 msm_routing_put_audio_mixer),
6928 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6929 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6930 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6931 msm_routing_put_audio_mixer),
6932 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6933 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6934 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6935 msm_routing_put_audio_mixer),
6936 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6937 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6938 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6939 msm_routing_put_audio_mixer),
6940 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6941 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6942 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6943 msm_routing_put_audio_mixer),
6944};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306945static const struct snd_kcontrol_new usb_audio_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006946 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6947 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306948 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006950 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6951 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306952 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006954 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6955 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306956 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6957 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006958 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6959 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306960 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006962 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6963 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306964 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006966 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6967 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306968 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006970 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6971 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306972 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006974 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6975 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306976 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006978 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6979 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306980 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006982 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6983 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306984 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6985 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006986 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6987 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306988 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006990 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6991 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306992 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006994 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6995 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306996 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6997 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006998 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6999 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307000 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7001 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007002 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7003 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307004 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007006 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7007 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307008 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7009 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307010 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7011 MSM_BACKEND_DAI_USB_RX,
7012 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7013 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307014};
7015
7016static const struct snd_kcontrol_new int_bt_sco_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007017 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7018 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307019 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007021 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7022 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307023 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007025 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7026 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307027 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7028 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007029 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7030 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307031 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7032 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007033 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7034 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307035 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7036 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007037 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7038 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307039 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7040 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007041 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7042 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307043 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7044 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007045 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7046 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307047 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7048 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007049 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7050 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307051 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7052 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007053 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7054 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307055 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7056 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007057 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7058 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307059 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7060 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007061 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7062 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307063 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7064 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007065 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7066 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307067 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7068 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007069 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7070 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307071 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7072 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007073 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7074 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307075 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7076 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007077 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7078 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307079 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007081 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7082 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307083 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007085 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7086 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307087 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007089 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7090 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307091 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7092 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307093 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7094 MSM_BACKEND_DAI_INT_BT_SCO_RX,
7095 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007097 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7098 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307099 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7100 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007101 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7102 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307103 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7104 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307105};
7106
7107static const struct snd_kcontrol_new int_bt_a2dp_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007108 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7109 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307110 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007112 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7113 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307114 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007116 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7117 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307118 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7119 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007120 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7121 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307122 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7123 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007124 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7125 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307126 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7127 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007128 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7129 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307130 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7131 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007132 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7133 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307134 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7135 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007136 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7137 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307138 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7139 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007140 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7141 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307142 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7143 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007144 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7145 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307146 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7147 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007148 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7149 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307150 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7151 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007152 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7153 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307154 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7155 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007156 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7157 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307158 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7159 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007160 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7161 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307162 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007164 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7165 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307166 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7167 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007168 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7169 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307170 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7171 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307172 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7173 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
7174 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7175 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307176};
7177
7178static const struct snd_kcontrol_new int_fm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007179 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7180 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307181 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007183 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7184 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307185 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007187 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7188 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307189 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007191 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7192 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307193 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007195 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7196 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307197 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007199 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7200 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307201 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7202 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007203 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7204 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307205 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007207 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7208 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307209 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7210 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007211 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7212 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307213 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7214 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007215 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7216 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307217 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7218 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007219 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7220 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307221 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007223 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7224 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307225 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007227 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7228 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307229 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007231 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7232 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307233 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007235 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7236 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307237 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007239 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7240 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307241 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007243 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7244 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307245 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007247 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7248 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307249 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7250 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007251 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7252 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307253 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7254 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307255 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7256 MSM_BACKEND_DAI_INT_FM_RX,
7257 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7258 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007259 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7260 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307261 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007263 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7264 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307265 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7266 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307267};
7268
7269static const struct snd_kcontrol_new afe_pcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007270 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7271 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307272 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7273 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007274 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7275 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307276 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7277 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007278 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7279 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307280 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7281 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007282 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7283 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307284 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007286 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7287 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307288 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7289 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007290 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7291 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307292 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007294 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7295 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307296 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007298 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7299 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307300 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007302 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7303 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307304 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007306 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7307 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307308 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007310 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7311 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307312 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007314 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7315 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307316 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007318 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7319 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307320 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007322 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7323 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307324 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007326 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7327 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307328 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007330 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7331 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307332 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007334 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7335 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307336 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007338 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7339 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307340 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007342 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7343 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307344 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7345 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307346 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7347 MSM_BACKEND_DAI_AFE_PCM_RX,
7348 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007350 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7351 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307352 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007354 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7355 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307356 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7357 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307358};
7359
7360static const struct snd_kcontrol_new auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007361 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7362 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307363 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007365 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7366 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307367 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007369 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7370 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307371 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007373 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7374 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307375 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007377 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7378 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307379 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007381 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7382 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307383 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007385 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7386 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307387 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007389 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7390 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307391 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007393 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7394 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307395 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007397 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7398 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307399 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007401 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7402 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307403 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007405 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7406 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307407 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007409 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7410 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307411 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7412 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007413 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7414 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307415 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7416 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007417 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7418 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307419 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7420 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007421 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7422 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307423 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7424 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007425 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7426 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307427 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7428 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007429 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7430 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307431 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7432 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007433 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7434 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307435 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7436 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007437 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7438 MSM_BACKEND_DAI_AUXPCM_RX,
7439 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7440 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307441 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7442 MSM_BACKEND_DAI_AUXPCM_RX,
7443 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7444 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007445 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7446 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307447 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7448 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007449 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7450 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307451 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7452 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307453};
7454
7455static const struct snd_kcontrol_new sec_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007456 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7457 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307458 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7459 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007460 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7461 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307462 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7463 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007464 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7465 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307466 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007468 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7469 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307470 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007472 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7473 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307474 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7475 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007476 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7477 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307478 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007480 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7481 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307482 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7483 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007484 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7485 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307486 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7487 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007488 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7489 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307490 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7491 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007492 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7493 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307494 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007496 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7497 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307498 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7499 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007500 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7501 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307502 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7503 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007504 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7505 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307506 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7507 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007508 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7509 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307510 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7511 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007512 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7513 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307514 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7515 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007516 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7517 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307518 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7519 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007520 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7521 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307522 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7523 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007524 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7525 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307526 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7527 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007528 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7529 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307530 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7531 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007532 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7533 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
7534 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7535 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307536 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7537 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
7538 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7539 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007540 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7541 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307542 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007544 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7545 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307546 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7547 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307548};
7549
7550static const struct snd_kcontrol_new tert_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007551 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7552 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307553 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7554 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007555 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7556 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307557 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007559 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7560 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307561 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007563 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7564 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307565 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007567 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7568 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307569 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007571 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7572 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307573 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007575 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7576 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307577 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007579 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7580 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307581 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007583 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7584 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307585 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007587 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7588 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307589 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007591 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7592 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307593 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007595 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7596 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307597 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007599 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7600 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307601 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7602 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007603 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7604 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307605 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007607 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7608 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307609 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007611 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7612 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307613 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7614 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307615 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7616 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
7617 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7618 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307619};
7620
7621static const struct snd_kcontrol_new quat_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007622 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7623 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307624 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007626 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7627 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307628 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007630 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7631 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307632 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007634 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7635 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307636 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007638 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7639 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307640 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007642 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7643 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307644 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007646 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7647 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307648 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007650 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7651 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307652 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007654 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7655 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307656 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007658 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7659 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307660 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007662 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7663 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307664 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7665 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007666 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7667 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307668 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007670 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7671 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307672 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007674 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7675 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307676 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007678 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7679 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307680 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007682 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7683 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307684 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7685 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307686 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7687 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
7688 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7689 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307690};
7691
Rohit Kumara5077932017-09-10 22:05:05 +05307692static const struct snd_kcontrol_new quin_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007693 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7694 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307695 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007697 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7698 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307699 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007701 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7702 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307703 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007705 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7706 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307707 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007709 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7710 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307711 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007713 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7714 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307715 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007717 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7718 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307719 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007721 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7722 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307723 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7724 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007725 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7726 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307727 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007729 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7730 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307731 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007733 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7734 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307735 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007737 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7738 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307739 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007741 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7742 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307743 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007745 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7746 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307747 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007749 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7750 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307751 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7752 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007753 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7754 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307755 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7756 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307757 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7758 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
7759 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7760 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05307761};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307762static const struct snd_kcontrol_new pri_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007763 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7764 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307765 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7766 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007767 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7768 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307769 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7770 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007771 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7772 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307773 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007775 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7776 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307777 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007779 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7780 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307781 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007783 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7784 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307785 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007787 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7788 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307789 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007791 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7792 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307793 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007795 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7796 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307797 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007799 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7800 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307801 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007803 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7804 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307805 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007807 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7808 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307809 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007811 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7812 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307813 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007815 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7816 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307817 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007819 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7820 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307821 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007823 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7824 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307825 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7826 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007827 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7828 MSM_BACKEND_DAI_PRI_TDM_RX_0,
7829 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7830 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307831};
7832
7833static const struct snd_kcontrol_new pri_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007834 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7835 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307836 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7837 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007838 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7839 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307840 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7841 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007842 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7843 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307844 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7845 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007846 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7847 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307848 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7849 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007850 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7851 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307852 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7853 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007854 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7855 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307856 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7857 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007858 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7859 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307860 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7861 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007862 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7863 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307864 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7865 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007866 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7867 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307868 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7869 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007870 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7871 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307872 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007874 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7875 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307876 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007878 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7879 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307880 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007882 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7883 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307884 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007886 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7887 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307888 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007890 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7891 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307892 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007894 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7895 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307896 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7897 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007898 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7899 MSM_BACKEND_DAI_PRI_TDM_RX_1,
7900 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7901 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307902};
7903
7904static const struct snd_kcontrol_new pri_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007905 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7906 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307907 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7908 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007909 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7910 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307911 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7912 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007913 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7914 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307915 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7916 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007917 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7918 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307919 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007921 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7922 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307923 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7924 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007925 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7926 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307927 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7928 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007929 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7930 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307931 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7932 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007933 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7934 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307935 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7936 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007937 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7938 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307939 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7940 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007941 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7942 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307943 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7944 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007945 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7946 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307947 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7948 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007949 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7950 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307951 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7952 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007953 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7954 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307955 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7956 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007957 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7958 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307959 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7960 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007961 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7962 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307963 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7964 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007965 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7966 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307967 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7968 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007969 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7970 MSM_BACKEND_DAI_PRI_TDM_RX_2,
7971 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7972 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307973};
7974
7975static const struct snd_kcontrol_new pri_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007976 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7977 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307978 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007980 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7981 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307982 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007984 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7985 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307986 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007988 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7989 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307990 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007992 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7993 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307994 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007996 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7997 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307998 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008000 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8001 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308002 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008004 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8005 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308006 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008008 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8009 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308010 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008012 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8013 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308014 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008016 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8017 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308018 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008020 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8021 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308022 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008024 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8025 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308026 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008028 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8029 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308030 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008032 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8033 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308034 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008036 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8037 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308038 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8039 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008040 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8041 MSM_BACKEND_DAI_PRI_TDM_RX_3,
8042 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8043 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308044};
8045
8046static const struct snd_kcontrol_new pri_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008047 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8048 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308049 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8050 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008051 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8052 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308053 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8054 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008055 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8056 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308057 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8058 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008059 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8060 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308061 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008063 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8064 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308065 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8066 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008067 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8068 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308069 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8070 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008071 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8072 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308073 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8074 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008075 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8076 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308077 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8078 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008079 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8080 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308081 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008083 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8084 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308085 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008087 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8088 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308089 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008091 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8092 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308093 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008095 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8096 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308097 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008099 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8100 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308101 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008103 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8104 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308105 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008107 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8108 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308109 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8110 msm_routing_put_audio_mixer),
8111};
8112
8113static const struct snd_kcontrol_new sec_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008114 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8115 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308116 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008118 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8119 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308120 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008122 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8123 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308124 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008126 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8127 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308128 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008130 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8131 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308132 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008134 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8135 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308136 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8137 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008138 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8139 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308140 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8141 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008142 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8143 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308144 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8145 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008146 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8147 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308148 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8149 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008150 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8151 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308152 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8153 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008154 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8155 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308156 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008158 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8159 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308160 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008162 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8163 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308164 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008166 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8167 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308168 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008170 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8171 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308172 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008174 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8175 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308176 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8177 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008178 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8179 MSM_BACKEND_DAI_SEC_TDM_RX_0,
8180 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8181 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308182};
8183
8184static const struct snd_kcontrol_new sec_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008185 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8186 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308187 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008189 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8190 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308191 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008193 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8194 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308195 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008197 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8198 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308199 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008201 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8202 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308203 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008205 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8206 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308207 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008209 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8210 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308211 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008213 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8214 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308215 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008217 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8218 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308219 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008221 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8222 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308223 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008225 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8226 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308227 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008229 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8230 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308231 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008233 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8234 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308235 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008237 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8238 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308239 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008241 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8242 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308243 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8244 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008245 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8246 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308247 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8248 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008249 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8250 MSM_BACKEND_DAI_SEC_TDM_RX_1,
8251 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8252 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308253};
8254
8255static const struct snd_kcontrol_new sec_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008256 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8257 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308258 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8259 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008260 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8261 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308262 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008264 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8265 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308266 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008268 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8269 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308270 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8271 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008272 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8273 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308274 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8275 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008276 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8277 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308278 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8279 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008280 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8281 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308282 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008284 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8285 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308286 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008288 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8289 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308290 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8291 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008292 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8293 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308294 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8295 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008296 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8297 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308298 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008300 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8301 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308302 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008304 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8305 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308306 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8307 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008308 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8309 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308310 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8311 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008312 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8313 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308314 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008316 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8317 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308318 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8319 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008320 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8321 MSM_BACKEND_DAI_SEC_TDM_RX_2,
8322 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8323 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308324};
8325
8326static const struct snd_kcontrol_new sec_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008327 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8328 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308329 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8330 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008331 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8332 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308333 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8334 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008335 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8336 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308337 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8338 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008339 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8340 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308341 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008343 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8344 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308345 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008347 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8348 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308349 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008351 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8352 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308353 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008355 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8356 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308357 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8358 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008359 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8360 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308361 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008363 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8364 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308365 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008367 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8368 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308369 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008371 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8372 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308373 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008375 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8376 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308377 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008379 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8380 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308381 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008383 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8384 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308385 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008387 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8388 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308389 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8390 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008391 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8392 MSM_BACKEND_DAI_SEC_TDM_RX_3,
8393 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8394 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308395};
8396
8397static const struct snd_kcontrol_new sec_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008398 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8399 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308400 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8401 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008402 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8403 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308404 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8405 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008406 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8407 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308408 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008410 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8411 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308412 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008414 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8415 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308416 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8417 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008418 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8419 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308420 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008422 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8423 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308424 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8425 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008426 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8427 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308428 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8429 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008430 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8431 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308432 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8433 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008434 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8435 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308436 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008438 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8439 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308440 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008442 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8443 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308444 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008446 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8447 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308448 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008450 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8451 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308452 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008454 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8455 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308456 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008458 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8459 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308460 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8461 msm_routing_put_audio_mixer),
8462};
8463
8464static const struct snd_kcontrol_new tert_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008465 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8466 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308467 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8468 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008469 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8470 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308471 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008473 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8474 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308475 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008477 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8478 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308479 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008481 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8482 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308483 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008485 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8486 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308487 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008489 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8490 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308491 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008493 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8494 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308495 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008497 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8498 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308499 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008501 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8502 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308503 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008505 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8506 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308507 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008509 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8510 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308511 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008513 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8514 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308515 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008517 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8518 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308519 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008521 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8522 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308523 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008525 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8526 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308527 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8528 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008529 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8530 MSM_BACKEND_DAI_TERT_TDM_RX_0,
8531 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8532 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308533};
8534
8535static const struct snd_kcontrol_new tert_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008536 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8537 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308538 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8539 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008540 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8541 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308542 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008544 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8545 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308546 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008548 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8549 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308550 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008552 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8553 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308554 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008556 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8557 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308558 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008560 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8561 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308562 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008564 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8565 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308566 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008568 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8569 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308570 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008572 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8573 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308574 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008576 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8577 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308578 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008580 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8581 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308582 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008584 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8585 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308586 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008588 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8589 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308590 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008592 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8593 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308594 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008596 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8597 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308598 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8599 msm_routing_put_audio_mixer),
8600};
8601
8602static const struct snd_kcontrol_new tert_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008603 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8604 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308605 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008607 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8608 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308609 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008611 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8612 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308613 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008615 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8616 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308617 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008619 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8620 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308621 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8622 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008623 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8624 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308625 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008627 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8628 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308629 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8630 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008631 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8632 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308633 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8634 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008635 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8636 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308637 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008639 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8640 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308641 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008643 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8644 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308645 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008647 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8648 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308649 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008651 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8652 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308653 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008655 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8656 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308657 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008659 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8660 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308661 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008663 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8664 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308665 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8666 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008667 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8668 MSM_BACKEND_DAI_TERT_TDM_RX_1,
8669 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8670 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308671};
8672
8673static const struct snd_kcontrol_new tert_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008674 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8675 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308676 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008678 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8679 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308680 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008682 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8683 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308684 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008686 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8687 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308688 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008690 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8691 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308692 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008694 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8695 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308696 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008698 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8699 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308700 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008702 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8703 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308704 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8705 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008706 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8707 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308708 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8709 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008710 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8711 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308712 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008714 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8715 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308716 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008718 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8719 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308720 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008722 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8723 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308724 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008726 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8727 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308728 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8729 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008730 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8731 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308732 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008734 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8735 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308736 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8737 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008738 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8739 MSM_BACKEND_DAI_TERT_TDM_RX_2,
8740 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8741 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308742};
8743
8744static const struct snd_kcontrol_new tert_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008745 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8746 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308747 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008749 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8750 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308751 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8752 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008753 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8754 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308755 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8756 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008757 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8758 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308759 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8760 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008761 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8762 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308763 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8764 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008765 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8766 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308767 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8768 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008769 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8770 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308771 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8772 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008773 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8774 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308775 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008777 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8778 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308779 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008781 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8782 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308783 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008785 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8786 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308787 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008789 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8790 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308791 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008793 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8794 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308795 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008797 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8798 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308799 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008801 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8802 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308803 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008805 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8806 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308807 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8808 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008809 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8810 MSM_BACKEND_DAI_TERT_TDM_RX_3,
8811 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8812 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308813};
8814
8815static const struct snd_kcontrol_new tert_tdm_rx_4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008816 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8817 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308818 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8819 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008820 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8821 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308822 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8823 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008824 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8825 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308826 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008828 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8829 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308830 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008832 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8833 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308834 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8835 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008836 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8837 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308838 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8839 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008840 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8841 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308842 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8843 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008844 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8845 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308846 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8847 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008848 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8849 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308850 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8851 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008852 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8853 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308854 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008856 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8857 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308858 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008860 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8861 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308862 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008864 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8865 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308866 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008868 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8869 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308870 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008872 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8873 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308874 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008876 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8877 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308878 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8879 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008880 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8881 MSM_BACKEND_DAI_TERT_TDM_RX_4,
8882 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8883 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308884};
8885
8886static const struct snd_kcontrol_new quat_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008887 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8888 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308889 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8890 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008891 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8892 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308893 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008895 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8896 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308897 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8898 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008899 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8900 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308901 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8902 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008903 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8904 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308905 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8906 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008907 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8908 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308909 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008911 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8912 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308913 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008915 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8916 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308917 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8918 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008919 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8920 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308921 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8922 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008923 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8924 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308925 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8926 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008927 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8928 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308929 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8930 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008931 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8932 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308933 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8934 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008935 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8936 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308937 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8938 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008939 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8940 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308941 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8942 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008943 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8944 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308945 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8946 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008947 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8948 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308949 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8950 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008951 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8952 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308953 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8954 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008955 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8956 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
8957 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8958 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308959};
8960
8961static const struct snd_kcontrol_new quat_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008962 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8963 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308964 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008966 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8967 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308968 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008970 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8971 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308972 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008974 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8975 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308976 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008978 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8979 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308980 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008982 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8983 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308984 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8985 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008986 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8987 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308988 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008990 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8991 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308992 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008994 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8995 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308996 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8997 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008998 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8999 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309000 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9001 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009002 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9003 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309004 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009006 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9007 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309008 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9009 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009010 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9011 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309012 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9013 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009014 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9015 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309016 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9017 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009018 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9019 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309020 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9021 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009022 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9023 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309024 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9025 msm_routing_put_audio_mixer),
9026};
9027
9028static const struct snd_kcontrol_new quat_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009029 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9030 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309031 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9032 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009033 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9034 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309035 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9036 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009037 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9038 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309039 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9040 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009041 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9042 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309043 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9044 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009045 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9046 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309047 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9048 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009049 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9050 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309051 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9052 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009053 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9054 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309055 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9056 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009057 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9058 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309059 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9060 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009061 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9062 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309063 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9064 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009065 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9066 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309067 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9068 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009069 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9070 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309071 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9072 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009073 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9074 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309075 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9076 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009077 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9078 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309079 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009081 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9082 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309083 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009085 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9086 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309087 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009089 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9090 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309091 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009093 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9094 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309095 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9096 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009097 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9098 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
9099 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9100 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309101};
9102
9103static const struct snd_kcontrol_new quat_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009104 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9105 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309106 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009108 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9109 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309110 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009112 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9113 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309114 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009116 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9117 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309118 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9119 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009120 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9121 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309122 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9123 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009124 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9125 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309126 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9127 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009128 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9129 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309130 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9131 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009132 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9133 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309134 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9135 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009136 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9137 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309138 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9139 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009140 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9141 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309142 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9143 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009144 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9145 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309146 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9147 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009148 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9149 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309150 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9151 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009152 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9153 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309154 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9155 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009156 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9157 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309158 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9159 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009160 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9161 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309162 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009164 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9165 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309166 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9167 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009168 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9169 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309170 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9171 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009172 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9173 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
9174 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9175 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309176};
9177
9178static const struct snd_kcontrol_new quat_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009179 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9180 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309181 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009183 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9184 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309185 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009187 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9188 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309189 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009191 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9192 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309193 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009195 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9196 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309197 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009199 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9200 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309201 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9202 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009203 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9204 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309205 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009207 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9208 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309209 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9210 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009211 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9212 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309213 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9214 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009215 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9216 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309217 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9218 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009219 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9220 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309221 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009223 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9224 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309225 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009227 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9228 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309229 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009231 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9232 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309233 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009235 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9236 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309237 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009239 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9240 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309241 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009243 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9244 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309245 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9246 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009247 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9248 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
9249 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9250 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309251};
9252
Rohit Kumara5077932017-09-10 22:05:05 +05309253static const struct snd_kcontrol_new quin_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009254 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9255 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309256 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9257 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009258 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9259 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309260 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9261 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009262 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9263 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309264 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9265 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009266 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9267 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309268 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9269 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009270 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9271 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309272 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9273 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009274 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9275 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309276 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9277 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009278 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9279 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309280 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9281 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009282 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9283 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309284 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009286 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9287 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309288 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9289 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009290 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9291 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309292 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009294 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9295 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309296 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009298 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9299 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309300 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009302 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9303 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309304 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009306 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9307 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309308 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009310 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9311 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309312 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009314 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9315 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309316 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009318 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9319 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309320 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9321 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009322 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9323 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
9324 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9325 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309326};
9327
9328static const struct snd_kcontrol_new quin_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009329 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9330 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309331 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9332 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009333 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9334 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309335 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009337 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9338 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309339 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9340 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009341 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9342 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309343 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9344 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009345 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9346 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309347 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009349 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9350 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309351 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009353 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9354 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309355 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009357 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9358 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309359 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009361 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9362 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309363 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009365 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9366 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309367 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009369 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9370 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309371 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009373 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9374 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309375 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009377 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9378 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309379 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009381 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9382 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309383 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009385 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9386 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309387 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009389 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9390 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309391 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9392 msm_routing_put_audio_mixer),
9393};
9394
9395static const struct snd_kcontrol_new quin_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009396 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9397 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309398 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9399 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009400 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9401 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309402 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9403 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009404 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9405 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309406 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9407 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009408 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9409 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309410 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9411 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009412 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9413 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309414 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9415 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009416 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9417 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309418 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9419 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009420 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9421 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309422 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009424 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9425 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309426 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009428 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9429 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309430 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9431 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009432 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9433 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309434 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9435 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009436 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9437 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309438 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9439 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009440 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9441 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309442 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9443 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009444 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9445 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309446 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009448 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9449 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309450 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009452 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9453 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309454 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009456 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9457 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309458 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9459 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009460 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9461 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309462 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9463 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009464 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9465 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
9466 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9467 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309468};
9469
9470static const struct snd_kcontrol_new quin_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009471 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9472 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309473 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9474 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009475 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9476 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309477 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9478 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009479 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9480 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309481 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009483 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9484 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309485 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009487 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9488 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309489 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9490 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009491 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9492 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309493 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009495 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9496 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309497 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009499 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9500 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309501 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009503 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9504 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309505 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009507 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9508 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309509 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009511 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9512 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309513 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009515 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9516 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309517 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009519 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9520 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309521 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009523 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9524 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309525 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009527 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9528 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309529 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009531 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9532 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309533 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009535 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9536 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309537 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9538 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009539 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9540 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
9541 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9542 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309543};
9544
9545static const struct snd_kcontrol_new quin_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009546 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9547 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309548 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9549 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009550 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9551 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309552 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9553 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009554 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9555 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309556 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9557 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009558 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9559 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309560 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009562 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9563 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309564 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009566 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9567 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309568 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009570 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9571 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309572 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009574 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9575 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309576 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009578 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9579 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309580 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009582 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9583 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309584 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009586 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9587 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309588 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9589 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009590 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9591 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309592 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009594 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9595 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309596 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009598 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9599 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309600 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009602 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9603 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309604 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9605 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009606 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9607 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309608 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009610 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9611 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309612 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9613 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009614 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9615 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
9616 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9617 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309618};
9619
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309620static const struct snd_kcontrol_new mmul1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009621 SOC_DOUBLE_EXT("PRI_TX", SND_SOC_NOPM,
9622 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309623 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9624 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009625 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9626 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309627 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9628 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009629 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9630 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309631 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009633 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9634 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309635 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009637 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9638 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309639 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009641 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9642 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309643 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009645 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9646 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309647 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009649 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9650 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309651 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009653 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9654 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309655 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9656 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +05309657 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
9658 MSM_BACKEND_DAI_SLIMBUS_1_TX,
9659 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009661 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
9662 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309663 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9664 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009665 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
9666 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309667 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9668 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009669 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
9670 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309671 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009673 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
9674 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309675 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009677 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
9678 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309679 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009681 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9682 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309683 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009685 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9686 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309687 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009689 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9690 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309691 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009693 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9694 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309695 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009697 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9698 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309699 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009701 SOC_DOUBLE_EXT("SLIM_4_TX", SND_SOC_NOPM,
9702 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309703 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009705 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9706 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309707 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009709 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9710 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309711 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009713 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9714 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309715 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009717 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9718 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309719 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009721 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9722 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309723 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9724 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009725 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9726 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309727 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009729 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9730 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309731 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009733 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9734 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309735 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009737 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9738 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309739 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009741 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9742 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309743 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009745 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9746 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309747 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009749 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9750 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309751 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9752 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009753 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9754 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309755 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9756 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009757 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9758 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309759 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9760 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009761 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9762 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309763 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9764 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009765 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9766 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309767 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9768 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009769 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9770 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309771 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9772 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009773 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9774 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309775 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009777 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9778 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309779 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009781 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9782 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309783 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009785 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9786 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309787 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009789 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9790 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309791 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009793 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
9794 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309795 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009797 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
9798 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309799 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009801 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9802 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309803 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9804 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309805 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9806 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9807 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9808 msm_routing_put_audio_mixer),
9809 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9810 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9811 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9812 msm_routing_put_audio_mixer),
9813 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9814 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9815 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9816 msm_routing_put_audio_mixer),
9817 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9818 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9819 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9820 msm_routing_put_audio_mixer),
9821 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9822 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9823 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9824 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -08009825 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
9826 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
9827 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9828 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309829 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9830 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9831 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9832 msm_routing_put_audio_mixer),
9833 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9834 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9835 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9836 msm_routing_put_audio_mixer),
9837 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9838 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9839 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9840 msm_routing_put_audio_mixer),
9841 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9842 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9843 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9844 msm_routing_put_audio_mixer),
9845 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9846 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9847 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9848 msm_routing_put_audio_mixer),
9849 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9850 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9851 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9852 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009853 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9854 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9855 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9856 msm_routing_put_audio_mixer),
9857 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9858 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9859 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9860 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +05309861 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
9862 MSM_BACKEND_DAI_SLIMBUS_9_TX,
9863 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9864 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +05309865 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
9866 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
9867 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9868 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309869};
9870
9871static const struct snd_kcontrol_new mmul2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009872 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9873 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309874 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009876 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9877 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309878 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009880 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9881 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309882 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009884 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9885 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309886 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009888 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9889 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309890 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009892 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9893 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309894 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009896 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9897 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309898 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009900 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9901 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309902 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009904 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9905 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309906 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009908 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9909 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309910 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009912 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
9913 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309914 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009916 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9917 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309918 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009920 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9921 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309922 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009924 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9925 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309926 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009928 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9929 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309930 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9931 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009932 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9933 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309934 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009936 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9937 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309938 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009940 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9941 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309942 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009944 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9945 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309946 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9947 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009948 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9949 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309950 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9951 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009952 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9953 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309954 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009956 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9957 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309958 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009960 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9961 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309962 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9963 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009964 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9965 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309966 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9967 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009968 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9969 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309970 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9971 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009972 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9973 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309974 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009976 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9977 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309978 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009980 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9981 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309982 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009984 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9985 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309986 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009988 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9989 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309990 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009992 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9993 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309994 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009996 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9997 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309998 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010000 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
10001 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010002 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010004 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10005 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010006 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10007 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010008 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10009 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10010 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10011 msm_routing_put_audio_mixer),
10012 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10013 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10014 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10015 msm_routing_put_audio_mixer),
10016 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10017 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10018 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10019 msm_routing_put_audio_mixer),
10020 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10021 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10022 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10023 msm_routing_put_audio_mixer),
10024 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10025 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10026 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10027 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010028 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10029 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10030 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10031 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010032 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10033 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10034 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10035 msm_routing_put_audio_mixer),
10036 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10037 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10038 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10039 msm_routing_put_audio_mixer),
10040 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10041 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10042 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10043 msm_routing_put_audio_mixer),
10044 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10045 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10046 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10047 msm_routing_put_audio_mixer),
10048 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10049 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10050 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10051 msm_routing_put_audio_mixer),
10052 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10053 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10054 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10055 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010056 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10057 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10058 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10059 msm_routing_put_audio_mixer),
10060 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10061 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10062 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10063 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053010064 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
10065 MSM_BACKEND_DAI_SLIMBUS_9_TX,
10066 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10067 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010068 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10069 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10070 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10071 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010072};
10073
10074static const struct snd_kcontrol_new mmul3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010075 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10076 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010077 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10078 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053010079 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10080 MSM_BACKEND_DAI_SLIMBUS_1_TX,
10081 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010083 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10084 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010085 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010087 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10088 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010089 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010091 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10092 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010093 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010095 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10096 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010097 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010099 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
10100 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010101 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010103 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10104 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010105 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010107 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
10108 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010109 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10110 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010111 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
10112 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010113 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10114 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010115 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
10116 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010117 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10118 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010119 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10120 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010121 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10122 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010123 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10124 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010125 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10126 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010127 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10128 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010129 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010131 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10132 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010133 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010135 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10136 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010137 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010139 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10140 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010141 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010143 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10144 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010145 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010147 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10148 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010149 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010151 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10152 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010153 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010155 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10156 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010157 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010159 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10160 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010161 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010163 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10164 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010165 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010167 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10168 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010169 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010171 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10172 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010173 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010175 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10176 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010177 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010179 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10180 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010181 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010183 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10184 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010185 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010187 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10188 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010189 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010191 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10192 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010193 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010195 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10196 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010197 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010199 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10200 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010201 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10202 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010203 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10204 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010205 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010207 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10208 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010209 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10210 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010211 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10212 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010213 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10214 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010215 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10216 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10217 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10218 msm_routing_put_audio_mixer),
10219 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10220 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10221 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10222 msm_routing_put_audio_mixer),
10223 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10224 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10225 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10226 msm_routing_put_audio_mixer),
10227 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10228 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10229 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10230 msm_routing_put_audio_mixer),
10231 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10232 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10233 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10234 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010235 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10236 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10237 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10238 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010239 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10240 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10241 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10242 msm_routing_put_audio_mixer),
10243 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10244 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10245 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10246 msm_routing_put_audio_mixer),
10247 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10248 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10249 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10250 msm_routing_put_audio_mixer),
10251 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10252 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10253 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10254 msm_routing_put_audio_mixer),
10255 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10256 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10257 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10258 msm_routing_put_audio_mixer),
10259 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10260 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10261 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10262 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010263 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10264 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10265 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10266 msm_routing_put_audio_mixer),
10267 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10268 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10269 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10270 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010271 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10272 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10273 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10274 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010275};
10276
10277static const struct snd_kcontrol_new mmul4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010278 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10279 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010280 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10281 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053010282 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10283 MSM_BACKEND_DAI_SLIMBUS_1_TX,
10284 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010286 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10287 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010288 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10289 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010290 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10291 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010292 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010294 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10295 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010296 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010298 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10299 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010300 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010302 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10303 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010304 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010306 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10307 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010308 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010310 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10311 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010312 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010314 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10315 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010316 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010318 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10319 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010320 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010322 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10323 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010324 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010326 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10327 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010328 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010330 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10331 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010332 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010334 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10335 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010336 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010338 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10339 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010340 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010342 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10343 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010344 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010346 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10347 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010348 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010350 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10351 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010352 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010354 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10355 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010356 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010358 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10359 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010360 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010362 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10363 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010364 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010366 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10367 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010368 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010370 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10371 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010372 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010374 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10375 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010376 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10377 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010378 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10379 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010380 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10381 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010382 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10383 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010384 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10385 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010386 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10387 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010388 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10389 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010390 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10391 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010392 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10393 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010394 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10395 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010396 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010398 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10399 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010400 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10401 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010402 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10403 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010404 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10405 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010406 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10407 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010408 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010410 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10411 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010412 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10413 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010414 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10415 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10416 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10417 msm_routing_put_audio_mixer),
10418 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10419 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10420 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10421 msm_routing_put_audio_mixer),
10422 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10423 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10424 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10425 msm_routing_put_audio_mixer),
10426 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10427 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10428 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10429 msm_routing_put_audio_mixer),
10430 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10431 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10432 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10433 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010434 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10435 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10436 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10437 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010438 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10439 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10440 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10441 msm_routing_put_audio_mixer),
10442 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10443 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10444 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10445 msm_routing_put_audio_mixer),
10446 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10447 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10448 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10449 msm_routing_put_audio_mixer),
10450 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10451 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10452 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10453 msm_routing_put_audio_mixer),
10454 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10455 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10456 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10457 msm_routing_put_audio_mixer),
10458 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10459 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10460 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10461 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010462 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10463 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10464 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10465 msm_routing_put_audio_mixer),
10466 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10467 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10468 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10469 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010470 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10471 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10472 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10473 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010474};
10475
10476static const struct snd_kcontrol_new mmul5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010477 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10478 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010479 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10480 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053010481 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10482 MSM_BACKEND_DAI_SLIMBUS_1_TX,
10483 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010485 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10486 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010487 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010489 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10490 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010491 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010493 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10494 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010495 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010497 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10498 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010499 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010501 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10502 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010503 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010505 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10506 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010507 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010509 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
10510 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010511 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010513 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
10514 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010515 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010517 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
10518 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010519 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010521 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10522 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010523 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010525 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10526 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010527 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010529 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10530 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010531 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010533 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10534 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010535 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010537 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10538 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010539 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010541 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10542 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010543 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010545 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10546 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010547 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010549 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10550 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010551 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010553 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10554 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010555 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010557 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10558 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010559 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010561 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10562 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010563 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010565 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10566 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010567 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010569 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10570 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010571 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010573 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10574 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010575 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010577 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10578 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010579 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010581 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10582 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010583 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010585 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10586 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010587 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10588 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010589 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10590 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010591 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10592 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010593 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10594 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010595 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10596 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010597 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10598 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010599 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10600 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010601 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10602 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010603 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10604 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010605 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10606 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010607 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10608 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010609 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10610 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010611 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10612 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010613 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10614 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010615 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10616 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010617 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10618 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010619 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10620 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010621 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10622 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010623 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10624 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010625 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10626 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010627 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10628 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010629 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
10630 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010631 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010633 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10634 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010635 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10636 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010637 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10638 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10639 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10640 msm_routing_put_audio_mixer),
10641 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10642 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10643 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10644 msm_routing_put_audio_mixer),
10645 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10646 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10647 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10648 msm_routing_put_audio_mixer),
10649 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10650 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10651 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10652 msm_routing_put_audio_mixer),
10653 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10654 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10655 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10656 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010657 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10658 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10659 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10660 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010661 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10662 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10663 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10664 msm_routing_put_audio_mixer),
10665 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10666 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10667 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10668 msm_routing_put_audio_mixer),
10669 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10670 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10671 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10672 msm_routing_put_audio_mixer),
10673 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10674 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10675 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10676 msm_routing_put_audio_mixer),
10677 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10678 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10679 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10680 msm_routing_put_audio_mixer),
10681 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10682 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10683 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10684 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010685 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10686 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10687 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10688 msm_routing_put_audio_mixer),
10689 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10690 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10691 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10692 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053010693 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
10694 MSM_BACKEND_DAI_SLIMBUS_9_TX,
10695 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10696 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010697 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10698 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10699 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10700 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010701};
10702
10703static const struct snd_kcontrol_new mmul6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010704 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10705 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010706 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10707 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010708 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10709 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010710 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10711 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053010712 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10713 MSM_BACKEND_DAI_SLIMBUS_1_TX,
10714 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10715 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010716 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10717 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010718 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10719 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010720 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10721 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010722 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10723 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010724 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10725 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010726 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10727 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010728 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10729 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010730 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10731 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010732 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10733 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010734 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10735 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010736 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10737 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010738 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10739 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010740 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
10741 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010742 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10743 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010744 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10745 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010746 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10747 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010748 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
10749 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010750 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10751 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010752 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
10753 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010754 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10755 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010756 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
10757 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010758 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10759 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010760 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10761 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010762 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10763 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010764 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10765 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010766 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10767 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010768 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10769 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010770 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10771 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010772 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10773 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010774 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10775 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010776 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10777 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010778 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010780 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10781 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010782 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010784 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10785 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010786 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010788 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10789 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010790 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010792 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10793 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010794 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10795 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010796 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10797 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010798 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10799 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010800 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10801 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010802 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010804 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10805 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010806 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010808 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10809 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010810 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010812 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10813 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010814 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010816 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10817 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010818 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10819 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010820 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10821 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010822 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10823 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010824 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10825 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010826 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010828 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10829 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010830 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010832 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10833 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010834 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10835 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010836 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10837 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010838 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10839 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010840 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10841 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010842 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10843 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010844 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10845 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10846 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10847 msm_routing_put_audio_mixer),
10848 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10849 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10850 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10851 msm_routing_put_audio_mixer),
10852 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10853 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10854 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10855 msm_routing_put_audio_mixer),
10856 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10857 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10858 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10859 msm_routing_put_audio_mixer),
10860 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10861 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10862 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10863 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080010864 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
10865 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
10866 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10867 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010868 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10869 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10870 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10871 msm_routing_put_audio_mixer),
10872 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10873 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10874 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10875 msm_routing_put_audio_mixer),
10876 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10877 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10878 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10879 msm_routing_put_audio_mixer),
10880 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10881 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10882 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10883 msm_routing_put_audio_mixer),
10884 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10885 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10886 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10887 msm_routing_put_audio_mixer),
10888 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10889 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10890 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10891 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010892 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10893 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10894 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10895 msm_routing_put_audio_mixer),
10896 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10897 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10898 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10899 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053010900 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
10901 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
10902 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10903 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010904};
10905
10906static const struct snd_kcontrol_new mmul8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010907 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10908 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010909 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10910 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053010911 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10912 MSM_BACKEND_DAI_SLIMBUS_1_TX,
10913 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010915 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10916 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010917 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10918 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010919 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10920 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010921 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10922 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010923 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10924 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010925 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10926 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010927 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10928 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010929 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10930 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010931 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10932 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010933 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10934 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010935 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10936 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010937 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10938 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010939 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10940 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010941 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10942 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010943 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10944 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010945 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10946 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010947 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10948 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010949 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10950 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010951 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10952 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010953 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10954 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010955 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10956 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010957 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10958 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010959 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10960 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010961 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10962 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010963 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10964 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010965 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10966 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010967 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10968 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010969 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10970 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010971 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10972 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010973 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10974 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010975 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10976 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010977 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10978 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010979 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10980 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010981 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10982 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010983 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10984 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010985 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10986 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010987 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10988 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010989 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10990 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010991 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10992 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010993 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010995 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10996 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010997 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010999 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11000 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011001 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011003 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11004 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011005 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11006 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011007 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11008 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011009 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11010 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011011 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11012 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011013 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11014 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011015 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11016 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011017 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11018 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011019 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11020 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011021 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11022 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011023 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11024 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011025 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11026 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011027 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11028 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011029 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11030 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011031 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11032 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011033 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11034 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011035 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11036 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011037 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11038 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011039 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11040 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011041 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11042 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011043 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11044 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011045 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11046 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011047 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
11048 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011049 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11050 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011051 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11052 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11053 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11054 msm_routing_put_audio_mixer),
11055 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11056 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11057 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11058 msm_routing_put_audio_mixer),
11059 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11060 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11061 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11062 msm_routing_put_audio_mixer),
11063 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11064 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11065 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11066 msm_routing_put_audio_mixer),
11067 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11068 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11069 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11070 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011071 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11072 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11073 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11074 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011075 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11076 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11077 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11078 msm_routing_put_audio_mixer),
11079 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11080 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11081 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11082 msm_routing_put_audio_mixer),
11083 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11084 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11085 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11086 msm_routing_put_audio_mixer),
11087 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11088 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11089 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11090 msm_routing_put_audio_mixer),
11091 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11092 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11093 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11094 msm_routing_put_audio_mixer),
11095 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11096 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11097 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11098 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011099 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11100 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11101 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11102 msm_routing_put_audio_mixer),
11103 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11104 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11105 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11106 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011107 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11108 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11109 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11110 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011111 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11112 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11113 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11114 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011115};
11116
Asish Bhattacharya34504582017-08-08 12:55:01 +053011117static const struct snd_kcontrol_new mmul16_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011118 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11119 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011120 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11121 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011122 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11123 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11124 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011126 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11127 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011128 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011130 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11131 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011132 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011134 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11135 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011136 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11137 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011138 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
11139 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011140 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11141 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011142 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11143 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011144 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11145 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011146 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11147 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011148 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11149 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011150 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11151 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011152 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11153 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011154 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11155 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011156 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011158 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11159 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011160 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011162 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11163 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011164 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011166 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11167 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011168 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011170 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11171 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011172 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011174 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11175 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011176 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011178 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11179 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011180 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011182 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11183 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011184 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011186 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11187 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011188 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011190 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11191 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011192 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011194 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11195 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011196 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011198 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11199 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011200 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011202 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11203 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011204 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011206 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11207 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011208 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11209 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011210 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11211 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011212 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11213 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011214 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11215 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011216 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11217 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011218 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11219 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011220 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11221 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011222 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11223 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011224 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011226 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11227 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011228 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011230 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11231 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011232 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11233 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011234 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11235 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011236 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11237 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011238 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11239 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011240 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11241 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011242 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
11243 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011244 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11245 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011246 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11247 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011248 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11249 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011250 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
11251 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011252 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011254 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
11255 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011256 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11257 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011258 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
11259 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053011260 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11261 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011262 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11263 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11264 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11265 msm_routing_put_audio_mixer),
11266 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11267 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11268 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11269 msm_routing_put_audio_mixer),
11270 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11271 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11272 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11273 msm_routing_put_audio_mixer),
11274 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11275 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11276 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11277 msm_routing_put_audio_mixer),
11278 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11279 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11280 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11281 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011282 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11283 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11284 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11285 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011286 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11287 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11288 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11289 msm_routing_get_audio_mixer,
11290 msm_routing_put_audio_mixer),
11291 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11292 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11293 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11294 msm_routing_get_audio_mixer,
11295 msm_routing_put_audio_mixer),
11296 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11297 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11298 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11299 msm_routing_get_audio_mixer,
11300 msm_routing_put_audio_mixer),
11301 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11302 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11303 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11304 msm_routing_get_audio_mixer,
11305 msm_routing_put_audio_mixer),
11306 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11307 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11308 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11309 msm_routing_get_audio_mixer,
11310 msm_routing_put_audio_mixer),
11311 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11312 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11313 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
11314 msm_routing_get_audio_mixer,
11315 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011316 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11317 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11318 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11319 msm_routing_put_audio_mixer),
11320 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11321 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11322 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11323 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011324 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11325 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11326 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11327 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011328 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11329 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11330 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11331 msm_routing_put_audio_mixer),
Asish Bhattacharya34504582017-08-08 12:55:01 +053011332};
11333
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011334static const struct snd_kcontrol_new mmul9_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011335 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11336 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011337 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11338 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011339 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11340 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11341 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011343 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11344 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011345 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011347 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11348 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011349 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011351 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11352 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011353 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011355 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11356 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011357 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11358 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011359 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11360 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011361 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011363 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11364 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011365 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011367 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11368 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011369 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011371 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11372 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011373 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011375 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11376 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011377 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011379 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11380 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011381 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011383 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11384 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011385 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011387 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11388 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011389 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011391 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11392 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011393 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011395 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11396 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011397 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011399 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11400 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011401 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011403 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11404 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011405 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011407 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11408 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011409 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011411 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11412 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011413 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11414 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011415 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11416 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011417 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11418 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011419 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11420 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11421 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11422 msm_routing_put_audio_mixer),
11423 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11424 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11425 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11426 msm_routing_put_audio_mixer),
11427 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11428 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11429 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11430 msm_routing_put_audio_mixer),
11431 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11432 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11433 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11434 msm_routing_put_audio_mixer),
11435 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11436 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11437 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11438 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011439 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11440 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11441 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11442 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011443 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11444 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11445 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11446 msm_routing_put_audio_mixer),
11447 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11448 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11449 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11450 msm_routing_put_audio_mixer),
11451 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11452 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11453 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11454 msm_routing_put_audio_mixer),
11455 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11456 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11457 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11458 msm_routing_put_audio_mixer),
11459 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11460 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11461 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11462 msm_routing_put_audio_mixer),
11463 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11464 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11465 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11466 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011467 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11468 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11469 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11470 msm_routing_put_audio_mixer),
11471 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11472 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11473 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11474 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011475 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11476 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11477 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11478 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011479};
11480
Laxminath Kasam38070be2017-08-17 18:21:59 +053011481static const struct snd_kcontrol_new mmul10_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011482 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11483 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011484 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11485 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011486 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11487 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11488 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011490 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11491 MSM_BACKEND_DAI_PRI_MI2S_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011492 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011494 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11495 MSM_BACKEND_DAI_INT_FM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011496 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11497 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011498 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11499 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011500 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11501 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011502 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11503 MSM_BACKEND_DAI_AFE_PCM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011504 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11505 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011506 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11507 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011508 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11509 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011510 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11511 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011512 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11513 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011514 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11515 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011516 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11517 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011518 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11519 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Vikram Panduranga72863152017-09-06 15:47:35 -070011520 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11521 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011522 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11523 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011524 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11525 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011526 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11527 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011528 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011530 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11531 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011532 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11533 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011534 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11535 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011536 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11537 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011538 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11539 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011540 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11541 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011542 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11543 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011544 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11545 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011546 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11547 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011548 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11549 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011550 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11551 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011552 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11553 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011554 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
11555 MSM_BACKEND_DAI_USB_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011556 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11557 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011558 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11559 MSM_BACKEND_DAI_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011560 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011562 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
11563 MSM_BACKEND_DAI_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011564 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011566 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
11567 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011568 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011570 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
11571 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011572 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011574 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
11575 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011576 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011578 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11579 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011580 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011582 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
11583 MSM_BACKEND_DAI_INT2_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011584 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011586 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11587 MSM_BACKEND_DAI_INT3_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011588 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11589 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011590 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11591 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11592 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11593 msm_routing_put_audio_mixer),
11594 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11595 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11596 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11597 msm_routing_put_audio_mixer),
11598 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11599 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11600 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11601 msm_routing_put_audio_mixer),
11602 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11603 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11604 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11605 msm_routing_put_audio_mixer),
11606 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11607 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11608 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11609 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011610 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11611 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11612 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11613 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011614 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11615 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11616 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11617 msm_routing_get_audio_mixer,
11618 msm_routing_put_audio_mixer),
11619 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11620 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11621 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11622 msm_routing_get_audio_mixer,
11623 msm_routing_put_audio_mixer),
11624 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11625 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11626 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11627 msm_routing_get_audio_mixer,
11628 msm_routing_put_audio_mixer),
11629 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11630 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11631 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11632 msm_routing_get_audio_mixer,
11633 msm_routing_put_audio_mixer),
11634 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11635 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11636 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11637 msm_routing_get_audio_mixer,
11638 msm_routing_put_audio_mixer),
11639 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11640 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11641 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11642 msm_routing_get_audio_mixer,
11643 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011644 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11645 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11646 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11647 msm_routing_put_audio_mixer),
11648 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11649 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11650 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11651 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011652 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11653 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11654 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11655 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011656 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11657 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11658 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11659 msm_routing_put_audio_mixer),
Laxminath Kasam38070be2017-08-17 18:21:59 +053011660};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011661static const struct snd_kcontrol_new mmul17_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011662 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11663 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011664 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11665 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011666 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11667 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11668 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011670 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11671 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011672 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011674 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11675 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011676 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011678 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11679 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011680 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011682 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11683 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011684 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011686 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11687 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011688 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011690 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11691 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011692 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011694 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11695 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011696 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11697 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011698 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11699 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11700 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11701 msm_routing_put_audio_mixer),
11702 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11703 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11704 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11705 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011706 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11707 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11708 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11709 msm_routing_put_audio_mixer),
11710 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11711 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11712 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11713 msm_routing_put_audio_mixer),
11714 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11715 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11716 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11717 msm_routing_put_audio_mixer),
11718 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11719 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11720 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11721 msm_routing_put_audio_mixer),
11722 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11723 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11724 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11725 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011726 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11727 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11728 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11729 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011730 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11731 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11732 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11733 msm_routing_get_audio_mixer,
11734 msm_routing_put_audio_mixer),
11735 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11736 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11737 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11738 msm_routing_get_audio_mixer,
11739 msm_routing_put_audio_mixer),
11740 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11741 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11742 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11743 msm_routing_get_audio_mixer,
11744 msm_routing_put_audio_mixer),
11745 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11746 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11747 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11748 msm_routing_get_audio_mixer,
11749 msm_routing_put_audio_mixer),
11750 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11751 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11752 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11753 msm_routing_get_audio_mixer,
11754 msm_routing_put_audio_mixer),
11755 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11756 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11757 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11758 msm_routing_get_audio_mixer,
11759 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011760 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11761 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11762 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11763 msm_routing_put_audio_mixer),
11764 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11765 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11766 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11767 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011768 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11769 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11770 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11771 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011772};
11773
11774static const struct snd_kcontrol_new mmul18_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011775 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11776 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011777 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11778 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011779 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11780 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11781 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011783 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11784 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011785 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011787 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11788 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011789 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11790 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011791 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11792 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
11793 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11794 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011795 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11796 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11797 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011799 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11800 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011801 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011803 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11804 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011805 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011807 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11808 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011809 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011811 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11812 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011813 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011815 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11816 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011817 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011819 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11820 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011821 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11822 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011823 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11824 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11825 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11826 msm_routing_put_audio_mixer),
11827 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11828 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11829 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11830 msm_routing_put_audio_mixer),
11831 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11832 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11833 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11834 msm_routing_put_audio_mixer),
11835 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11836 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11837 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11838 msm_routing_put_audio_mixer),
11839 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11840 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11841 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11842 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011843 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11844 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11845 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11846 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011847 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11848 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11849 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11850 msm_routing_get_audio_mixer,
11851 msm_routing_put_audio_mixer),
11852 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11853 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11854 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11855 msm_routing_get_audio_mixer,
11856 msm_routing_put_audio_mixer),
11857 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11858 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11859 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11860 msm_routing_get_audio_mixer,
11861 msm_routing_put_audio_mixer),
11862 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11863 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11864 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11865 msm_routing_get_audio_mixer,
11866 msm_routing_put_audio_mixer),
11867 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11868 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11869 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11870 msm_routing_get_audio_mixer,
11871 msm_routing_put_audio_mixer),
11872 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11873 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11874 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11875 msm_routing_get_audio_mixer,
11876 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011877 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11878 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11879 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11880 msm_routing_put_audio_mixer),
11881 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11882 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11883 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11884 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053011885 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
11886 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
11887 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11888 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011889};
11890
11891static const struct snd_kcontrol_new mmul19_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011892 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11893 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011894 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11895 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011896 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11897 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11898 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011900 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11901 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011902 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011904 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11905 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011906 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011908 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11909 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011910 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011912 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11913 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011914 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011916 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11917 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011918 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011920 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11921 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011922 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011924 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11925 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011926 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11927 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010011928 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11929 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
11930 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11931 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011932 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11933 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11934 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11935 msm_routing_put_audio_mixer),
11936 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11937 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11938 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11939 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011940 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11941 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11942 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11943 msm_routing_put_audio_mixer),
11944 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11945 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11946 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11947 msm_routing_put_audio_mixer),
11948 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11949 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11950 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11951 msm_routing_put_audio_mixer),
11952 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11953 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11954 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11955 msm_routing_put_audio_mixer),
11956 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11957 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11958 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11959 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080011960 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
11961 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
11962 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11963 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011964 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11965 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11966 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11967 msm_routing_get_audio_mixer,
11968 msm_routing_put_audio_mixer),
11969 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11970 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11971 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11972 msm_routing_get_audio_mixer,
11973 msm_routing_put_audio_mixer),
11974 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11975 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11976 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11977 msm_routing_get_audio_mixer,
11978 msm_routing_put_audio_mixer),
11979 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11980 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11981 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11982 msm_routing_get_audio_mixer,
11983 msm_routing_put_audio_mixer),
11984 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11985 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11986 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11987 msm_routing_get_audio_mixer,
11988 msm_routing_put_audio_mixer),
11989 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11990 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11991 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11992 msm_routing_get_audio_mixer,
11993 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011994 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11995 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11996 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11997 msm_routing_put_audio_mixer),
11998 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11999 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12000 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
12001 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012002 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12003 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12004 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
12005 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012006};
12007
12008static const struct snd_kcontrol_new mmul20_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012009 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12010 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012011 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012013 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12014 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012015 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012017 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12018 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012019 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012021 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12022 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012023 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012025 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
12026 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053012027 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12028 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012029 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12030 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012031 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12032 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012033 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12034 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012035 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12036 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012037 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12038 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012039 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12040 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012041 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12042 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012043 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12044 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012045 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12046 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012047 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12048 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012049 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12050 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012051 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12052 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012053 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12054 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012055 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12056 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012057 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12058 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012059 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12060 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012061 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12062 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012063 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12064 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012065 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12066 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012067 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12068 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012069 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12070 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012071 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12072 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012073 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12074 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012075 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12076 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012077 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12078 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012079 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012081 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12082 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012083 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012085 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12086 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012087 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012089 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12090 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012091 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012093 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12094 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012095 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012097 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12098 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012099 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12100 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012101 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12102 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012103 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012105 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12106 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012107 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12108 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012109 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12110 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12111 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12112 msm_routing_put_audio_mixer),
12113 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12114 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12115 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12116 msm_routing_put_audio_mixer),
12117 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12118 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12119 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12120 msm_routing_put_audio_mixer),
12121 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12122 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12123 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12124 msm_routing_put_audio_mixer),
12125 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12126 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12127 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12128 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012129 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12130 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12131 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12132 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012133 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12134 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12135 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12136 msm_routing_put_audio_mixer),
12137 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12138 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12139 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12140 msm_routing_put_audio_mixer),
12141 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12142 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12143 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12144 msm_routing_put_audio_mixer),
12145 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12146 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12147 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12148 msm_routing_put_audio_mixer),
12149 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12150 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12151 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12152 msm_routing_put_audio_mixer),
12153 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12154 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12155 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12156 msm_routing_put_audio_mixer),
12157 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12158 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12159 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12160 msm_routing_put_audio_mixer),
12161 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12162 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12163 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12164 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012165 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12166 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12167 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12168 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070012169};
12170
12171static const struct snd_kcontrol_new mmul21_mixer_controls[] = {
12172 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12173 MSM_BACKEND_DAI_AUXPCM_TX,
12174 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12175 msm_routing_put_audio_mixer),
12176 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12177 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
12178 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12179 msm_routing_put_audio_mixer),
12180 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12181 MSM_BACKEND_DAI_PRI_TDM_TX_0,
12182 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12183 msm_routing_put_audio_mixer),
12184 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12185 MSM_BACKEND_DAI_PRI_TDM_TX_1,
12186 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12187 msm_routing_put_audio_mixer),
12188 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12189 MSM_BACKEND_DAI_PRI_TDM_TX_2,
12190 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12191 msm_routing_put_audio_mixer),
12192 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12193 MSM_BACKEND_DAI_PRI_TDM_TX_3,
12194 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12195 msm_routing_put_audio_mixer),
12196 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12197 MSM_BACKEND_DAI_SEC_TDM_TX_0,
12198 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12199 msm_routing_put_audio_mixer),
12200 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12201 MSM_BACKEND_DAI_SEC_TDM_TX_1,
12202 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12203 msm_routing_put_audio_mixer),
12204 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12205 MSM_BACKEND_DAI_SEC_TDM_TX_2,
12206 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12207 msm_routing_put_audio_mixer),
12208 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12209 MSM_BACKEND_DAI_SEC_TDM_TX_3,
12210 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12211 msm_routing_put_audio_mixer),
12212 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12213 MSM_BACKEND_DAI_TERT_TDM_TX_0,
12214 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12215 msm_routing_put_audio_mixer),
12216 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12217 MSM_BACKEND_DAI_TERT_TDM_TX_1,
12218 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12219 msm_routing_put_audio_mixer),
12220 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12221 MSM_BACKEND_DAI_TERT_TDM_TX_2,
12222 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12223 msm_routing_put_audio_mixer),
12224 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12225 MSM_BACKEND_DAI_TERT_TDM_TX_3,
12226 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12227 msm_routing_put_audio_mixer),
12228 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12229 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
12230 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12231 msm_routing_put_audio_mixer),
12232 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12233 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
12234 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12235 msm_routing_put_audio_mixer),
12236 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12237 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
12238 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12239 msm_routing_put_audio_mixer),
12240 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12241 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
12242 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12243 msm_routing_put_audio_mixer),
12244 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12245 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
12246 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12247 msm_routing_put_audio_mixer),
12248 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12249 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
12250 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12251 msm_routing_put_audio_mixer),
12252 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12253 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
12254 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12255 msm_routing_put_audio_mixer),
12256 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12257 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
12258 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12259 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012260 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012261 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12262 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012263 msm_routing_put_audio_mixer),
12264 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012265 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12266 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012267 msm_routing_put_audio_mixer),
12268 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012269 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12270 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012271 msm_routing_put_audio_mixer),
12272 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012273 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12274 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012275 msm_routing_put_audio_mixer),
12276 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012277 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12278 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012279 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012280 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12281 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12282 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12283 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012284 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012285 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12286 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12287 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012288 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012289 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12290 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12291 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012292 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012293 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12294 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12295 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012296 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012297 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12298 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12299 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012300 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012301 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12302 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12303 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012304 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012305 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12306 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12307 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012308 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12309 MSM_BACKEND_DAI_PRI_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012310 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020012311 msm_routing_put_audio_mixer),
12312 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12313 MSM_BACKEND_DAI_SEC_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053012314 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020012315 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012316 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12317 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12318 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12319 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012320};
12321
Surendar Karkac1cde372018-08-14 18:56:24 +053012322static const struct snd_kcontrol_new mmul27_mixer_controls[] = {
12323 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12324 MSM_BACKEND_DAI_SLIMBUS_0_TX,
12325 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12326 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012327 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12328 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12329 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12330 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053012331 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
12332 MSM_BACKEND_DAI_SLIMBUS_6_TX,
12333 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12334 msm_routing_put_audio_mixer),
12335 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
12336 MSM_BACKEND_DAI_SLIMBUS_7_TX,
12337 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12338 msm_routing_put_audio_mixer),
12339 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12340 MSM_BACKEND_DAI_PRI_MI2S_TX,
12341 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12342 msm_routing_put_audio_mixer),
12343 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12344 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
12345 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12346 msm_routing_put_audio_mixer),
12347 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12348 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
12349 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12350 msm_routing_put_audio_mixer),
12351 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12352 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
12353 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12354 msm_routing_put_audio_mixer),
12355 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
12356 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
12357 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12358 msm_routing_put_audio_mixer),
12359 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12360 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12361 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12362 msm_routing_put_audio_mixer),
12363 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12364 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12365 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12366 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053012367 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
12368 MSM_BACKEND_DAI_SLIMBUS_9_TX,
12369 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12370 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012371 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12372 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12373 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
12374 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053012375};
12376
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012377static const struct snd_kcontrol_new mmul28_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012378 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12379 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012380 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12381 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012382 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12383 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12384 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12385 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012386 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12387 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012388 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12389 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012390 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12391 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012392 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12393 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012394 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12395 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012396 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012398 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12399 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012400 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12401 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012402 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12403 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012404 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12405 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012406 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12407 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012408 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012410 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12411 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012412 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12413 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010012414 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12415 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
12416 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12417 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080012418 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12419 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
12420 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12421 msm_routing_put_audio_mixer),
12422 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12423 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
12424 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12425 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012426 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12427 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12428 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12429 msm_routing_put_audio_mixer),
12430 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12431 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12432 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12433 msm_routing_put_audio_mixer),
12434 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12435 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12436 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12437 msm_routing_put_audio_mixer),
12438 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12439 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12440 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12441 msm_routing_put_audio_mixer),
12442 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12443 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12444 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12445 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012446 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12447 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12448 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12449 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012450 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12451 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12452 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12453 msm_routing_get_audio_mixer,
12454 msm_routing_put_audio_mixer),
12455 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12456 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12457 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12458 msm_routing_get_audio_mixer,
12459 msm_routing_put_audio_mixer),
12460 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12461 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12462 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12463 msm_routing_get_audio_mixer,
12464 msm_routing_put_audio_mixer),
12465 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12466 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12467 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12468 msm_routing_get_audio_mixer,
12469 msm_routing_put_audio_mixer),
12470 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12471 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12472 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12473 msm_routing_get_audio_mixer,
12474 msm_routing_put_audio_mixer),
12475 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12476 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12477 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
12478 msm_routing_get_audio_mixer,
12479 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012480 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12481 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12482 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12483 msm_routing_put_audio_mixer),
12484 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12485 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12486 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12487 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012488 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12489 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12490 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12491 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012492};
12493
12494static const struct snd_kcontrol_new mmul29_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012495 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12496 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012497 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12498 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012499 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12500 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12501 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012503 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12504 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012505 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012507 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12508 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012509 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012511 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12512 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012513 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012515 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12516 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012517 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012519 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12520 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012521 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012523 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12524 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012525 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012527 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12528 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012529 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12530 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010012531 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12532 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
12533 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12534 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080012535 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12536 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
12537 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12538 msm_routing_put_audio_mixer),
12539 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12540 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
12541 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12542 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012543 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12544 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12545 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12546 msm_routing_put_audio_mixer),
12547 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12548 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12549 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12550 msm_routing_put_audio_mixer),
12551 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12552 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12553 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12554 msm_routing_put_audio_mixer),
12555 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12556 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12557 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12558 msm_routing_put_audio_mixer),
12559 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12560 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12561 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12562 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012563 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12564 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12565 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12566 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012567 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12568 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12569 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12570 msm_routing_get_audio_mixer,
12571 msm_routing_put_audio_mixer),
12572 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12573 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12574 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12575 msm_routing_get_audio_mixer,
12576 msm_routing_put_audio_mixer),
12577 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12578 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12579 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12580 msm_routing_get_audio_mixer,
12581 msm_routing_put_audio_mixer),
12582 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12583 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12584 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12585 msm_routing_get_audio_mixer,
12586 msm_routing_put_audio_mixer),
12587 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12588 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12589 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12590 msm_routing_get_audio_mixer,
12591 msm_routing_put_audio_mixer),
12592 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12593 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12594 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12595 msm_routing_get_audio_mixer,
12596 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012597 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12598 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12599 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12600 msm_routing_put_audio_mixer),
12601 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12602 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12603 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12604 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012605 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12606 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12607 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12608 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012609};
12610
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012611static const struct snd_kcontrol_new pri_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012612 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12613 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012614 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12615 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012616 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12617 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012618 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12619 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012620 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12621 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012622 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12623 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012624 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12625 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012626 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12627 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012628 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12629 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012630 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12631 msm_routing_put_voice_mixer),
12632};
12633
12634static const struct snd_kcontrol_new sec_i2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012635 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12636 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012637 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12638 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012639 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12640 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012641 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12642 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012643 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12644 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012645 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12646 msm_routing_put_voice_mixer),
12647};
12648
12649static const struct snd_kcontrol_new sec_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012650 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12651 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012652 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12653 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070012654 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
12655 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
12656 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
12657 msm_routing_put_voice_mixer),
12658 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
12659 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
12660 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
12661 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012662 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12663 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012664 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12665 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012666 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12667 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012668 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12669 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012670 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12671 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012672 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12673 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012674 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12675 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012676 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12677 msm_routing_put_voice_mixer),
12678};
12679
12680static const struct snd_kcontrol_new slimbus_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012681 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12682 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012683 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12684 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012685 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12686 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012687 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12688 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012689 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12690 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012691 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12692 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012693 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12694 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012695 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12696 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012697 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12698 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012699 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12700 msm_routing_put_voice_mixer),
12701};
12702
12703static const struct snd_kcontrol_new slimbus_6_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012704 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12705MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012706 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12707 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012708 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12709MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012710 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12711 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012712 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12713MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012714 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12715 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012716 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12717MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012718 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12719 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012720 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12721MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012722 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12723 msm_routing_put_voice_mixer),
12724};
12725
12726static const struct snd_kcontrol_new usb_audio_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012727 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12728 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012729 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12730 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012731 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12732 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012733 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12734 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012735 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12736 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012737 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12738 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012739 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12740 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012741 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12742 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012743 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12744 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012745 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12746 msm_routing_put_voice_mixer),
12747};
12748
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012749static const struct snd_kcontrol_new display_port_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012750 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12751MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012752 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12753 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012754 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12755MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012756 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12757 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012758 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12759MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012760 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12761 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012762 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12763MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012764 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12765 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012766 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12767MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012768 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12769 msm_routing_put_voice_mixer),
12770};
12771
Karthikeyan Mani57550082018-05-03 18:43:58 -070012772static const struct snd_kcontrol_new display_port_rx1_voice_mixer_controls[] = {
12773 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12774 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12775 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12776 msm_routing_put_voice_mixer),
12777 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12778 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12779 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12780 msm_routing_put_voice_mixer),
12781 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12782 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12783 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12784 msm_routing_put_voice_mixer),
12785 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12786 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12787 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12788 msm_routing_put_voice_mixer),
12789 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12790 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12791 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12792 msm_routing_put_voice_mixer),
12793};
12794
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012795static const struct snd_kcontrol_new bt_sco_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012796 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12797 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012798 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12799 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012800 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12801 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012802 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12803 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012804 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12805 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012806 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12807 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012808 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12809 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012810 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12811 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012812 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12813 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012814 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12815 msm_routing_put_voice_mixer),
12816};
12817
12818static const struct snd_kcontrol_new mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012819 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12820 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012821 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12822 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070012823 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
12824 MSM_BACKEND_DAI_MI2S_RX,
12825 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
12826 msm_routing_put_voice_mixer),
12827 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
12828 MSM_BACKEND_DAI_MI2S_RX,
12829 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
12830 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012831 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12832 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012833 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12834 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012835 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12836 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012837 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12838 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012839 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12840 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012841 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12842 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012843 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12844 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012845 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12846 msm_routing_put_voice_mixer),
12847};
12848
12849static const struct snd_kcontrol_new pri_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012850 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070012851 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012852 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12853 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070012854 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
12855 MSM_BACKEND_DAI_PRI_MI2S_RX,
12856 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
12857 msm_routing_put_voice_mixer),
12858 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
12859 MSM_BACKEND_DAI_PRI_MI2S_RX,
12860 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
12861 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012862 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070012863 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012864 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12865 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012866 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070012867 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012868 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12869 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012870 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070012871 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012872 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12873 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012874 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070012875 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012876 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12877 msm_routing_put_voice_mixer),
12878};
12879
12880static const struct snd_kcontrol_new int0_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012881 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12882MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012883 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12884 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012885 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12886MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012887 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12888 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012889 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12890MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012891 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12892 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012893 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12894MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012895 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12896 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012897 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12898MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012899 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12900 msm_routing_put_voice_mixer),
12901};
12902
12903static const struct snd_kcontrol_new int4_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012904 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12905 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012906 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12907 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012908 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12909 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012910 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12911 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012912 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12913 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012914 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12915 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012916 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12917 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012918 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12919 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012920 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12921 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012922 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12923 msm_routing_put_voice_mixer),
12924};
12925
12926static const struct snd_kcontrol_new tert_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012927 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12928 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012929 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12930 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070012931 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
12932 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
12933 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
12934 msm_routing_put_voice_mixer),
12935 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
12936 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
12937 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
12938 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012939 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12940 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012941 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12942 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012943 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12944 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012945 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12946 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012947 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12948 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012949 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12950 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012951 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12952 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012953 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12954 msm_routing_put_voice_mixer),
12955};
12956
12957static const struct snd_kcontrol_new quat_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012958 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12959 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012960 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12961 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070012962 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
12963 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
12964 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
12965 msm_routing_put_voice_mixer),
12966 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
12967 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
12968 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
12969 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012970 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12971 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012972 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12973 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012974 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12975 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012976 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12977 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012978 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12979 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012980 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12981 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012982 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12983 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012984 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12985 msm_routing_put_voice_mixer),
12986};
12987
12988static const struct snd_kcontrol_new quin_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012989 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12990 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012991 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12992 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070012993 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
12994 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
12995 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12996 msm_routing_put_voice_stub_mixer),
12997 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
12998 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
12999 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13000 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013001 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13002 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013003 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13004 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013005 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13006 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013007 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13008 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013009 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13010 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013011 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13012 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013013 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13014 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013015 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13016 msm_routing_put_voice_mixer),
13017};
13018
13019static const struct snd_kcontrol_new afe_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013020 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13021 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013022 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13023 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013024 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13025 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013026 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13027 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013028 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13029 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013030 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13031 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013032 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13033 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013034 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13035 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013036 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13037 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013038 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13039 msm_routing_put_voice_mixer),
13040};
13041
13042static const struct snd_kcontrol_new aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013043 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13044 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013045 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13046 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013047 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13048 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013049 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13050 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013051 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13052 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013053 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13054 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013055 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13056 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013057 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13058 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013059 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13060 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013061 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13062 msm_routing_put_voice_mixer),
13063};
13064
13065static const struct snd_kcontrol_new sec_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013066 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13067MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013068 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13069 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013070 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13071MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013072 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13073 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013074 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13075MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013076 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13077 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013078 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13079MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013080 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13081 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013082 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13083MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013084 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13085 msm_routing_put_voice_mixer),
13086};
13087
13088static const struct snd_kcontrol_new tert_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013089 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13090MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013091 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13092 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013093 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13094MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013095 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13096 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013097 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13098MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013099 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13100 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013101 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13102MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013103 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13104 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013105 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13106MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013107 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13108 msm_routing_put_voice_mixer),
13109};
13110
13111static const struct snd_kcontrol_new quat_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013112 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13113MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013114 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13115 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013116 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13117MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013118 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13119 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013120 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13121MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013122 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13123 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013124 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13125MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013126 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13127 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013128 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13129MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013130 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13131 msm_routing_put_voice_mixer),
13132};
13133
Rohit Kumara5077932017-09-10 22:05:05 +053013134static const struct snd_kcontrol_new quin_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013135 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13136MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013137 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13138 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013139 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13140MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013141 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13142 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013143 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13144MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013145 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13146 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013147 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13148MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013149 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13150 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013151 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13152MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013153 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13154 msm_routing_put_voice_mixer),
13155};
13156
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013157static const struct snd_kcontrol_new hdmi_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013158 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13159 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013160 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13161 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013162 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13163 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013164 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13165 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013166 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13167 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013168 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13169 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013170 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13171 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013172 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13173 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013174 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13175 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013176 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13177 msm_routing_put_voice_mixer),
13178};
13179
13180static const struct snd_kcontrol_new slimbus_7_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013181 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13182MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013183 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13184 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013185 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13186MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013187 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13188 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013189 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13190MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013191 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13192 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013193 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13194MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013195 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13196 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013197 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13198MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013199 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13200 msm_routing_put_voice_mixer),
13201};
13202
13203static const struct snd_kcontrol_new slimbus_8_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013204 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13205 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013206 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13207 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013208 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13209 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013210 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13211 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013212 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13213 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013214 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13215 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013216 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13217 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013218 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13219 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013220 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13221 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013222 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13223 msm_routing_put_voice_mixer),
13224};
13225
13226static const struct snd_kcontrol_new quat_tdm_rx_2_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013227 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13228 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013229 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13230 msm_routing_put_voice_mixer),
13231};
13232
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013233static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_voice_mixer_controls[] = {
13234 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13235 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13236 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13237 msm_routing_put_voice_mixer),
13238 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13239 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13240 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13241 msm_routing_put_voice_mixer),
13242 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13243 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13244 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13245 msm_routing_put_voice_mixer),
13246 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13247 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13248 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13249 msm_routing_put_voice_mixer),
13250 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13251 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13252 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13253 msm_routing_put_voice_mixer),
13254};
13255
13256static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_voice_mixer_controls[] = {
13257 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13258 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
13259 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13260 msm_routing_put_voice_mixer),
13261 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13262 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
13263 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13264 msm_routing_put_voice_mixer),
13265 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13266 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
13267 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13268 msm_routing_put_voice_mixer),
13269 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13270 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
13271 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13272 msm_routing_put_voice_mixer),
13273 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13274 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
13275 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13276 msm_routing_put_voice_mixer),
13277};
13278
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013279static const struct snd_kcontrol_new rx_cdc_dma_rx_0_voice_mixer_controls[] = {
13280 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13281 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13282 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13283 msm_routing_put_voice_mixer),
13284 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13285 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13286 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13287 msm_routing_put_voice_mixer),
13288 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13289 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13290 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13291 msm_routing_put_voice_mixer),
13292 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13293 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13294 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13295 msm_routing_put_voice_mixer),
13296 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13297 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13298 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13299 msm_routing_put_voice_mixer),
13300};
13301
13302static const struct snd_kcontrol_new rx_cdc_dma_rx_1_voice_mixer_controls[] = {
13303 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13304 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
13305 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13306 msm_routing_put_voice_mixer),
13307 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13308 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
13309 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13310 msm_routing_put_voice_mixer),
13311 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13312 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
13313 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13314 msm_routing_put_voice_mixer),
13315 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13316 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
13317 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13318 msm_routing_put_voice_mixer),
13319 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13320 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
13321 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13322 msm_routing_put_voice_mixer),
13323};
13324
13325static const struct snd_kcontrol_new rx_cdc_dma_rx_2_voice_mixer_controls[] = {
13326 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13327 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
13328 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13329 msm_routing_put_voice_mixer),
13330 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13331 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
13332 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13333 msm_routing_put_voice_mixer),
13334 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13335 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
13336 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13337 msm_routing_put_voice_mixer),
13338 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13339 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
13340 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13341 msm_routing_put_voice_mixer),
13342 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13343 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
13344 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13345 msm_routing_put_voice_mixer),
13346};
13347
13348static const struct snd_kcontrol_new rx_cdc_dma_rx_3_voice_mixer_controls[] = {
13349 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13350 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
13351 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13352 msm_routing_put_voice_mixer),
13353 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13354 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
13355 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13356 msm_routing_put_voice_mixer),
13357 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13358 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
13359 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13360 msm_routing_put_voice_mixer),
13361 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13362 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
13363 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13364 msm_routing_put_voice_mixer),
13365 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13366 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
13367 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13368 msm_routing_put_voice_mixer),
13369};
13370
13371static const struct snd_kcontrol_new rx_cdc_dma_rx_4_voice_mixer_controls[] = {
13372 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13373 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
13374 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13375 msm_routing_put_voice_mixer),
13376 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13377 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
13378 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13379 msm_routing_put_voice_mixer),
13380 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13381 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
13382 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13383 msm_routing_put_voice_mixer),
13384 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13385 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
13386 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13387 msm_routing_put_voice_mixer),
13388 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13389 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
13390 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13391 msm_routing_put_voice_mixer),
13392};
13393
13394static const struct snd_kcontrol_new rx_cdc_dma_rx_5_voice_mixer_controls[] = {
13395 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13396 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13397 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13398 msm_routing_put_voice_mixer),
13399 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13400 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13401 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13402 msm_routing_put_voice_mixer),
13403 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13404 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13405 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13406 msm_routing_put_voice_mixer),
13407 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13408 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13409 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13410 msm_routing_put_voice_mixer),
13411 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13412 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
13413 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13414 msm_routing_put_voice_mixer),
13415};
13416
13417static const struct snd_kcontrol_new rx_cdc_dma_rx_6_voice_mixer_controls[] = {
13418 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13419 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13420 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13421 msm_routing_put_voice_mixer),
13422 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13423 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13424 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13425 msm_routing_put_voice_mixer),
13426 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13427 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13428 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13429 msm_routing_put_voice_mixer),
13430 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13431 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13432 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13433 msm_routing_put_voice_mixer),
13434 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13435 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
13436 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13437 msm_routing_put_voice_mixer),
13438};
13439
13440static const struct snd_kcontrol_new rx_cdc_dma_rx_7_voice_mixer_controls[] = {
13441 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13442 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13443 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13444 msm_routing_put_voice_mixer),
13445 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13446 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13447 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13448 msm_routing_put_voice_mixer),
13449 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13450 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13451 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13452 msm_routing_put_voice_mixer),
13453 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13454 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13455 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13456 msm_routing_put_voice_mixer),
13457 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13458 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
13459 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13460 msm_routing_put_voice_mixer),
13461};
13462
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053013463static const struct snd_kcontrol_new pri_tdm_rx_0_voice_mixer_controls[] = {
13464 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13465 MSM_BACKEND_DAI_PRI_TDM_RX_0,
13466 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13467 msm_routing_put_voice_mixer),
13468 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
13469 MSM_BACKEND_DAI_PRI_TDM_RX_0,
13470 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13471 msm_routing_put_voice_stub_mixer),
13472 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
13473 MSM_BACKEND_DAI_PRI_TDM_RX_0,
13474 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13475 msm_routing_put_voice_stub_mixer),
13476 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
13477 MSM_BACKEND_DAI_PRI_TDM_RX_0,
13478 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
13479 msm_routing_put_voice_mixer),
13480 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13481 MSM_BACKEND_DAI_PRI_TDM_RX_0,
13482 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13483 msm_routing_put_voice_mixer),
13484 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13485 MSM_BACKEND_DAI_PRI_TDM_RX_0,
13486 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13487 msm_routing_put_voice_mixer),
13488 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13489 MSM_BACKEND_DAI_PRI_TDM_RX_0,
13490 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13491 msm_routing_put_voice_mixer),
13492 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13493 MSM_BACKEND_DAI_PRI_TDM_RX_0,
13494 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13495 msm_routing_put_voice_mixer),
13496};
13497
13498static const struct snd_kcontrol_new pri_tdm_rx_1_voice_mixer_controls[] = {
13499 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13500 MSM_BACKEND_DAI_PRI_TDM_RX_1,
13501 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13502 msm_routing_put_voice_mixer),
13503 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
13504 MSM_BACKEND_DAI_PRI_TDM_RX_1,
13505 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13506 msm_routing_put_voice_stub_mixer),
13507 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
13508 MSM_BACKEND_DAI_PRI_TDM_RX_1,
13509 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13510 msm_routing_put_voice_stub_mixer),
13511 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
13512 MSM_BACKEND_DAI_PRI_TDM_RX_1,
13513 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
13514 msm_routing_put_voice_mixer),
13515 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13516 MSM_BACKEND_DAI_PRI_TDM_RX_1,
13517 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13518 msm_routing_put_voice_mixer),
13519 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13520 MSM_BACKEND_DAI_PRI_TDM_RX_1,
13521 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13522 msm_routing_put_voice_mixer),
13523 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13524 MSM_BACKEND_DAI_PRI_TDM_RX_1,
13525 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13526 msm_routing_put_voice_mixer),
13527 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13528 MSM_BACKEND_DAI_PRI_TDM_RX_1,
13529 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13530 msm_routing_put_voice_mixer),
13531};
13532
13533static const struct snd_kcontrol_new pri_tdm_rx_2_voice_mixer_controls[] = {
13534 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13535 MSM_BACKEND_DAI_PRI_TDM_RX_2,
13536 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13537 msm_routing_put_voice_mixer),
13538 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
13539 MSM_BACKEND_DAI_PRI_TDM_RX_2,
13540 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13541 msm_routing_put_voice_stub_mixer),
13542 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
13543 MSM_BACKEND_DAI_PRI_TDM_RX_2,
13544 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13545 msm_routing_put_voice_stub_mixer),
13546 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
13547 MSM_BACKEND_DAI_PRI_TDM_RX_2,
13548 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
13549 msm_routing_put_voice_mixer),
13550 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13551 MSM_BACKEND_DAI_PRI_TDM_RX_2,
13552 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13553 msm_routing_put_voice_mixer),
13554 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13555 MSM_BACKEND_DAI_PRI_TDM_RX_2,
13556 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13557 msm_routing_put_voice_mixer),
13558 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13559 MSM_BACKEND_DAI_PRI_TDM_RX_2,
13560 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13561 msm_routing_put_voice_mixer),
13562 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13563 MSM_BACKEND_DAI_PRI_TDM_RX_2,
13564 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13565 msm_routing_put_voice_mixer),
13566};
13567
13568static const struct snd_kcontrol_new pri_tdm_rx_3_voice_mixer_controls[] = {
13569 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
13570 MSM_BACKEND_DAI_PRI_TDM_RX_3,
13571 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13572 msm_routing_put_voice_mixer),
13573 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
13574 MSM_BACKEND_DAI_PRI_TDM_RX_3,
13575 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13576 msm_routing_put_voice_stub_mixer),
13577 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
13578 MSM_BACKEND_DAI_PRI_TDM_RX_3,
13579 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13580 msm_routing_put_voice_stub_mixer),
13581 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
13582 MSM_BACKEND_DAI_PRI_TDM_RX_3,
13583 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
13584 msm_routing_put_voice_mixer),
13585 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
13586 MSM_BACKEND_DAI_PRI_TDM_RX_3,
13587 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
13588 msm_routing_put_voice_mixer),
13589 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
13590 MSM_BACKEND_DAI_PRI_TDM_RX_3,
13591 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13592 msm_routing_put_voice_mixer),
13593 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13594 MSM_BACKEND_DAI_PRI_TDM_RX_3,
13595 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13596 msm_routing_put_voice_mixer),
13597 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13598 MSM_BACKEND_DAI_PRI_TDM_RX_3,
13599 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13600 msm_routing_put_voice_mixer),
13601};
13602
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013603static const struct snd_kcontrol_new stub_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013604 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13605 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013606 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13607 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013608 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13609 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013610 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13611 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013612};
13613
13614static const struct snd_kcontrol_new slimbus_1_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013615 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13616 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013617 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13618 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013619 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13620 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013621 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13622 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013623};
13624
13625static const struct snd_kcontrol_new slimbus_3_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013626 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
13627 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013628 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13629 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013630 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
13631 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080013632 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13633 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013634};
13635
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013636static const struct snd_kcontrol_new tx_voicemmode1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013637 SOC_DOUBLE_EXT("PRI_TX_MMode1", SND_SOC_NOPM,
13638 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013639 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13640 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013641 SOC_DOUBLE_EXT("MI2S_TX_MMode1", SND_SOC_NOPM,
13642 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013643 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13644 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013645 SOC_DOUBLE_EXT("SLIM_0_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013646 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13647 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013648 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013649 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13650 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013651 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013652 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
13653 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013654 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013655 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
13656 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013657 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013658 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13659 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013660 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013661 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13662 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013663 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013664 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13665 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013666 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053013667 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13668 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013669 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013670 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
13671 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013672 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013673 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
13674 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013675 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013676 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
13677 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013678 SOC_DOUBLE_EXT("SLIM_7_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013679 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13680 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013681 SOC_DOUBLE_EXT("SLIM_8_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013682 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
13683 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013684 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode1", SND_SOC_NOPM,
13685 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013686 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
13687 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013688 SOC_DOUBLE_EXT("QUAT_TDM_TX_0_MMode1", SND_SOC_NOPM,
13689MSM_BACKEND_DAI_QUAT_TDM_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013690 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013691 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
13692 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
13693 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13694 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
13695 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
13696 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013697 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
13698 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
13699 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013700 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
13701 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
13702 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13703 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
13704 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
13705 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13706 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
13707 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
13708 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13709 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode1", SND_SOC_NOPM,
13710 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
13711 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13712 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode1", SND_SOC_NOPM,
13713 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE1,
13714 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13715 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode1", SND_SOC_NOPM,
13716 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE1,
13717 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e349b82018-02-23 16:34:40 +053013718 SOC_DOUBLE_EXT("QUAT_MI2S_TX_MMode1", SND_SOC_NOPM,
13719 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
13720 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13721 SOC_DOUBLE_EXT("QUIN_MI2S_TX_MMode1", SND_SOC_NOPM,
13722 MSM_BACKEND_DAI_QUINARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
13723 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053013724 SOC_DOUBLE_EXT("PRI_TDM_TX3_MMode1", SND_SOC_NOPM,
13725 MSM_BACKEND_DAI_PRI_TDM_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
13726 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013727};
13728
13729static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013730 SOC_DOUBLE_EXT("PRI_TX_MMode2", SND_SOC_NOPM,
13731 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013732 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13733 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013734 SOC_DOUBLE_EXT("MI2S_TX_MMode2", SND_SOC_NOPM,
13735 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013736 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13737 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013738 SOC_DOUBLE_EXT("SLIM_0_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013739 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13740 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013741 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013742 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13743 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013744 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013745 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13746 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013747 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013748 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13749 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013750 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013751 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13752 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013753 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013754 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13755 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013756 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013757 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13758 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013759 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053013760 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13761 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013762 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013763 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13764 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013765 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013766 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
13767 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013768 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013769 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
13770 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013771 SOC_DOUBLE_EXT("SLIM_7_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013772 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13773 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013774 SOC_DOUBLE_EXT("SLIM_8_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013775 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13776 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013777 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013778 MSM_BACKEND_DAI_USB_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13779 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013780 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
13781 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
13782 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13783 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
13784 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
13785 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013786 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
13787 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
13788 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013789 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
13790 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
13791 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13792 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
13793 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
13794 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13795 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
13796 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
13797 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13798 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode2", SND_SOC_NOPM,
13799 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
13800 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13801 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode2", SND_SOC_NOPM,
13802 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE2,
13803 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13804 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode2", SND_SOC_NOPM,
13805 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE2,
13806 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e349b82018-02-23 16:34:40 +053013807 SOC_DOUBLE_EXT("QUAT_MI2S_TX_MMode2", SND_SOC_NOPM,
13808 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
13809 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13810 SOC_DOUBLE_EXT("QUIN_MI2S_TX_MMode2", SND_SOC_NOPM,
13811 MSM_BACKEND_DAI_QUINARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
13812 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053013813 SOC_DOUBLE_EXT("PRI_TDM_TX3_MMode2", SND_SOC_NOPM,
13814 MSM_BACKEND_DAI_PRI_TDM_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
13815 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013816};
13817
13818static const struct snd_kcontrol_new tx_voip_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013819 SOC_DOUBLE_EXT("PRI_TX_Voip", SND_SOC_NOPM,
13820 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013821 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13822 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013823 SOC_DOUBLE_EXT("MI2S_TX_Voip", SND_SOC_NOPM,
13824 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013825 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13826 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013827 SOC_DOUBLE_EXT("SLIM_0_TX_Voip", SND_SOC_NOPM,
13828 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013829 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13830 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013831 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_Voip", SND_SOC_NOPM,
13832 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013833 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13834 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013835 SOC_DOUBLE_EXT("AFE_PCM_TX_Voip", SND_SOC_NOPM,
13836 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013837 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13838 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013839 SOC_DOUBLE_EXT("AUX_PCM_TX_Voip", SND_SOC_NOPM,
13840 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013841 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13842 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013843 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13844 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013845 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13846 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013847 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13848 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013849 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13850 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013851 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13852 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013853 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13854 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013855 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13856 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013857 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13858 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013859 SOC_DOUBLE_EXT("PRI_MI2S_TX_Voip", SND_SOC_NOPM,
13860 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013861 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13862 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013863 SOC_DOUBLE_EXT("TERT_MI2S_TX_Voip", SND_SOC_NOPM,
13864 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013865 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13866 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013867 SOC_DOUBLE_EXT("INT3_MI2S_TX_Voip", SND_SOC_NOPM,
13868 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013869 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13870 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013871 SOC_DOUBLE_EXT("SLIM_7_TX_Voip", SND_SOC_NOPM,
13872 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013873 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13874 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013875 SOC_DOUBLE_EXT("SLIM_8_TX_Voip", SND_SOC_NOPM,
13876 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013877 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13878 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013879 SOC_DOUBLE_EXT("USB_AUDIO_TX_Voip", SND_SOC_NOPM,
13880 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013881 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13882 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013883 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
13884 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
13885 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13886 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
13887 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
13888 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013889 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
13890 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
13891 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013892 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
13893 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
13894 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13895 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
13896 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
13897 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13898 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
13899 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
13900 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13901 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_Voip", SND_SOC_NOPM,
13902 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOIP,
13903 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13904 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_Voip", SND_SOC_NOPM,
13905 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOIP,
13906 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13907 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_Voip", SND_SOC_NOPM,
13908 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOIP,
13909 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Bala Kishore Patibdc425e2018-06-15 17:38:40 +053013910 SOC_SINGLE_EXT("PRI_TDM_TX_3_Voip", MSM_BACKEND_DAI_PRI_TDM_TX_3,
13911 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13912 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013913};
13914
13915static const struct snd_kcontrol_new tx_voice_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013916 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13917 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013918 MSM_FRONTEND_DAI_VOICE_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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13921 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013922 MSM_FRONTEND_DAI_VOICE_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_1_TX", SND_SOC_NOPM,
13925 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013926 MSM_FRONTEND_DAI_VOICE_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("STUB_1_TX_HL", SND_SOC_NOPM,
13929 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013930 MSM_FRONTEND_DAI_VOICE_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("MI2S_TX", SND_SOC_NOPM,
13933 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013934 MSM_FRONTEND_DAI_VOICE_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("PRI_MI2S_TX", SND_SOC_NOPM,
13937 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013938 MSM_FRONTEND_DAI_VOICE_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("TERT_MI2S_TX", SND_SOC_NOPM,
13941 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013942 MSM_FRONTEND_DAI_VOICE_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("INT3_MI2S_TX", SND_SOC_NOPM,
13945 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013946 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13947 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013948 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13949 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013950 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13951 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013952 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13953 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013954 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13955 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013956 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13957 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013958 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13959 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013960 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13961 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013962 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13963 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013964 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13965 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013966 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13967 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013968 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13969 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013970 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13971 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013972 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13973 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013974 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13975 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013976 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13977 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013978 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13979 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013980 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13981 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013982 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13983 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013984 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13985 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013986 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13987 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013988 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13989 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013990 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13991 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013992 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13993 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
13994 1, 0, msm_routing_get_voice_stub_mixer,
13995 msm_routing_put_voice_stub_mixer),
13996 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13997 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
13998 1, 0, msm_routing_get_voice_stub_mixer,
13999 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014000 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14001 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
14002 1, 0, msm_routing_get_voice_stub_mixer,
14003 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014004 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14005 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
14006 1, 0, msm_routing_get_voice_stub_mixer,
14007 msm_routing_put_voice_stub_mixer),
14008 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14009 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
14010 1, 0, msm_routing_get_voice_stub_mixer,
14011 msm_routing_put_voice_stub_mixer),
14012 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14013 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
14014 1, 0, msm_routing_get_voice_stub_mixer,
14015 msm_routing_put_voice_stub_mixer),
14016 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14017 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE_STUB,
14018 1, 0, msm_routing_get_voice_stub_mixer,
14019 msm_routing_put_voice_stub_mixer),
14020 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14021 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE_STUB,
14022 1, 0, msm_routing_get_voice_stub_mixer,
14023 msm_routing_put_voice_stub_mixer),
14024 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14025 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE_STUB,
14026 1, 0, msm_routing_get_voice_stub_mixer,
14027 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014028};
14029
14030static const struct snd_kcontrol_new tx_voice2_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014031 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
14032 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014033 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14034 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014035 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14036 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014037 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14038 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014039 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
14040 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014041 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14042 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014043 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14044 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014045 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14046 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014047 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14048 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014049 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14050 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014051 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
14052 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014053 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14054 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014055 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
14056 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014057 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14058 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014059 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
14060 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053014061 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14062 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014063 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14064 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014065 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14066 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014067 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
14068 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014069 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14070 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014071 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14072 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014073 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14074 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014075 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14076 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014077 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14078 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014079 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14080 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014081 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14082 msm_routing_put_voice_stub_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070014083 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14084 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14085 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14086 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014087 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14088 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014089 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14090 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014091 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14092 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014093 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14094 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014095 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14096 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
14097 1, 0, msm_routing_get_voice_stub_mixer,
14098 msm_routing_put_voice_stub_mixer),
14099 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14100 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
14101 1, 0, msm_routing_get_voice_stub_mixer,
14102 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014103 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14104 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
14105 1, 0, msm_routing_get_voice_stub_mixer,
14106 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014107 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14108 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
14109 1, 0, msm_routing_get_voice_stub_mixer,
14110 msm_routing_put_voice_stub_mixer),
14111 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14112 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
14113 1, 0, msm_routing_get_voice_stub_mixer,
14114 msm_routing_put_voice_stub_mixer),
14115 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14116 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
14117 1, 0, msm_routing_get_voice_stub_mixer,
14118 msm_routing_put_voice_stub_mixer),
14119 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14120 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE2_STUB,
14121 1, 0, msm_routing_get_voice_stub_mixer,
14122 msm_routing_put_voice_stub_mixer),
14123 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14124 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE2_STUB,
14125 1, 0, msm_routing_get_voice_stub_mixer,
14126 msm_routing_put_voice_stub_mixer),
14127 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14128 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE2_STUB,
14129 1, 0, msm_routing_get_voice_stub_mixer,
14130 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014131};
14132
14133static const struct snd_kcontrol_new tx_volte_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014134 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
14135 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014136 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14137 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014138 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14139 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014140 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14141 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014142 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
14143 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014144 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14145 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014146 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14147 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014148 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14149 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014150 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14151 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014152 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14153 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014154 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
14155 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014156 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14157 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014158 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
14159 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014160 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14161 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014162 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
14163 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053014164 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14165 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014166 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14167 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014168 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14169 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014170 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
14171 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014172 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14173 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014174 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14175 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014176 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14177 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014178 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14179 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014180 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14181 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014182 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14183 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014184 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14185 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014186 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14187 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014188 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14189 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014190 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14191 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014192 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
14193 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014194 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14195 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
14196 1, 0, msm_routing_get_voice_stub_mixer,
14197 msm_routing_put_voice_stub_mixer),
14198 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14199 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
14200 1, 0, msm_routing_get_voice_stub_mixer,
14201 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014202 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14203 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
14204 1, 0, msm_routing_get_voice_stub_mixer,
14205 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014206 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14207 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
14208 1, 0, msm_routing_get_voice_stub_mixer,
14209 msm_routing_put_voice_stub_mixer),
14210 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14211 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
14212 1, 0, msm_routing_get_voice_stub_mixer,
14213 msm_routing_put_voice_stub_mixer),
14214 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14215 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
14216 1, 0, msm_routing_get_voice_stub_mixer,
14217 msm_routing_put_voice_stub_mixer),
14218 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14219 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOLTE_STUB,
14220 1, 0, msm_routing_get_voice_stub_mixer,
14221 msm_routing_put_voice_stub_mixer),
14222 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14223 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOLTE_STUB,
14224 1, 0, msm_routing_get_voice_stub_mixer,
14225 msm_routing_put_voice_stub_mixer),
14226 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14227 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOLTE_STUB,
14228 1, 0, msm_routing_get_voice_stub_mixer,
14229 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014230};
14231
14232static const struct snd_kcontrol_new tx_qchat_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014233 SOC_DOUBLE_EXT("PRI_TX_QCHAT", SND_SOC_NOPM,
14234 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014235 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14236 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014237 SOC_DOUBLE_EXT("SLIM_0_TX_QCHAT", SND_SOC_NOPM,
14238 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014239 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14240 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014241 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_QCHAT", SND_SOC_NOPM,
14242 MSM_BACKEND_DAI_INT_BT_SCO_TX,
14243 MSM_FRONTEND_DAI_QCHAT, 1, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014244 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014245 SOC_DOUBLE_EXT("AFE_PCM_TX_QCHAT", SND_SOC_NOPM,
14246 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014247 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14248 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014249 SOC_DOUBLE_EXT("AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
14250 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014251 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14252 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014253 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
14254 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014255 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14256 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014257 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
14258 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014259 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14260 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014261 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
14262 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014263 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14264 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014265 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
14266 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053014267 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14268 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014269 SOC_DOUBLE_EXT("MI2S_TX_QCHAT", SND_SOC_NOPM,
14270 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014271 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14272 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014273 SOC_DOUBLE_EXT("PRI_MI2S_TX_QCHAT", SND_SOC_NOPM,
14274 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014275 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14276 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014277 SOC_DOUBLE_EXT("TERT_MI2S_TX_QCHAT", SND_SOC_NOPM,
14278 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014279 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14280 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014281 SOC_DOUBLE_EXT("INT3_MI2S_TX_QCHAT", SND_SOC_NOPM,
14282 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014283 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14284 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014285 SOC_DOUBLE_EXT("SLIM_7_TX_QCHAT", SND_SOC_NOPM,
14286 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014287 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14288 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014289 SOC_DOUBLE_EXT("SLIM_8_TX_QCHAT", SND_SOC_NOPM,
14290 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014291 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14292 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014293 SOC_DOUBLE_EXT("USB_AUDIO_TX_QCHAT", SND_SOC_NOPM,
14294 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014295 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
14296 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014297 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
14298 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
14299 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14300 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
14301 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
14302 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014303 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
14304 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
14305 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014306 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
14307 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
14308 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14309 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
14310 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
14311 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14312 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
14313 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
14314 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14315 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_QCHAT", SND_SOC_NOPM,
14316 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_QCHAT,
14317 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14318 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_QCHAT", SND_SOC_NOPM,
14319 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_QCHAT,
14320 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
14321 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_QCHAT", SND_SOC_NOPM,
14322 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_QCHAT,
14323 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014324};
14325
14326static const struct snd_kcontrol_new int0_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014327 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14328 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014329 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14330 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014331 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14332 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014333 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14334 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014335 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14336 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014337 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14338 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014339 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14340 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014341 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14342 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014343 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14344 MSM_BACKEND_DAI_INT0_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014345 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14346 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014347 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14348 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014349 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14350 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014351 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14352 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014353 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14354 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014355 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14356 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014357 MSM_BACKEND_DAI_INT_BT_SCO_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_7_TX", SND_SOC_NOPM,
14360 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014361 MSM_BACKEND_DAI_SLIMBUS_7_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("SLIM_8_TX", SND_SOC_NOPM,
14364 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014365 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14366 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053014367 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14368 MSM_BACKEND_DAI_INT0_MI2S_RX,
14369 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
14370 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014371};
14372
14373static const struct snd_kcontrol_new int4_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014374 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14375 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014376 MSM_BACKEND_DAI_PRI_MI2S_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("SEC_MI2S_TX", SND_SOC_NOPM,
14379 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014380 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14381 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014382 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14383 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014384 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14385 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014386 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14387 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014388 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14389 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014390 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14391 MSM_BACKEND_DAI_INT4_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014392 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14393 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014394 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14395 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014396 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14397 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014398 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14399 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014400 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14401 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014402 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14403 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014404 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14405 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014406 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14407 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014408 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
14409 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014410 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14411 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014412 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14413 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053014414 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14415 MSM_BACKEND_DAI_INT4_MI2S_RX,
14416 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
14417 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014418};
14419
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053014420static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_port_mixer_controls[] = {
14421 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14422 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
14423 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, 1, 0, msm_routing_get_port_mixer,
14424 msm_routing_put_port_mixer),
14425 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14426 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
14427 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
14428 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080014429 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14430 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
14431 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14432 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080014433 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14434 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
14435 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14436 msm_routing_put_port_mixer),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053014437};
14438
14439static const struct snd_kcontrol_new rx_cdc_dma_rx_0_port_mixer_controls[] = {
14440 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14441 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
14442 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
14443 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080014444 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14445 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
14446 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14447 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053014448 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
Meng Wang3f8ba542018-12-10 14:17:10 +080014449 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
Surendar Karka3ef3d812018-09-28 18:52:35 +053014450 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
14451 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080014452 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14453 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
14454 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14455 msm_routing_put_port_mixer),
14456
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053014457};
14458
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014459static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014460 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14461 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014462 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14463 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014464 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14465 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014466 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14467 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014468 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14469 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014470 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14471 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014472 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14473 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014474 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
14475 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014476 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14477 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014478 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14479 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014480 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14481 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014482 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14483 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014484 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14485 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014486 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14487 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014488 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
14489 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014490 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14491 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014492 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
14493 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014494 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14495 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014496 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
14497 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014498 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14499 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014500 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14501 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014502 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14503 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014504 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14505 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014506 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14507 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014508 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14509 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014510 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14511 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014512 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14513 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014514 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14515 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014516 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14517 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014518 MSM_BACKEND_DAI_QUATERNARY_MI2S_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("QUIN_MI2S_TX", SND_SOC_NOPM,
14521 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014522 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14523 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014524 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14525 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014526 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14527 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014528 SOC_DOUBLE_EXT("PRI_MI2S_RX", SND_SOC_NOPM,
14529 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014530 MSM_BACKEND_DAI_PRI_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
14531 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014532 SOC_DOUBLE_EXT("SEC_MI2S_RX", SND_SOC_NOPM,
14533 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014534 MSM_BACKEND_DAI_SECONDARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
14535 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014536 SOC_DOUBLE_EXT("TERT_MI2S_RX", SND_SOC_NOPM,
14537 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014538 MSM_BACKEND_DAI_TERTIARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
14539 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014540 SOC_DOUBLE_EXT("QUAT_MI2S_RX", SND_SOC_NOPM,
14541 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014542 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
14543 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014544 SOC_DOUBLE_EXT("QUIN_MI2S_RX", SND_SOC_NOPM,
14545 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Surendar Karka3ef3d812018-09-28 18:52:35 +053014546 MSM_BACKEND_DAI_QUINARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
14547 msm_routing_put_port_mixer),
14548 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14549 MSM_BACKEND_DAI_SLIMBUS_0_RX,
14550 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
Rohit Kumara5077932017-09-10 22:05:05 +053014551 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014552};
14553
14554static const struct snd_kcontrol_new aux_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014555 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14556 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014557 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14558 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014559 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14560 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014561 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14562 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014563 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14564 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014565 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14566 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014567 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14568 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014569 MSM_BACKEND_DAI_SEC_AUXPCM_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("QUAT_TDM_TX_0", SND_SOC_NOPM,
14572 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014573 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
14574 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014575 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14576 MSM_BACKEND_DAI_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080014577 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14578 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014579};
14580
14581static const struct snd_kcontrol_new sec_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014582 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14583 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014584 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14585 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014586 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14587 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014588 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14589 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014590 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14591 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014592 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14593 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014594 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14595 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080014596 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14597 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014598};
14599
14600static const struct snd_kcontrol_new tert_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014601 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
14602 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014603 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14604 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014605 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14606 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014607 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14608 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014609 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14610 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014611 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14612 msm_routing_put_port_mixer),
14613};
14614
14615static const struct snd_kcontrol_new quat_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014616 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
14617 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014618 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14619 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014620 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14621 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014622 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14623 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014624 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14625 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014626 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14627 msm_routing_put_port_mixer),
14628};
14629
Rohit Kumara5077932017-09-10 22:05:05 +053014630static const struct snd_kcontrol_new quin_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014631 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
14632 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014633 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14634 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014635 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14636 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014637 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14638 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014639 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14640 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014641 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14642 msm_routing_put_port_mixer),
14643};
14644
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014645static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014646 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14647 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014648 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14649 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014650 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14651 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014652 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0, msm_routing_get_port_mixer,
14653 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014654 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14655 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014656 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14657 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014658 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14659 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014660 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14661 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014662 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
14663 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014664 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14665 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014666 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
14667 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014668 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14669 msm_routing_put_port_mixer),
14670};
14671
14672static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014673 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_RX", SND_SOC_NOPM,
14674 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014675 MSM_BACKEND_DAI_INT_BT_SCO_RX, 1, 0, msm_routing_get_port_mixer,
14676 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014677 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14678 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014679 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14680 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014681 SOC_DOUBLE_EXT("AFE_PCM_RX", SND_SOC_NOPM,
14682 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014683 MSM_BACKEND_DAI_AFE_PCM_RX, 1, 0, msm_routing_get_port_mixer,
14684 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014685 SOC_DOUBLE_EXT("AUX_PCM_RX", SND_SOC_NOPM,
14686 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014687 MSM_BACKEND_DAI_AUXPCM_RX, 1, 0, msm_routing_get_port_mixer,
14688 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014689 SOC_DOUBLE_EXT("SLIM_0_RX", SND_SOC_NOPM,
14690 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014691 MSM_BACKEND_DAI_SLIMBUS_0_RX, 1, 0, msm_routing_get_port_mixer,
14692 msm_routing_put_port_mixer),
14693};
14694
14695static const struct snd_kcontrol_new sbus_6_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014696 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14697 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014698 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14699 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014700 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14701 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014702 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14703 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014704 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14705 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014706 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14707 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014708 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14709 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014710 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
14711 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014712 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14713 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014714 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14715 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014716 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14717 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014718 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14719 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014720 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14721 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014722 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14723 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014724 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14725 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014726 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14727 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014728 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14729 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014730 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14731 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014732 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14733 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014734 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14735 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014736 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14737 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014738 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14739 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014740 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14741 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014742 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14743 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053014744 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14745 MSM_BACKEND_DAI_SLIMBUS_6_RX,
14746 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
14747 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014748};
14749
14750static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014751 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14752 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014753 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14754 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014755 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14756 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014757 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14758 msm_routing_put_port_mixer),
14759};
14760
14761static const struct snd_kcontrol_new afe_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014762 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14763 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014764 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14765 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014766 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14767 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014768 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14769 msm_routing_put_port_mixer),
14770};
14771
14772
14773static const struct snd_kcontrol_new hdmi_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014774 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14775 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014776 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14777 msm_routing_put_port_mixer),
14778};
14779
14780static const struct snd_kcontrol_new display_port_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014781 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14782 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014783 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14784 msm_routing_put_port_mixer),
14785};
14786
Karthikeyan Mani57550082018-05-03 18:43:58 -070014787static const struct snd_kcontrol_new display_port_rx1_port_mixer_controls[] = {
14788 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14789 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
14790 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14791 msm_routing_put_port_mixer),
14792};
14793
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014794static const struct snd_kcontrol_new sec_i2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014795 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14796 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014797 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14798 msm_routing_put_port_mixer),
14799};
14800
14801static const struct snd_kcontrol_new mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014802 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14803 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014804 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14805 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014806 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14807 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014808 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14809 msm_routing_put_port_mixer),
14810};
14811
14812static const struct snd_kcontrol_new primary_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014813 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14814 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014815 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14816 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014817 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14818 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014819 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14820 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014821 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14822 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014823 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14824 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014825 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14826 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014827 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14828 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014829 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14830 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014831 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14832 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014833 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14834 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014835 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14836 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014837 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14838 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014839 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14840 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014841 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14842 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014843 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14844 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014845 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14846 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014847 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14848 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014849 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14850 MSM_BACKEND_DAI_PRI_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080014851 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14852 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014853};
14854
14855static const struct snd_kcontrol_new usb_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014856 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
14857 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014858 MSM_BACKEND_DAI_USB_TX, 1, 0, msm_routing_get_port_mixer,
14859 msm_routing_put_port_mixer),
14860};
14861
14862static const struct snd_kcontrol_new quat_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014863 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14864 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014865 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14866 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014867 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14868 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014869 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14870 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014871 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14872 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014873 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14874 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014875 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14876 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014877 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14878 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014879 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14880 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014881 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14882 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014883 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14884 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014885 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14886 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014887 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14888 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014889 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14890 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014891 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14892 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014893 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14894 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014895 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14896 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014897 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14898 msm_routing_put_port_mixer),
14899};
14900
Rohit Kumara5077932017-09-10 22:05:05 +053014901static const struct snd_kcontrol_new quin_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014902 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14903 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014904 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14905 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014906 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14907 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014908 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14909 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014910 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14911 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014912 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14913 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014914 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14915 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014916 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14917 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014918 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14919 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014920 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14921 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014922 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14923 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014924 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14925 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014926 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14927 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014928 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14929 msm_routing_put_port_mixer),
14930};
14931
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014932static const struct snd_kcontrol_new pri_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014933 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14934 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014935 MSM_BACKEND_DAI_PRI_MI2S_TX, 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("SEC_MI2S_TX", SND_SOC_NOPM,
14939 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014940 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 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("QUAT_MI2S_TX", SND_SOC_NOPM,
14944 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014945 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 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("INTERNAL_FM_TX", SND_SOC_NOPM,
14949 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014950 MSM_BACKEND_DAI_INT_FM_TX, 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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14954 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014955 MSM_BACKEND_DAI_INT_BT_SCO_TX, 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("AFE_PCM_TX", SND_SOC_NOPM,
14959 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014960 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
14964 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014965 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14969 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014970 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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("PRI_TDM_TX_0", SND_SOC_NOPM,
14974 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014975 MSM_BACKEND_DAI_PRI_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("PRI_TDM_TX_1", SND_SOC_NOPM,
14979 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014980 MSM_BACKEND_DAI_PRI_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("PRI_TDM_TX_2", SND_SOC_NOPM,
14984 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014985 MSM_BACKEND_DAI_PRI_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("PRI_TDM_TX_3", SND_SOC_NOPM,
14989 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014990 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14991 msm_routing_get_port_mixer,
14992 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014993 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14994 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014995 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14996 msm_routing_get_port_mixer,
14997 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014998 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14999 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015000 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15001 msm_routing_get_port_mixer,
15002 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015003 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15004 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015005 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15006 msm_routing_get_port_mixer,
15007 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015008 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15009 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015010 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15011 msm_routing_get_port_mixer,
15012 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015013 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15014 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015015 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15016 msm_routing_get_port_mixer,
15017 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015018 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15019 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015020 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15021 msm_routing_get_port_mixer,
15022 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015023 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15024 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015025 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15026 msm_routing_get_port_mixer,
15027 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015028 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15029 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015030 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15031 msm_routing_get_port_mixer,
15032 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015033};
15034
15035static const struct snd_kcontrol_new pri_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015036 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15037 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015038 MSM_BACKEND_DAI_PRI_MI2S_TX, 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("SEC_MI2S_TX", SND_SOC_NOPM,
15042 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015043 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 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("QUAT_MI2S_TX", SND_SOC_NOPM,
15047 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015048 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 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("INTERNAL_FM_TX", SND_SOC_NOPM,
15052 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015053 MSM_BACKEND_DAI_INT_FM_TX, 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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15057 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015058 MSM_BACKEND_DAI_INT_BT_SCO_TX, 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("AFE_PCM_TX", SND_SOC_NOPM,
15062 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015063 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
15067 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015068 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15072 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015073 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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("PRI_TDM_TX_0", SND_SOC_NOPM,
15077 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015078 MSM_BACKEND_DAI_PRI_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("PRI_TDM_TX_1", SND_SOC_NOPM,
15082 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015083 MSM_BACKEND_DAI_PRI_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("PRI_TDM_TX_2", SND_SOC_NOPM,
15087 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015088 MSM_BACKEND_DAI_PRI_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("PRI_TDM_TX_3", SND_SOC_NOPM,
15092 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015093 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
15094 msm_routing_get_port_mixer,
15095 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015096 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15097 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015098 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15099 msm_routing_get_port_mixer,
15100 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015101 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15102 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015103 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15104 msm_routing_get_port_mixer,
15105 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015106 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15107 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015108 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15109 msm_routing_get_port_mixer,
15110 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015111 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15112 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015113 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15114 msm_routing_get_port_mixer,
15115 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015116 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15117 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015118 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15119 msm_routing_get_port_mixer,
15120 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015121 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15122 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015123 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15124 msm_routing_get_port_mixer,
15125 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015126 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15127 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015128 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15129 msm_routing_get_port_mixer,
15130 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015131 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15132 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015133 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15134 msm_routing_get_port_mixer,
15135 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015136};
15137
15138static const struct snd_kcontrol_new pri_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015139 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15140 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015141 MSM_BACKEND_DAI_PRI_MI2S_TX, 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_MI2S_TX", SND_SOC_NOPM,
15145 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015146 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15147 msm_routing_get_port_mixer,
15148 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015149 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15150 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015151 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 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("INTERNAL_FM_TX", SND_SOC_NOPM,
15155 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015156 MSM_BACKEND_DAI_INT_FM_TX, 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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15160 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015161 MSM_BACKEND_DAI_INT_BT_SCO_TX, 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("AFE_PCM_TX", SND_SOC_NOPM,
15165 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015166 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
15170 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015171 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15175 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015176 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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("PRI_TDM_TX_0", SND_SOC_NOPM,
15180 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015181 MSM_BACKEND_DAI_PRI_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("PRI_TDM_TX_1", SND_SOC_NOPM,
15185 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015186 MSM_BACKEND_DAI_PRI_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("PRI_TDM_TX_2", SND_SOC_NOPM,
15190 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015191 MSM_BACKEND_DAI_PRI_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("PRI_TDM_TX_3", SND_SOC_NOPM,
15195 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015196 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
15197 msm_routing_get_port_mixer,
15198 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015199 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15200 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015201 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15202 msm_routing_get_port_mixer,
15203 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015204 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15205 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015206 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15207 msm_routing_get_port_mixer,
15208 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015209 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15210 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015211 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15212 msm_routing_get_port_mixer,
15213 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015214 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15215 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015216 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15217 msm_routing_get_port_mixer,
15218 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015219 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15220 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015221 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15222 msm_routing_get_port_mixer,
15223 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015224 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15225 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015226 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15227 msm_routing_get_port_mixer,
15228 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015229 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15230 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015231 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15232 msm_routing_get_port_mixer,
15233 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015234 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15235 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015236 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15237 msm_routing_get_port_mixer,
15238 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015239};
15240
15241static const struct snd_kcontrol_new pri_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015242 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15243 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015244 MSM_BACKEND_DAI_PRI_MI2S_TX, 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_MI2S_TX", SND_SOC_NOPM,
15248 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015249 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15250 msm_routing_get_port_mixer,
15251 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015252 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15253 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015254 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 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("INTERNAL_FM_TX", SND_SOC_NOPM,
15258 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015259 MSM_BACKEND_DAI_INT_FM_TX, 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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15263 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015264 MSM_BACKEND_DAI_INT_BT_SCO_TX, 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("AFE_PCM_TX", SND_SOC_NOPM,
15268 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015269 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
15273 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015274 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15278 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015279 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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("PRI_TDM_TX_0", SND_SOC_NOPM,
15283 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015284 MSM_BACKEND_DAI_PRI_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("PRI_TDM_TX_1", SND_SOC_NOPM,
15288 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015289 MSM_BACKEND_DAI_PRI_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("PRI_TDM_TX_2", SND_SOC_NOPM,
15293 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015294 MSM_BACKEND_DAI_PRI_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("PRI_TDM_TX_3", SND_SOC_NOPM,
15298 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015299 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
15300 msm_routing_get_port_mixer,
15301 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015302 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15303 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015304 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15305 msm_routing_get_port_mixer,
15306 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015307 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15308 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015309 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15310 msm_routing_get_port_mixer,
15311 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015312 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15313 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015314 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15315 msm_routing_get_port_mixer,
15316 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015317 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15318 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015319 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15320 msm_routing_get_port_mixer,
15321 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015322 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15323 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015324 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15325 msm_routing_get_port_mixer,
15326 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015327 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15328 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015329 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15330 msm_routing_get_port_mixer,
15331 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015332 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15333 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015334 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15335 msm_routing_get_port_mixer,
15336 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015337 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15338 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015339 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15340 msm_routing_get_port_mixer,
15341 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015342};
15343
15344static const struct snd_kcontrol_new sec_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015345 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15346 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015347 MSM_BACKEND_DAI_PRI_MI2S_TX, 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_MI2S_TX", SND_SOC_NOPM,
15351 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015352 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15353 msm_routing_get_port_mixer,
15354 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015355 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15356 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015357 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 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("INTERNAL_FM_TX", SND_SOC_NOPM,
15361 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015362 MSM_BACKEND_DAI_INT_FM_TX, 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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15366 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015367 MSM_BACKEND_DAI_INT_BT_SCO_TX, 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("AFE_PCM_TX", SND_SOC_NOPM,
15371 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015372 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
15376 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015377 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15381 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015382 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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("SEC_TDM_TX_0", SND_SOC_NOPM,
15386 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015387 MSM_BACKEND_DAI_SEC_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("SEC_TDM_TX_1", SND_SOC_NOPM,
15391 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015392 MSM_BACKEND_DAI_SEC_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("SEC_TDM_TX_2", SND_SOC_NOPM,
15396 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015397 MSM_BACKEND_DAI_SEC_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("SEC_TDM_TX_3", SND_SOC_NOPM,
15401 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015402 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
15403 msm_routing_get_port_mixer,
15404 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015405 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15406 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015407 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15408 msm_routing_get_port_mixer,
15409 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015410 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15411 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015412 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15413 msm_routing_get_port_mixer,
15414 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015415 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15416 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015417 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15418 msm_routing_get_port_mixer,
15419 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015420 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15421 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015422 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15423 msm_routing_get_port_mixer,
15424 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015425 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15426 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015427 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15428 msm_routing_get_port_mixer,
15429 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015430 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15431 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015432 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15433 msm_routing_get_port_mixer,
15434 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015435 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15436 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015437 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15438 msm_routing_get_port_mixer,
15439 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015440 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15441 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015442 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15443 msm_routing_get_port_mixer,
15444 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015445};
15446
15447static const struct snd_kcontrol_new sec_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015448 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15449 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015450 MSM_BACKEND_DAI_PRI_MI2S_TX, 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_MI2S_TX", SND_SOC_NOPM,
15454 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015455 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15456 msm_routing_get_port_mixer,
15457 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015458 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15459 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015460 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 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("INTERNAL_FM_TX", SND_SOC_NOPM,
15464 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015465 MSM_BACKEND_DAI_INT_FM_TX, 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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15469 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015470 MSM_BACKEND_DAI_INT_BT_SCO_TX, 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("AFE_PCM_TX", SND_SOC_NOPM,
15474 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015475 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
15479 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015480 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15484 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015485 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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("SEC_TDM_TX_0", SND_SOC_NOPM,
15489 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015490 MSM_BACKEND_DAI_SEC_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("SEC_TDM_TX_1", SND_SOC_NOPM,
15494 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015495 MSM_BACKEND_DAI_SEC_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("SEC_TDM_TX_2", SND_SOC_NOPM,
15499 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015500 MSM_BACKEND_DAI_SEC_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("SEC_TDM_TX_3", SND_SOC_NOPM,
15504 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015505 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
15506 msm_routing_get_port_mixer,
15507 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015508 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15509 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015510 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15511 msm_routing_get_port_mixer,
15512 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015513 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15514 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015515 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15516 msm_routing_get_port_mixer,
15517 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015518 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15519 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015520 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15521 msm_routing_get_port_mixer,
15522 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015523 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15524 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015525 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15526 msm_routing_get_port_mixer,
15527 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015528 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15529 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015530 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15531 msm_routing_get_port_mixer,
15532 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015533 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15534 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015535 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15536 msm_routing_get_port_mixer,
15537 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015538 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15539 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015540 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15541 msm_routing_get_port_mixer,
15542 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015543 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15544 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015545 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15546 msm_routing_get_port_mixer,
15547 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015548};
15549
15550static const struct snd_kcontrol_new sec_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015551 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15552 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015553 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15554 msm_routing_get_port_mixer,
15555 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015556 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15557 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015558 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15559 msm_routing_get_port_mixer,
15560 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015561 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15562 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015563 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15564 msm_routing_get_port_mixer,
15565 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015566 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15567 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015568 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15569 msm_routing_get_port_mixer,
15570 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015571 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15572 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015573 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15574 msm_routing_get_port_mixer,
15575 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015576 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15577 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015578 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15579 msm_routing_get_port_mixer,
15580 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015581 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15582 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015583 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15584 msm_routing_get_port_mixer,
15585 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015586 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15587 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015588 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15589 msm_routing_get_port_mixer,
15590 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015591 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
15592 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015593 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
15594 msm_routing_get_port_mixer,
15595 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015596 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
15597 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015598 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
15599 msm_routing_get_port_mixer,
15600 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015601 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
15602 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015603 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
15604 msm_routing_get_port_mixer,
15605 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015606 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
15607 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015608 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
15609 msm_routing_get_port_mixer,
15610 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015611 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15612 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015613 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15614 msm_routing_get_port_mixer,
15615 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015616 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15617 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015618 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15619 msm_routing_get_port_mixer,
15620 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015621 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15622 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015623 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15624 msm_routing_get_port_mixer,
15625 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015626 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15627 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015628 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15629 msm_routing_get_port_mixer,
15630 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015631 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15632 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015633 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15634 msm_routing_get_port_mixer,
15635 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015636 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15637 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015638 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15639 msm_routing_get_port_mixer,
15640 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015641 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15642 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015643 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15644 msm_routing_get_port_mixer,
15645 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015646 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15647 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015648 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15649 msm_routing_get_port_mixer,
15650 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015651};
15652
15653static const struct snd_kcontrol_new sec_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015654 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15655 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015656 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15657 msm_routing_get_port_mixer,
15658 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015659 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15660 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015661 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15662 msm_routing_get_port_mixer,
15663 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015664 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15665 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015666 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15667 msm_routing_get_port_mixer,
15668 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015669 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15670 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015671 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15672 msm_routing_get_port_mixer,
15673 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015674 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15675 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015676 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15677 msm_routing_get_port_mixer,
15678 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015679 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15680 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015681 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15682 msm_routing_get_port_mixer,
15683 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015684 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15685 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015686 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15687 msm_routing_get_port_mixer,
15688 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015689 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15690 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015691 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15692 msm_routing_get_port_mixer,
15693 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015694 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
15695 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015696 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
15697 msm_routing_get_port_mixer,
15698 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015699 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
15700 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015701 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
15702 msm_routing_get_port_mixer,
15703 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015704 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
15705 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015706 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
15707 msm_routing_get_port_mixer,
15708 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015709 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
15710 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015711 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
15712 msm_routing_get_port_mixer,
15713 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015714 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15715 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015716 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15717 msm_routing_get_port_mixer,
15718 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015719 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15720 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015721 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15722 msm_routing_get_port_mixer,
15723 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015724 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15725 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015726 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15727 msm_routing_get_port_mixer,
15728 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015729 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15730 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015731 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15732 msm_routing_get_port_mixer,
15733 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015734 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15735 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015736 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15737 msm_routing_get_port_mixer,
15738 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015739 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15740 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015741 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15742 msm_routing_get_port_mixer,
15743 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015744 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15745 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015746 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15747 msm_routing_get_port_mixer,
15748 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015749 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15750 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015751 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15752 msm_routing_get_port_mixer,
15753 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015754};
15755
Derek Chenfdcc0982018-10-02 15:14:03 -070015756static const struct snd_kcontrol_new sec_tdm_rx_7_port_mixer_controls[] = {
15757 SOC_DOUBLE_EXT("TERT_TDM_TX_7", SND_SOC_NOPM,
15758 MSM_BACKEND_DAI_SEC_TDM_RX_7,
15759 MSM_BACKEND_DAI_TERT_TDM_TX_7, 1, 0,
15760 msm_routing_get_port_mixer,
15761 msm_routing_put_port_mixer),
15762};
15763
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015764static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015765 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15766 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015767 MSM_BACKEND_DAI_PRI_MI2S_TX, 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("SEC_MI2S_TX", SND_SOC_NOPM,
15771 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015772 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 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("QUAT_MI2S_TX", SND_SOC_NOPM,
15776 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015777 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 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("INTERNAL_FM_TX", SND_SOC_NOPM,
15781 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015782 MSM_BACKEND_DAI_INT_FM_TX, 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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15786 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015787 MSM_BACKEND_DAI_INT_BT_SCO_TX, 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("AFE_PCM_TX", SND_SOC_NOPM,
15791 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015792 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
15796 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015797 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15801 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015802 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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("TERT_TDM_TX_0", SND_SOC_NOPM,
15806 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015807 MSM_BACKEND_DAI_TERT_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("TERT_TDM_TX_1", SND_SOC_NOPM,
15811 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015812 MSM_BACKEND_DAI_TERT_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("TERT_TDM_TX_2", SND_SOC_NOPM,
15816 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015817 MSM_BACKEND_DAI_TERT_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("TERT_TDM_TX_3", SND_SOC_NOPM,
15821 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015822 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15823 msm_routing_get_port_mixer,
15824 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015825 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15826 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015827 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15828 msm_routing_get_port_mixer,
15829 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015830 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15831 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015832 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15833 msm_routing_get_port_mixer,
15834 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015835 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15836 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015837 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15838 msm_routing_get_port_mixer,
15839 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015840 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15841 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015842 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15843 msm_routing_get_port_mixer,
15844 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015845 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15846 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015847 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15848 msm_routing_get_port_mixer,
15849 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015850 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15851 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015852 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15853 msm_routing_get_port_mixer,
15854 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015855 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15856 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015857 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15858 msm_routing_get_port_mixer,
15859 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015860 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15861 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015862 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15863 msm_routing_get_port_mixer,
15864 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015865};
15866
15867static const struct snd_kcontrol_new tert_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015868 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15869 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015870 MSM_BACKEND_DAI_PRI_MI2S_TX, 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("SEC_MI2S_TX", SND_SOC_NOPM,
15874 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015875 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 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("QUAT_MI2S_TX", SND_SOC_NOPM,
15879 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015880 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 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("INTERNAL_FM_TX", SND_SOC_NOPM,
15884 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015885 MSM_BACKEND_DAI_INT_FM_TX, 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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15889 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015890 MSM_BACKEND_DAI_INT_BT_SCO_TX, 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("AFE_PCM_TX", SND_SOC_NOPM,
15894 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015895 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
15899 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015900 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15904 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015905 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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("TERT_TDM_TX_0", SND_SOC_NOPM,
15909 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015910 MSM_BACKEND_DAI_TERT_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("TERT_TDM_TX_1", SND_SOC_NOPM,
15914 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015915 MSM_BACKEND_DAI_TERT_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("TERT_TDM_TX_2", SND_SOC_NOPM,
15919 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015920 MSM_BACKEND_DAI_TERT_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("TERT_TDM_TX_3", SND_SOC_NOPM,
15924 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015925 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15926 msm_routing_get_port_mixer,
15927 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015928 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15929 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015930 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15931 msm_routing_get_port_mixer,
15932 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015933 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15934 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015935 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15936 msm_routing_get_port_mixer,
15937 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015938 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15939 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015940 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15941 msm_routing_get_port_mixer,
15942 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015943 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15944 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015945 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15946 msm_routing_get_port_mixer,
15947 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015948 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15949 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015950 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15951 msm_routing_get_port_mixer,
15952 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015953 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15954 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015955 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15956 msm_routing_get_port_mixer,
15957 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015958 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15959 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015960 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15961 msm_routing_get_port_mixer,
15962 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015963 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15964 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015965 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15966 msm_routing_get_port_mixer,
15967 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015968};
15969
15970static const struct snd_kcontrol_new tert_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015971 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15972 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015973 MSM_BACKEND_DAI_PRI_MI2S_TX, 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("SEC_MI2S_TX", SND_SOC_NOPM,
15977 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015978 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 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("QUAT_MI2S_TX", SND_SOC_NOPM,
15982 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015983 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 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("INTERNAL_FM_TX", SND_SOC_NOPM,
15987 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015988 MSM_BACKEND_DAI_INT_FM_TX, 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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15992 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015993 MSM_BACKEND_DAI_INT_BT_SCO_TX, 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("AFE_PCM_TX", SND_SOC_NOPM,
15997 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015998 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
16002 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016003 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16007 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016008 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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("TERT_TDM_TX_0", SND_SOC_NOPM,
16012 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016013 MSM_BACKEND_DAI_TERT_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("TERT_TDM_TX_1", SND_SOC_NOPM,
16017 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016018 MSM_BACKEND_DAI_TERT_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("TERT_TDM_TX_2", SND_SOC_NOPM,
16022 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016023 MSM_BACKEND_DAI_TERT_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("TERT_TDM_TX_3", SND_SOC_NOPM,
16027 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016028 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16029 msm_routing_get_port_mixer,
16030 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016031 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16032 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016033 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16034 msm_routing_get_port_mixer,
16035 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016036 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16037 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016038 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16039 msm_routing_get_port_mixer,
16040 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016041 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16042 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016043 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16044 msm_routing_get_port_mixer,
16045 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016046 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16047 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016048 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16049 msm_routing_get_port_mixer,
16050 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016051 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16052 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016053 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16054 msm_routing_get_port_mixer,
16055 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016056 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16057 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016058 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16059 msm_routing_get_port_mixer,
16060 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016061 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16062 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016063 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16064 msm_routing_get_port_mixer,
16065 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016066 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16067 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016068 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16069 msm_routing_get_port_mixer,
16070 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016071};
16072
16073static const struct snd_kcontrol_new tert_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016074 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16075 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016076 MSM_BACKEND_DAI_PRI_MI2S_TX, 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("SEC_MI2S_TX", SND_SOC_NOPM,
16080 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016081 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 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("QUAT_MI2S_TX", SND_SOC_NOPM,
16085 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016086 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 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("INTERNAL_FM_TX", SND_SOC_NOPM,
16090 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016091 MSM_BACKEND_DAI_INT_FM_TX, 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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16095 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016096 MSM_BACKEND_DAI_INT_BT_SCO_TX, 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("AFE_PCM_TX", SND_SOC_NOPM,
16100 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016101 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
16105 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016106 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16110 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016111 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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("TERT_TDM_TX_0", SND_SOC_NOPM,
16115 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016116 MSM_BACKEND_DAI_TERT_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("TERT_TDM_TX_1", SND_SOC_NOPM,
16120 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016121 MSM_BACKEND_DAI_TERT_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("TERT_TDM_TX_2", SND_SOC_NOPM,
16125 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016126 MSM_BACKEND_DAI_TERT_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("TERT_TDM_TX_3", SND_SOC_NOPM,
16130 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016131 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16132 msm_routing_get_port_mixer,
16133 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016134 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16135 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016136 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16137 msm_routing_get_port_mixer,
16138 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016139 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16140 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016141 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16142 msm_routing_get_port_mixer,
16143 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016144 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16145 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016146 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16147 msm_routing_get_port_mixer,
16148 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016149 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16150 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016151 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16152 msm_routing_get_port_mixer,
16153 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016154 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16155 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016156 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16157 msm_routing_get_port_mixer,
16158 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016159 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16160 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016161 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16162 msm_routing_get_port_mixer,
16163 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016164 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16165 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016166 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16167 msm_routing_get_port_mixer,
16168 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016169 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16170 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016171 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16172 msm_routing_get_port_mixer,
16173 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016174};
16175
16176static const struct snd_kcontrol_new quat_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016177 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16178 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016179 MSM_BACKEND_DAI_PRI_MI2S_TX, 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("SEC_MI2S_TX", SND_SOC_NOPM,
16183 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016184 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 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_MI2S_TX", SND_SOC_NOPM,
16188 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016189 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 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("INTERNAL_FM_TX", SND_SOC_NOPM,
16193 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016194 MSM_BACKEND_DAI_INT_FM_TX, 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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16198 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016199 MSM_BACKEND_DAI_INT_BT_SCO_TX, 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("AFE_PCM_TX", SND_SOC_NOPM,
16203 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016204 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
16208 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016209 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16213 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016214 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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("TERT_TDM_TX_0", SND_SOC_NOPM,
16218 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016219 MSM_BACKEND_DAI_TERT_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("TERT_TDM_TX_1", SND_SOC_NOPM,
16223 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016224 MSM_BACKEND_DAI_TERT_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("TERT_TDM_TX_2", SND_SOC_NOPM,
16228 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016229 MSM_BACKEND_DAI_TERT_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("TERT_TDM_TX_3", SND_SOC_NOPM,
16233 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016234 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16235 msm_routing_get_port_mixer,
16236 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016237 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16238 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016239 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16240 msm_routing_get_port_mixer,
16241 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016242 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16243 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016244 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16245 msm_routing_get_port_mixer,
16246 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016247 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16248 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016249 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16250 msm_routing_get_port_mixer,
16251 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016252 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16253 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016254 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16255 msm_routing_get_port_mixer,
16256 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016257 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16258 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016259 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16260 msm_routing_get_port_mixer,
16261 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016262 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16263 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016264 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16265 msm_routing_get_port_mixer,
16266 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016267 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16268 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016269 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16270 msm_routing_get_port_mixer,
16271 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016272 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16273 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016274 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16275 msm_routing_get_port_mixer,
16276 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016277};
16278
16279static const struct snd_kcontrol_new quat_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016280 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16281 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016282 MSM_BACKEND_DAI_PRI_MI2S_TX, 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("SEC_MI2S_TX", SND_SOC_NOPM,
16286 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016287 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 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_MI2S_TX", SND_SOC_NOPM,
16291 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016292 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 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("INTERNAL_FM_TX", SND_SOC_NOPM,
16296 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016297 MSM_BACKEND_DAI_INT_FM_TX, 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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16301 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016302 MSM_BACKEND_DAI_INT_BT_SCO_TX, 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("AFE_PCM_TX", SND_SOC_NOPM,
16306 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016307 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
16311 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016312 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16316 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016317 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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("TERT_TDM_TX_0", SND_SOC_NOPM,
16321 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016322 MSM_BACKEND_DAI_TERT_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("TERT_TDM_TX_1", SND_SOC_NOPM,
16326 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016327 MSM_BACKEND_DAI_TERT_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("TERT_TDM_TX_2", SND_SOC_NOPM,
16331 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016332 MSM_BACKEND_DAI_TERT_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("TERT_TDM_TX_3", SND_SOC_NOPM,
16336 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016337 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16338 msm_routing_get_port_mixer,
16339 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016340 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16341 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016342 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16343 msm_routing_get_port_mixer,
16344 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016345 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16346 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016347 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16348 msm_routing_get_port_mixer,
16349 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016350 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16351 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016352 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16353 msm_routing_get_port_mixer,
16354 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016355 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16356 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016357 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16358 msm_routing_get_port_mixer,
16359 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016360 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16361 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016362 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16363 msm_routing_get_port_mixer,
16364 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016365 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16366 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016367 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16368 msm_routing_get_port_mixer,
16369 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016370 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16371 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016372 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16373 msm_routing_get_port_mixer,
16374 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016375 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16376 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016377 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16378 msm_routing_get_port_mixer,
16379 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016380};
16381
16382static const struct snd_kcontrol_new quat_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016383 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16384 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016385 MSM_BACKEND_DAI_PRI_MI2S_TX, 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("SEC_MI2S_TX", SND_SOC_NOPM,
16389 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016390 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 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_MI2S_TX", SND_SOC_NOPM,
16394 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016395 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 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("INTERNAL_FM_TX", SND_SOC_NOPM,
16399 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016400 MSM_BACKEND_DAI_INT_FM_TX, 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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16404 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016405 MSM_BACKEND_DAI_INT_BT_SCO_TX, 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("AFE_PCM_TX", SND_SOC_NOPM,
16409 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016410 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
16414 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016415 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16419 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016420 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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("TERT_TDM_TX_0", SND_SOC_NOPM,
16424 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016425 MSM_BACKEND_DAI_TERT_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("TERT_TDM_TX_1", SND_SOC_NOPM,
16429 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016430 MSM_BACKEND_DAI_TERT_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("TERT_TDM_TX_2", SND_SOC_NOPM,
16434 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016435 MSM_BACKEND_DAI_TERT_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("TERT_TDM_TX_3", SND_SOC_NOPM,
16439 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016440 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16441 msm_routing_get_port_mixer,
16442 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016443 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16444 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016445 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16446 msm_routing_get_port_mixer,
16447 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016448 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16449 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016450 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16451 msm_routing_get_port_mixer,
16452 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016453 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16454 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016455 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16456 msm_routing_get_port_mixer,
16457 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016458 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16459 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016460 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16461 msm_routing_get_port_mixer,
16462 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016463 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16464 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016465 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16466 msm_routing_get_port_mixer,
16467 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016468 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16469 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016470 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16471 msm_routing_get_port_mixer,
16472 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016473 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16474 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016475 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16476 msm_routing_get_port_mixer,
16477 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016478 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16479 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016480 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16481 msm_routing_get_port_mixer,
16482 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016483};
16484
16485static const struct snd_kcontrol_new quat_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016486 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16487 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016488 MSM_BACKEND_DAI_PRI_MI2S_TX, 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("SEC_MI2S_TX", SND_SOC_NOPM,
16492 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016493 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 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_MI2S_TX", SND_SOC_NOPM,
16497 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016498 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 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("INTERNAL_FM_TX", SND_SOC_NOPM,
16502 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016503 MSM_BACKEND_DAI_INT_FM_TX, 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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16507 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016508 MSM_BACKEND_DAI_INT_BT_SCO_TX, 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("AFE_PCM_TX", SND_SOC_NOPM,
16512 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016513 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
16517 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016518 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16522 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016523 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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("TERT_TDM_TX_0", SND_SOC_NOPM,
16527 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016528 MSM_BACKEND_DAI_TERT_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("TERT_TDM_TX_1", SND_SOC_NOPM,
16532 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016533 MSM_BACKEND_DAI_TERT_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("TERT_TDM_TX_2", SND_SOC_NOPM,
16537 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016538 MSM_BACKEND_DAI_TERT_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("TERT_TDM_TX_3", SND_SOC_NOPM,
16542 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016543 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16544 msm_routing_get_port_mixer,
16545 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016546 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16547 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016548 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16549 msm_routing_get_port_mixer,
16550 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016551 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16552 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016553 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16554 msm_routing_get_port_mixer,
16555 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016556 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16557 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016558 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16559 msm_routing_get_port_mixer,
16560 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016561 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16562 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016563 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16564 msm_routing_get_port_mixer,
16565 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016566 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16567 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016568 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16569 msm_routing_get_port_mixer,
16570 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016571 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16572 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016573 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16574 msm_routing_get_port_mixer,
16575 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016576 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16577 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016578 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16579 msm_routing_get_port_mixer,
16580 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016581 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16582 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016583 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16584 msm_routing_get_port_mixer,
16585 msm_routing_put_port_mixer),
16586};
16587
Derek Chenb9048cb2019-03-07 14:54:13 -050016588static const struct snd_kcontrol_new quat_tdm_rx_7_port_mixer_controls[] = {
16589 SOC_DOUBLE_EXT("QUAT_TDM_TX_7", SND_SOC_NOPM,
16590 MSM_BACKEND_DAI_QUAT_TDM_RX_7,
16591 MSM_BACKEND_DAI_QUAT_TDM_TX_7, 1, 0,
16592 msm_routing_get_port_mixer,
16593 msm_routing_put_port_mixer),
16594};
16595
Rohit Kumara5077932017-09-10 22:05:05 +053016596static const struct snd_kcontrol_new quin_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016597 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16598 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016599 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16600 msm_routing_get_port_mixer,
16601 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016602 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16603 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016604 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16605 msm_routing_get_port_mixer,
16606 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016607 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16608 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016609 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16610 msm_routing_get_port_mixer,
16611 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016612 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16613 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016614 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16615 msm_routing_get_port_mixer,
16616 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016617 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16618 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016619 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16620 msm_routing_get_port_mixer,
16621 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016622 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16623 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016624 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16625 msm_routing_get_port_mixer,
16626 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016627 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16628 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016629 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16630 msm_routing_get_port_mixer,
16631 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016632 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16633 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016634 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16635 msm_routing_get_port_mixer,
16636 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016637 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16638 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016639 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16640 msm_routing_get_port_mixer,
16641 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016642 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16643 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016644 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16645 msm_routing_get_port_mixer,
16646 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016647 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16648 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016649 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16650 msm_routing_get_port_mixer,
16651 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016652 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16653 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016654 MSM_BACKEND_DAI_TERT_TDM_TX_3, 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("QUAT_TDM_TX_0", SND_SOC_NOPM,
16658 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016659 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 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("QUAT_TDM_TX_1", SND_SOC_NOPM,
16663 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016664 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
16668 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016669 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
16673 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016674 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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("QUIN_TDM_TX_0", SND_SOC_NOPM,
16678 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016679 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 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("QUIN_TDM_TX_1", SND_SOC_NOPM,
16683 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016684 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 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("QUIN_TDM_TX_2", SND_SOC_NOPM,
16688 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016689 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 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("QUIN_TDM_TX_3", SND_SOC_NOPM,
16693 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053016694 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16695 msm_routing_get_port_mixer,
16696 msm_routing_put_port_mixer),
16697};
16698
16699static const struct snd_kcontrol_new quin_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016700 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16701 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016702 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16703 msm_routing_get_port_mixer,
16704 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016705 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16706 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016707 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16708 msm_routing_get_port_mixer,
16709 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016710 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16711 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016712 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16713 msm_routing_get_port_mixer,
16714 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016715 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16716 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016717 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16718 msm_routing_get_port_mixer,
16719 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016720 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16721 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016722 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16723 msm_routing_get_port_mixer,
16724 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016725 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16726 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016727 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16728 msm_routing_get_port_mixer,
16729 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016730 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16731 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016732 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16733 msm_routing_get_port_mixer,
16734 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016735 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16736 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016737 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16738 msm_routing_get_port_mixer,
16739 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016740 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16741 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016742 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16743 msm_routing_get_port_mixer,
16744 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016745 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16746 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016747 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16748 msm_routing_get_port_mixer,
16749 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016750 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16751 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016752 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16753 msm_routing_get_port_mixer,
16754 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016755 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16756 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016757 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16758 msm_routing_get_port_mixer,
16759 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016760 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16761 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016762 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16763 msm_routing_get_port_mixer,
16764 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016765 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16766 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016767 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16768 msm_routing_get_port_mixer,
16769 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016770 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16771 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016772 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16773 msm_routing_get_port_mixer,
16774 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016775 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16776 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016777 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16778 msm_routing_get_port_mixer,
16779 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016780 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16781 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016782 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16783 msm_routing_get_port_mixer,
16784 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016785 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16786 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016787 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16788 msm_routing_get_port_mixer,
16789 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016790 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16791 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016792 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16793 msm_routing_get_port_mixer,
16794 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016795 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16796 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016797 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16798 msm_routing_get_port_mixer,
16799 msm_routing_put_port_mixer),
16800};
16801
16802static const struct snd_kcontrol_new quin_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016803 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16804 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016805 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16806 msm_routing_get_port_mixer,
16807 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016808 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16809 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016810 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16811 msm_routing_get_port_mixer,
16812 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016813 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16814 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016815 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16816 msm_routing_get_port_mixer,
16817 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016818 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16819 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016820 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16821 msm_routing_get_port_mixer,
16822 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016823 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16824 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016825 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16826 msm_routing_get_port_mixer,
16827 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016828 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16829 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016830 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16831 msm_routing_get_port_mixer,
16832 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016833 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16834 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016835 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16836 msm_routing_get_port_mixer,
16837 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016838 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16839 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016840 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16841 msm_routing_get_port_mixer,
16842 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016843 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16844 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016845 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16846 msm_routing_get_port_mixer,
16847 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016848 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16849 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016850 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16851 msm_routing_get_port_mixer,
16852 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016853 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16854 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016855 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16856 msm_routing_get_port_mixer,
16857 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016858 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16859 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016860 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16861 msm_routing_get_port_mixer,
16862 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016863 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16864 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016865 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16866 msm_routing_get_port_mixer,
16867 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016868 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16869 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016870 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16871 msm_routing_get_port_mixer,
16872 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016873 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16874 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016875 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16876 msm_routing_get_port_mixer,
16877 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016878 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16879 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016880 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16881 msm_routing_get_port_mixer,
16882 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016883 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16884 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016885 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16886 msm_routing_get_port_mixer,
16887 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016888 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16889 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016890 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16891 msm_routing_get_port_mixer,
16892 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016893 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16894 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016895 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16896 msm_routing_get_port_mixer,
16897 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016898 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16899 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016900 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16901 msm_routing_get_port_mixer,
16902 msm_routing_put_port_mixer),
16903};
16904
16905static const struct snd_kcontrol_new quin_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016906 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16907 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016908 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16909 msm_routing_get_port_mixer,
16910 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016911 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16912 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016913 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16914 msm_routing_get_port_mixer,
16915 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016916 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16917 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016918 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16919 msm_routing_get_port_mixer,
16920 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016921 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16922 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016923 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16924 msm_routing_get_port_mixer,
16925 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016926 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16927 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016928 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16929 msm_routing_get_port_mixer,
16930 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016931 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16932 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016933 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16934 msm_routing_get_port_mixer,
16935 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016936 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16937 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016938 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16939 msm_routing_get_port_mixer,
16940 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016941 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16942 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016943 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16944 msm_routing_get_port_mixer,
16945 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016946 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16947 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016948 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16949 msm_routing_get_port_mixer,
16950 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016951 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16952 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016953 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16954 msm_routing_get_port_mixer,
16955 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016956 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16957 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016958 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16959 msm_routing_get_port_mixer,
16960 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016961 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16962 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016963 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16964 msm_routing_get_port_mixer,
16965 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016966 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16967 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016968 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16969 msm_routing_get_port_mixer,
16970 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016971 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16972 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016973 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16974 msm_routing_get_port_mixer,
16975 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016976 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16977 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016978 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16979 msm_routing_get_port_mixer,
16980 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016981 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16982 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016983 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16984 msm_routing_get_port_mixer,
16985 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016986 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16987 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016988 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16989 msm_routing_get_port_mixer,
16990 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016991 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16992 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016993 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16994 msm_routing_get_port_mixer,
16995 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016996 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16997 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016998 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16999 msm_routing_get_port_mixer,
17000 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017001 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
17002 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053017003 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
17004 msm_routing_get_port_mixer,
17005 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017006};
17007
17008static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017009 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17010 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017011 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17012 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017013 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17014 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017015 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17016 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017017 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17018 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017019 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17020 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017021 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17022 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017023 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17024 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017025 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17026 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017027 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17028 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017029 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17030 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017031 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17032 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017033 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17034 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017035 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17036 msm_routing_put_port_mixer),
17037};
17038
17039static const struct snd_kcontrol_new sec_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017040 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17041 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017042 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17043 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017044 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17045 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017046 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17047 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017048 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17049 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017050 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17051 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017052 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17053 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017054 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17055 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017056 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17057 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017058 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17059 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017060 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17061 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017062 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17063 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017064 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17065 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017066 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17067 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017068 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17069 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017070 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17071 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017072 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17073 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080017074 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17075 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017076};
17077
17078static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017079 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
17080 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017081 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
17082 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017083 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
17084 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017085 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
17086 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017087 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
17088 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017089 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
17090 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017091 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
17092 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017093 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
17094 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017095 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
17096 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017097 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
17098 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017099 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17100 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017101 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
17102 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017103 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17104 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017105 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
17106 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017107 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17108 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017109 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
17110 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053017111 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17112 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
17113 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
17114 msm_routing_put_listen_mixer),
17115 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17116 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
17117 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
17118 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017119 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17120 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
17121 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
17122 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017123 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17124 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
17125 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
17126 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017127 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17128 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
17129 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
17130 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017131};
17132
17133static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017134 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
17135 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017136 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
17137 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017138 SOC_DOUBLE_EXT("SLIMBUS_1_TX",
17139 SND_SOC_NOPM,
17140 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017141 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
17142 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017143 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
17144 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017145 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
17146 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017147 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
17148 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017149 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
17150 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017151 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
17152 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017153 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
17154 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017155 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17156 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017157 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
17158 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017159 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17160 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017161 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
17162 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017163 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17164 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017165 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
17166 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053017167 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17168 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
17169 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
17170 msm_routing_put_listen_mixer),
17171 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17172 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
17173 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
17174 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017175 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17176 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
17177 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
17178 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017179 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17180 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
17181 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
17182 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017183 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17184 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
17185 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
17186 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017187};
17188
17189static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017190 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
17191 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017192 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
17193 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017194 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
17195 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017196 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
17197 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017198 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
17199 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017200 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
17201 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017202 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
17203 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017204 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
17205 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017206 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
17207 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017208 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
17209 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017210 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17211 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017212 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
17213 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017214 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17215 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017216 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
17217 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017218 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17219 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017220 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
17221 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053017222 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17223 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
17224 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
17225 msm_routing_put_listen_mixer),
17226 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17227 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
17228 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
17229 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017230 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17231 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
17232 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
17233 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017234 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17235 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
17236 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
17237 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017238 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17239 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
17240 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
17241 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017242};
17243
17244static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017245 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
17246 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017247 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17248 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017249 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
17250 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017251 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17252 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017253 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
17254 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017255 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17256 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017257 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
17258 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017259 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17260 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017261 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
17262 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017263 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17264 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017265 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17266 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017267 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17268 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017269 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17270 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017271 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17272 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017273 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17274 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017275 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17276 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053017277 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17278 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
17279 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17280 msm_routing_put_listen_mixer),
17281 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17282 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
17283 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17284 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017285 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17286 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
17287 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17288 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017289 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17290 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
17291 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17292 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017293 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17294 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
17295 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
17296 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017297};
17298
17299static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017300 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
17301 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017302 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17303 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017304 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
17305 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017306 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17307 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017308 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
17309 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017310 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17311 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017312 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
17313 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017314 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17315 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017316 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
17317 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017318 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17319 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017320 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17321 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017322 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17323 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017324 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17325 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017326 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17327 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017328 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17329 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017330 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17331 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053017332 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17333 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
17334 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17335 msm_routing_put_listen_mixer),
17336 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17337 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
17338 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17339 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017340 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17341 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
17342 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17343 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017344 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17345 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
17346 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17347 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017348 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17349 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
17350 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
17351 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017352};
17353
17354static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017355 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
17356 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017357 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17358 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017359 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
17360 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017361 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17362 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017363 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
17364 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017365 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17366 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017367 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
17368 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017369 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17370 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017371 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
17372 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017373 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17374 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017375 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17376 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017377 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17378 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017379 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17380 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017381 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17382 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017383 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17384 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017385 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17386 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053017387 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17388 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
17389 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17390 msm_routing_put_listen_mixer),
17391 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17392 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
17393 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17394 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017395 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17396 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
17397 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17398 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017399 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17400 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
17401 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17402 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017403 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17404 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
17405 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
17406 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017407};
17408
17409static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017410 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
17411 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017412 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17413 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017414 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
17415 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017416 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17417 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017418 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
17419 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017420 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17421 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017422 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
17423 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017424 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17425 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017426 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
17427 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017428 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17429 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017430 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17431 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017432 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17433 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017434 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17435 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017436 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17437 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017438 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17439 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017440 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17441 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053017442 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17443 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
17444 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17445 msm_routing_put_listen_mixer),
17446 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17447 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
17448 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17449 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017450 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17451 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
17452 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17453 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017454 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17455 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
17456 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17457 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017458 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17459 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
17460 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
17461 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017462};
17463
17464static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017465 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
17466 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017467 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17468 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017469 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
17470 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017471 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17472 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017473 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
17474 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017475 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17476 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017477 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
17478 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017479 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17480 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017481 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
17482 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017483 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17484 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017485 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17486 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017487 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17488 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017489 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17490 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017491 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17492 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017493 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17494 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017495 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17496 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053017497 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17498 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
17499 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17500 msm_routing_put_listen_mixer),
17501 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17502 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
17503 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17504 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017505 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17506 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
17507 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17508 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017509 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17510 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
17511 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17512 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017513 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17514 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
17515 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
17516 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017517};
17518
17519static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
17520 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17521 0, 1, 0, msm_routing_get_switch_mixer,
17522 msm_routing_put_switch_mixer);
17523
17524static const struct snd_kcontrol_new slim1_fm_switch_mixer_controls =
17525 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17526 0, 1, 0, msm_routing_get_switch_mixer,
17527 msm_routing_put_switch_mixer);
17528
17529static const struct snd_kcontrol_new slim3_fm_switch_mixer_controls =
17530 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17531 0, 1, 0, msm_routing_get_switch_mixer,
17532 msm_routing_put_switch_mixer);
17533
17534static const struct snd_kcontrol_new slim4_fm_switch_mixer_controls =
17535 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17536 0, 1, 0, msm_routing_get_switch_mixer,
17537 msm_routing_put_switch_mixer);
17538
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053017539static const struct snd_kcontrol_new cdc_dma_wsa_switch_mixer_controls =
17540 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17541 0, 1, 0, msm_routing_get_switch_mixer,
17542 msm_routing_put_switch_mixer);
17543
17544static const struct snd_kcontrol_new cdc_dma_rx_switch_mixer_controls =
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053017545 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17546 0, 1, 0, msm_routing_get_switch_mixer,
17547 msm_routing_put_switch_mixer);
17548
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017549static const struct snd_kcontrol_new slim6_fm_switch_mixer_controls =
17550 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17551 0, 1, 0, msm_routing_get_switch_mixer,
17552 msm_routing_put_switch_mixer);
17553
17554static const struct snd_kcontrol_new pcm_rx_switch_mixer_controls =
17555 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17556 0, 1, 0, msm_routing_get_fm_pcmrx_switch_mixer,
17557 msm_routing_put_fm_pcmrx_switch_mixer);
17558
17559static const struct snd_kcontrol_new int0_mi2s_rx_switch_mixer_controls =
17560 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17561 0, 1, 0, msm_routing_get_int0_mi2s_switch_mixer,
17562 msm_routing_put_int0_mi2s_switch_mixer);
17563
17564static const struct snd_kcontrol_new int4_mi2s_rx_switch_mixer_controls =
17565 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17566 0, 1, 0, msm_routing_get_int4_mi2s_switch_mixer,
17567 msm_routing_put_int4_mi2s_switch_mixer);
17568
17569static const struct snd_kcontrol_new pri_mi2s_rx_switch_mixer_controls =
17570 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17571 0, 1, 0, msm_routing_get_pri_mi2s_switch_mixer,
17572 msm_routing_put_pri_mi2s_switch_mixer);
17573
17574static const struct snd_kcontrol_new sec_mi2s_rx_switch_mixer_controls =
17575 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17576 0, 1, 0, msm_routing_get_sec_mi2s_switch_mixer,
17577 msm_routing_put_sec_mi2s_switch_mixer);
17578
17579static const struct snd_kcontrol_new tert_mi2s_rx_switch_mixer_controls =
17580 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17581 0, 1, 0, msm_routing_get_tert_mi2s_switch_mixer,
17582 msm_routing_put_tert_mi2s_switch_mixer);
17583
17584static const struct snd_kcontrol_new quat_mi2s_rx_switch_mixer_controls =
17585 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17586 0, 1, 0, msm_routing_get_quat_mi2s_switch_mixer,
17587 msm_routing_put_quat_mi2s_switch_mixer);
17588
Rohit Kumara5077932017-09-10 22:05:05 +053017589static const struct snd_kcontrol_new quin_mi2s_rx_switch_mixer_controls =
17590 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17591 0, 1, 0, msm_routing_get_quin_mi2s_switch_mixer,
17592 msm_routing_put_quin_mi2s_switch_mixer);
17593
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017594static const struct snd_kcontrol_new hfp_pri_aux_switch_mixer_controls =
17595 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17596 0, 1, 0, msm_routing_get_hfp_switch_mixer,
17597 msm_routing_put_hfp_switch_mixer);
17598
17599static const struct snd_kcontrol_new hfp_aux_switch_mixer_controls =
17600 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17601 0, 1, 0, msm_routing_get_hfp_switch_mixer,
17602 msm_routing_put_hfp_switch_mixer);
17603
17604static const struct snd_kcontrol_new hfp_int_switch_mixer_controls =
17605 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17606 0, 1, 0, msm_routing_get_hfp_switch_mixer,
17607 msm_routing_put_hfp_switch_mixer);
17608
17609static const struct snd_kcontrol_new hfp_slim7_switch_mixer_controls =
17610 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17611 0, 1, 0, msm_routing_get_hfp_switch_mixer,
17612 msm_routing_put_hfp_switch_mixer);
17613
17614static const struct snd_kcontrol_new usb_switch_mixer_controls =
17615 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17616 0, 1, 0, msm_routing_get_usb_switch_mixer,
17617 msm_routing_put_usb_switch_mixer);
17618
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080017619static const struct snd_kcontrol_new a2dp_slim7_switch_mixer_controls =
17620 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17621 0, 1, 0, msm_routing_a2dp_switch_mixer_get,
17622 msm_routing_a2dp_switch_mixer_put);
17623
Zhou Songcaa541d2019-02-19 18:37:47 +080017624static const struct snd_kcontrol_new sco_slim7_switch_mixer_controls =
17625 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
17626 0, 1, 0, msm_routing_sco_switch_mixer_get,
17627 msm_routing_sco_switch_mixer_put);
17628
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017629static const struct soc_enum lsm_port_enum =
17630 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_port_text), lsm_port_text);
17631
17632static const char * const lsm_func_text[] = {
17633 "None", "AUDIO", "BEACON", "ULTRASOUND", "SWAUDIO",
17634};
17635static const struct soc_enum lsm_func_enum =
17636 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_func_text), lsm_func_text);
17637
17638static const struct snd_kcontrol_new lsm_controls[] = {
17639 /* kcontrol of lsm_function */
17640 SOC_ENUM_EXT(SLIMBUS_0_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17641 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17642 SOC_ENUM_EXT(SLIMBUS_1_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17643 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17644 SOC_ENUM_EXT(SLIMBUS_2_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17645 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17646 SOC_ENUM_EXT(SLIMBUS_3_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17647 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17648 SOC_ENUM_EXT(SLIMBUS_4_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17649 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17650 SOC_ENUM_EXT(SLIMBUS_5_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17651 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17652 SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17653 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17654 SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17655 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
17656 SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17657 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053017658 SOC_ENUM_EXT(TX_CDC_DMA_TX_3_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17659 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017660 SOC_ENUM_EXT(QUIN_TDM_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
17661 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017662 /* kcontrol of lsm_port */
17663 SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
17664 msm_routing_lsm_port_get,
17665 msm_routing_lsm_port_put),
17666 SOC_ENUM_EXT("LSM2 Port", lsm_port_enum,
17667 msm_routing_lsm_port_get,
17668 msm_routing_lsm_port_put),
17669 SOC_ENUM_EXT("LSM3 Port", lsm_port_enum,
17670 msm_routing_lsm_port_get,
17671 msm_routing_lsm_port_put),
17672 SOC_ENUM_EXT("LSM4 Port", lsm_port_enum,
17673 msm_routing_lsm_port_get,
17674 msm_routing_lsm_port_put),
17675 SOC_ENUM_EXT("LSM5 Port", lsm_port_enum,
17676 msm_routing_lsm_port_get,
17677 msm_routing_lsm_port_put),
17678 SOC_ENUM_EXT("LSM6 Port", lsm_port_enum,
17679 msm_routing_lsm_port_get,
17680 msm_routing_lsm_port_put),
17681 SOC_ENUM_EXT("LSM7 Port", lsm_port_enum,
17682 msm_routing_lsm_port_get,
17683 msm_routing_lsm_port_put),
17684 SOC_ENUM_EXT("LSM8 Port", lsm_port_enum,
17685 msm_routing_lsm_port_get,
17686 msm_routing_lsm_port_put),
17687};
17688
17689static const char * const aanc_slim_0_rx_text[] = {
17690 "ZERO", "SLIMBUS_0_TX", "SLIMBUS_1_TX", "SLIMBUS_2_TX", "SLIMBUS_3_TX",
17691 "SLIMBUS_4_TX", "SLIMBUS_5_TX", "SLIMBUS_6_TX"
17692};
17693
17694static const struct soc_enum aanc_slim_0_rx_enum =
17695 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(aanc_slim_0_rx_text),
17696 aanc_slim_0_rx_text);
17697
17698static const struct snd_kcontrol_new aanc_slim_0_rx_mux[] = {
17699 SOC_ENUM_EXT("AANC_SLIM_0_RX MUX", aanc_slim_0_rx_enum,
17700 msm_routing_slim_0_rx_aanc_mux_get,
17701 msm_routing_slim_0_rx_aanc_mux_put)
17702};
17703
Sudheer Papothic07b37a2018-05-04 05:56:47 +053017704static int msm_routing_aanc_noise_level_get(struct snd_kcontrol *kcontrol,
17705 struct snd_ctl_elem_value *ucontrol)
17706{
17707 ucontrol->value.integer.value[0] = aanc_level;
17708
17709 return 0;
17710}
17711
17712static int msm_routing_aanc_noise_level_put(struct snd_kcontrol *kcontrol,
17713 struct snd_ctl_elem_value *ucontrol)
17714{
17715 int ret = 0;
17716
17717 mutex_lock(&routing_lock);
17718 aanc_level = ucontrol->value.integer.value[0];
17719 pr_debug("%s: value: %ld\n",
17720 __func__, ucontrol->value.integer.value[0]);
17721 ret = afe_set_aanc_noise_level(aanc_level);
17722 mutex_unlock(&routing_lock);
17723
17724 return ret;
17725}
17726
17727static const struct snd_kcontrol_new aanc_noise_level[] = {
17728 SOC_SINGLE_EXT("AANC Noise Level", SND_SOC_NOPM, 0, 255,
17729 0, msm_routing_aanc_noise_level_get, msm_routing_aanc_noise_level_put)
17730};
17731
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017732static int msm_routing_get_stereo_to_custom_stereo_control(
17733 struct snd_kcontrol *kcontrol,
17734 struct snd_ctl_elem_value *ucontrol)
17735{
17736 ucontrol->value.integer.value[0] = is_custom_stereo_on;
17737 return 0;
17738}
17739
17740static int msm_routing_put_stereo_to_custom_stereo_control(
17741 struct snd_kcontrol *kcontrol,
17742 struct snd_ctl_elem_value *ucontrol)
17743{
17744 int flag = 0, i = 0, rc = 0, idx = 0;
17745 int be_index = 0, port_id, topo_id;
17746 unsigned int session_id = 0;
17747 uint16_t op_FL_ip_FL_weight = 0;
17748 uint16_t op_FL_ip_FR_weight = 0;
17749 uint16_t op_FR_ip_FL_weight = 0;
17750 uint16_t op_FR_ip_FR_weight = 0;
17751
17752 flag = ucontrol->value.integer.value[0];
17753 pr_debug("%s E flag %d\n", __func__, flag);
17754
17755 if ((is_custom_stereo_on && flag) || (!is_custom_stereo_on && !flag)) {
17756 pr_err("%s: is_custom_stereo_on %d, flag %d\n",
17757 __func__, is_custom_stereo_on, flag);
17758 return 0;
17759 }
17760 is_custom_stereo_on = flag ? true : false;
17761 pr_debug("%s:is_custom_stereo_on %d\n", __func__, is_custom_stereo_on);
17762 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
17763 port_id = msm_bedais[be_index].port_id;
17764 if (!msm_bedais[be_index].active)
17765 continue;
17766 if ((port_id != SLIMBUS_0_RX) &&
17767 (port_id != RT_PROXY_PORT_001_RX) &&
17768 (port_id != AFE_PORT_ID_PRIMARY_MI2S_RX) &&
17769 (port_id != AFE_PORT_ID_INT4_MI2S_RX))
17770 continue;
17771
17772 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
17773 MSM_FRONTEND_DAI_MM_SIZE) {
17774 if (fe_dai_map[i][SESSION_TYPE_RX].perf_mode !=
17775 LEGACY_PCM_MODE)
17776 goto skip_send_custom_stereo;
17777 session_id =
17778 fe_dai_map[i][SESSION_TYPE_RX].strm_id;
17779 if (is_custom_stereo_on) {
17780 op_FL_ip_FL_weight =
17781 Q14_GAIN_ZERO_POINT_FIVE;
17782 op_FL_ip_FR_weight =
17783 Q14_GAIN_ZERO_POINT_FIVE;
17784 op_FR_ip_FL_weight =
17785 Q14_GAIN_ZERO_POINT_FIVE;
17786 op_FR_ip_FR_weight =
17787 Q14_GAIN_ZERO_POINT_FIVE;
17788 } else {
17789 op_FL_ip_FL_weight = Q14_GAIN_UNITY;
17790 op_FL_ip_FR_weight = 0;
17791 op_FR_ip_FL_weight = 0;
17792 op_FR_ip_FR_weight = Q14_GAIN_UNITY;
17793 }
17794 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
17795 unsigned long copp =
17796 session_copp_map[i]
17797 [SESSION_TYPE_RX][be_index];
17798 if (!test_bit(idx, &copp))
17799 goto skip_send_custom_stereo;
17800 topo_id = adm_get_topology_for_port_copp_idx(
17801 msm_bedais[be_index].port_id, idx);
17802 if (topo_id < 0)
17803 pr_debug("%s:Err:custom stereo topo %d",
17804 __func__, topo_id);
17805 pr_debug("idx %d\n", idx);
17806 if (topo_id == DS2_ADM_COPP_TOPOLOGY_ID)
17807 rc = msm_ds2_dap_set_custom_stereo_onoff
17808 (msm_bedais[be_index].port_id,
17809 idx, is_custom_stereo_on);
17810 else if (topo_id == DOLBY_ADM_COPP_TOPOLOGY_ID)
17811 rc = dolby_dap_set_custom_stereo_onoff(
17812 msm_bedais[be_index].port_id,
17813 idx, is_custom_stereo_on);
17814 else
17815 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd
17816 (msm_bedais[be_index].port_id,
17817 idx, session_id,
17818 op_FL_ip_FL_weight,
17819 op_FL_ip_FR_weight,
17820 op_FR_ip_FL_weight,
17821 op_FR_ip_FR_weight);
17822 if (rc < 0)
17823skip_send_custom_stereo:
17824 pr_err("%s: err setting custom stereo\n",
17825 __func__);
17826 }
17827
17828 }
17829 }
17830 return 0;
17831}
17832
17833static const struct snd_kcontrol_new stereo_to_custom_stereo_controls[] = {
17834 SOC_SINGLE_EXT("Set Custom Stereo OnOff", SND_SOC_NOPM, 0,
17835 1, 0, msm_routing_get_stereo_to_custom_stereo_control,
17836 msm_routing_put_stereo_to_custom_stereo_control),
17837};
17838
17839static int msm_routing_get_app_type_cfg_control(struct snd_kcontrol *kcontrol,
17840 struct snd_ctl_elem_value *ucontrol)
17841{
17842 return 0;
17843}
17844
17845static int msm_routing_put_app_type_cfg_control(struct snd_kcontrol *kcontrol,
17846 struct snd_ctl_elem_value *ucontrol)
17847{
17848 int i = 0, j;
17849 int num_app_types = ucontrol->value.integer.value[i++];
17850
17851 pr_debug("%s\n", __func__);
17852
17853 memset(app_type_cfg, 0, MAX_APP_TYPES*
17854 sizeof(struct msm_pcm_routing_app_type_data));
17855 if (num_app_types > MAX_APP_TYPES) {
17856 pr_err("%s: number of app types exceed the max supported\n",
17857 __func__);
17858 return -EINVAL;
17859 }
17860 for (j = 0; j < num_app_types; j++) {
17861 app_type_cfg[j].app_type =
17862 ucontrol->value.integer.value[i++];
17863 app_type_cfg[j].sample_rate =
17864 ucontrol->value.integer.value[i++];
17865 app_type_cfg[j].bit_width =
17866 ucontrol->value.integer.value[i++];
17867 }
17868
17869 return 0;
17870}
17871
17872static int msm_routing_put_app_type_gain_control(struct snd_kcontrol *kcontrol,
17873 struct snd_ctl_elem_value *ucontrol)
17874{
17875 int j, fe_id, be_id, port_type;
17876 int ret = 0;
17877 unsigned long copp;
17878 struct msm_pcm_routing_bdai_data *bedai;
17879 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
17880 SESSION_TYPE_RX;
17881 int app_type = ucontrol->value.integer.value[1];
17882 int gain = (ucontrol->value.integer.value[2] +
17883 ucontrol->value.integer.value[3])/2;
17884
17885 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
17886 MSM_AFE_PORT_TYPE_TX;
17887
17888 mutex_lock(&routing_lock);
17889 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
17890 if (is_be_dai_extproc(be_id))
17891 continue;
17892
17893 bedai = &msm_bedais[be_id];
17894 if (afe_get_port_type(bedai->port_id) != port_type)
17895 continue;
17896
17897 if (!bedai->active)
17898 continue;
17899
17900 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
17901 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
17902 continue;
17903
17904 if (app_type !=
17905 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
17906 continue;
17907
17908 copp = session_copp_map[fe_id][dir][be_id];
17909 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
17910 if (!test_bit(j, &copp))
17911 continue;
17912 ret |= adm_set_volume(bedai->port_id, j, gain);
17913 }
17914 }
17915 }
17916 mutex_unlock(&routing_lock);
17917 return ret ? -EINVAL : 0;
17918}
17919
17920static const struct snd_kcontrol_new app_type_cfg_controls[] = {
17921 SOC_SINGLE_MULTI_EXT("App Type Config", SND_SOC_NOPM, 0,
17922 0xFFFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
17923 msm_routing_put_app_type_cfg_control),
17924 SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
17925 0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
17926};
17927
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017928static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,
17929 struct snd_ctl_elem_value *ucontrol)
17930{
17931 int copp_idx, fe_id, be_id, port_type;
17932 int ret = 0;
17933 unsigned long copp;
17934 struct msm_pcm_routing_bdai_data *bedai;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017935 u8 *packed_params = NULL;
17936 struct param_hdr_v3 param_hdr;
17937 u32 packed_param_size = (sizeof(struct param_hdr_v3) +
17938 sizeof(uint32_t));
17939
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017940 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
17941 SESSION_TYPE_RX;
17942 int app_type = ucontrol->value.integer.value[1];
17943 int module_id = ucontrol->value.integer.value[2];
17944 int instance_id = ucontrol->value.integer.value[3];
17945 int param_id = ucontrol->value.integer.value[4];
17946 int param_value = ucontrol->value.integer.value[5];
17947
17948 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
17949 MSM_AFE_PORT_TYPE_TX;
17950 pr_debug("%s app_type:%d mod_id:%d instance_id:%d param_id:%d value:%d\n",
17951 __func__, app_type, module_id,
17952 instance_id, param_id, param_value);
17953
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017954 packed_params = kzalloc(packed_param_size, GFP_KERNEL);
17955 if (!packed_params)
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017956 return -ENOMEM;
17957
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017958 memset(&param_hdr, 0, sizeof(param_hdr));
17959 param_hdr.module_id = module_id;
17960 param_hdr.instance_id = instance_id;
17961 param_hdr.param_id = param_id;
17962 param_hdr.param_size = sizeof(uint32_t);
17963
17964 packed_param_size = 0;
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017965
17966 mutex_lock(&routing_lock);
17967 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
17968 if (is_be_dai_extproc(be_id))
17969 continue;
17970
17971 bedai = &msm_bedais[be_id];
17972 if (afe_get_port_type(bedai->port_id) != port_type)
17973 continue;
17974
17975 if (!bedai->active)
17976 continue;
17977
17978 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
17979 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
17980 continue;
17981
17982 if (app_type !=
17983 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
17984 continue;
17985
17986 copp = session_copp_map[fe_id][dir][be_id];
17987 for (copp_idx = 0; copp_idx < MAX_COPPS_PER_PORT;
17988 copp_idx++) {
17989 if (!test_bit(copp_idx, &copp))
17990 continue;
17991
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017992 ret = q6common_pack_pp_params(packed_params,
17993 &param_hdr,
17994 (u8 *) &param_value,
17995 &packed_param_size);
17996 if (ret) {
17997 pr_err("%s: Failed to pack params, error %d\n",
17998 __func__, ret);
17999 goto done;
18000 }
18001
18002 ret = adm_set_pp_params(bedai->port_id,
18003 copp_idx, NULL,
18004 packed_params,
18005 packed_param_size);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070018006 if (ret) {
18007 pr_err("%s: Setting param failed with err=%d\n",
18008 __func__, ret);
18009 ret = -EINVAL;
18010 goto done;
18011 }
18012 }
18013 }
18014 }
18015done:
18016 mutex_unlock(&routing_lock);
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080018017 kfree(packed_params);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070018018 return ret;
18019}
18020
18021static const struct snd_kcontrol_new module_cfg_controls[] = {
18022 SOC_SINGLE_MULTI_EXT("Audio Effect", SND_SOC_NOPM, 0,
18023 0x2000, 0, 6, NULL, msm_routing_put_module_cfg_control)
18024};
18025
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018026static int msm_routing_get_lsm_app_type_cfg_control(
18027 struct snd_kcontrol *kcontrol,
18028 struct snd_ctl_elem_value *ucontrol)
18029{
Meng Wangadbca4f2018-10-29 14:30:13 +080018030 int shift = ((struct soc_multi_mixer_control *)
18031 kcontrol->private_value)->shift;
18032 int i = 0, j = 0;
18033
18034 ucontrol->value.integer.value[i] = num_app_cfg_types;
18035
18036 for (j = 0; j < num_app_cfg_types; ++j) {
18037 ucontrol->value.integer.value[++i] =
18038 lsm_app_type_cfg[j].app_type;
18039 ucontrol->value.integer.value[++i] =
18040 lsm_app_type_cfg[j].sample_rate;
18041 ucontrol->value.integer.value[++i] =
18042 lsm_app_type_cfg[j].bit_width;
18043 if (shift == 1)
18044 ucontrol->value.integer.value[++i] =
18045 lsm_app_type_cfg[j].num_out_channels;
18046 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018047 return 0;
18048}
18049
18050static int msm_routing_put_lsm_app_type_cfg_control(
18051 struct snd_kcontrol *kcontrol,
18052 struct snd_ctl_elem_value *ucontrol)
18053{
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070018054 int shift = ((struct soc_multi_mixer_control *)
18055 kcontrol->private_value)->shift;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018056 int i = 0, j;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018057
Meng Wangadbca4f2018-10-29 14:30:13 +080018058 num_app_cfg_types = ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018059 memset(lsm_app_type_cfg, 0, MAX_APP_TYPES*
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070018060 sizeof(struct msm_pcm_routing_app_type_data));
18061
Meng Wangadbca4f2018-10-29 14:30:13 +080018062 if (num_app_cfg_types > MAX_APP_TYPES) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018063 pr_err("%s: number of app types exceed the max supported\n",
18064 __func__);
18065 return -EINVAL;
18066 }
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070018067
Meng Wangadbca4f2018-10-29 14:30:13 +080018068 for (j = 0; j < num_app_cfg_types; j++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018069 lsm_app_type_cfg[j].app_type =
18070 ucontrol->value.integer.value[i++];
18071 lsm_app_type_cfg[j].sample_rate =
18072 ucontrol->value.integer.value[i++];
18073 lsm_app_type_cfg[j].bit_width =
18074 ucontrol->value.integer.value[i++];
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070018075 /* Shift of 1 indicates this is V2 mixer control */
18076 if (shift == 1)
18077 lsm_app_type_cfg[j].num_out_channels =
18078 ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018079 }
18080
18081 return 0;
18082}
18083
18084static const struct snd_kcontrol_new lsm_app_type_cfg_controls[] = {
18085 SOC_SINGLE_MULTI_EXT("Listen App Type Config", SND_SOC_NOPM, 0,
18086 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
18087 msm_routing_put_lsm_app_type_cfg_control),
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070018088 SOC_SINGLE_MULTI_EXT("Listen App Type Config V2", SND_SOC_NOPM, 1,
18089 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
18090 msm_routing_put_lsm_app_type_cfg_control),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018091};
18092
18093static int msm_routing_get_use_ds1_or_ds2_control(
18094 struct snd_kcontrol *kcontrol,
18095 struct snd_ctl_elem_value *ucontrol)
18096{
18097 ucontrol->value.integer.value[0] = is_ds2_on;
18098 return 0;
18099}
18100
18101static int msm_routing_put_use_ds1_or_ds2_control(
18102 struct snd_kcontrol *kcontrol,
18103 struct snd_ctl_elem_value *ucontrol)
18104{
18105 is_ds2_on = ucontrol->value.integer.value[0];
18106 return 0;
18107}
18108
18109static const struct snd_kcontrol_new use_ds1_or_ds2_controls[] = {
18110 SOC_SINGLE_EXT("DS2 OnOff", SND_SOC_NOPM, 0,
18111 1, 0, msm_routing_get_use_ds1_or_ds2_control,
18112 msm_routing_put_use_ds1_or_ds2_control),
18113};
18114
18115int msm_routing_get_rms_value_control(struct snd_kcontrol *kcontrol,
18116 struct snd_ctl_elem_value *ucontrol) {
18117 int rc = 0;
18118 int be_idx = 0;
18119 char *param_value;
18120 int *update_param_value;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080018121 uint32_t param_size = (RMS_PAYLOAD_LEN + 1) * sizeof(uint32_t);
18122 struct param_hdr_v3 param_hdr;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018123
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080018124 param_value = kzalloc(param_size, GFP_KERNEL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018125 if (!param_value)
18126 return -ENOMEM;
18127
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080018128 memset(&param_hdr, 0, sizeof(param_hdr));
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018129 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++)
18130 if (msm_bedais[be_idx].port_id == SLIMBUS_0_TX)
18131 break;
18132 if ((be_idx < MSM_BACKEND_DAI_MAX) && msm_bedais[be_idx].active) {
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080018133 param_hdr.module_id = RMS_MODULEID_APPI_PASSTHRU;
18134 param_hdr.instance_id = INSTANCE_ID_0;
18135 param_hdr.param_id = RMS_PARAM_FIRST_SAMPLE;
18136 param_hdr.param_size = param_size;
18137 rc = adm_get_pp_params(SLIMBUS_0_TX, 0, ADM_CLIENT_ID_DEFAULT,
18138 NULL, &param_hdr, (u8 *) param_value);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018139 if (rc) {
18140 pr_err("%s: get parameters failed:%d\n", __func__, rc);
18141 kfree(param_value);
18142 return -EINVAL;
18143 }
18144 update_param_value = (int *)param_value;
18145 ucontrol->value.integer.value[0] = update_param_value[0];
18146
18147 pr_debug("%s: FROM DSP value[0] 0x%x\n",
18148 __func__, update_param_value[0]);
18149 }
18150 kfree(param_value);
18151 return 0;
18152}
18153
18154static int msm_voc_session_id_put(struct snd_kcontrol *kcontrol,
18155 struct snd_ctl_elem_value *ucontrol)
18156{
18157 voc_session_id = ucontrol->value.integer.value[0];
18158
18159 pr_debug("%s: voc_session_id=%u\n", __func__, voc_session_id);
18160
18161 return 0;
18162}
18163
18164static int msm_voc_session_id_get(struct snd_kcontrol *kcontrol,
18165 struct snd_ctl_elem_value *ucontrol)
18166{
18167 ucontrol->value.integer.value[0] = voc_session_id;
18168
18169 return 0;
18170}
18171
18172static struct snd_kcontrol_new msm_voc_session_controls[] = {
18173 SOC_SINGLE_MULTI_EXT("Voc VSID", SND_SOC_NOPM, 0,
18174 0xFFFFFFFF, 0, 1, msm_voc_session_id_get,
18175 msm_voc_session_id_put),
18176};
18177
18178static int msm_sound_focus_info(struct snd_kcontrol *kcontrol,
18179 struct snd_ctl_elem_info *uinfo)
18180{
18181 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
18182 uinfo->count = sizeof(struct sound_focus_param);
18183
18184 return 0;
18185}
18186
18187static int msm_voice_sound_focus_put(struct snd_kcontrol *kcontrol,
18188 struct snd_ctl_elem_value *ucontrol)
18189{
18190 int ret = 0;
18191 struct sound_focus_param soundFocusData;
18192
18193 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
18194 sizeof(struct sound_focus_param));
18195 ret = voc_set_sound_focus(soundFocusData);
18196 if (ret) {
18197 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
18198 __func__, ret);
18199
18200 ret = -EINVAL;
18201 }
18202
18203 return ret;
18204}
18205
18206static int msm_voice_sound_focus_get(struct snd_kcontrol *kcontrol,
18207 struct snd_ctl_elem_value *ucontrol)
18208{
18209 int ret = 0;
18210 struct sound_focus_param soundFocusData;
18211
18212 memset(&soundFocusData, 0, sizeof(struct sound_focus_param));
18213
18214 ret = voc_get_sound_focus(&soundFocusData);
18215 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070018216 pr_debug("%s: Error getting Sound Focus Params, err=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018217 __func__, ret);
18218
18219 ret = -EINVAL;
18220 goto done;
18221 }
18222 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
18223 sizeof(struct sound_focus_param));
18224
18225done:
18226 return ret;
18227}
18228
18229static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
18230 struct snd_ctl_elem_info *uinfo)
18231{
18232 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
18233 uinfo->count = sizeof(struct source_tracking_param);
18234
18235 return 0;
18236}
18237
18238static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
18239 struct snd_ctl_elem_value *ucontrol)
18240{
Meng Wang92edfde2018-04-24 12:18:37 +080018241 int ret = 0;
18242 struct source_tracking_param sourceTrackingData;
18243
18244 memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
18245
18246 ret = voc_get_source_tracking(&sourceTrackingData);
18247 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070018248 pr_debug("%s: Error getting Source Tracking Params, err=%d\n",
Meng Wang92edfde2018-04-24 12:18:37 +080018249 __func__, ret);
18250
18251 ret = -EINVAL;
18252 goto done;
18253 }
18254 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
18255 sizeof(struct source_tracking_param));
18256
18257done:
18258 return ret;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018259}
18260
18261static int msm_audio_get_copp_idx_from_port_id(int port_id, int session_type,
18262 int *copp_idx)
18263{
18264 int i, idx, be_idx;
18265 int ret = 0;
18266 unsigned long copp;
18267
18268 pr_debug("%s: Enter, port_id=%d\n", __func__, port_id);
18269
18270 ret = q6audio_validate_port(port_id);
18271 if (ret < 0) {
18272 pr_err("%s: port validation failed id 0x%x ret %d\n",
18273 __func__, port_id, ret);
18274
18275 ret = -EINVAL;
18276 goto done;
18277 }
18278
18279 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
18280 if (msm_bedais[be_idx].port_id == port_id)
18281 break;
18282 }
18283 if (be_idx >= MSM_BACKEND_DAI_MAX) {
18284 pr_err("%s: Invalid be id %d\n", __func__, be_idx);
18285
18286 ret = -EINVAL;
18287 goto done;
18288 }
18289
18290 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053018291 MSM_FRONTEND_DAI_MAX) {
18292 if (!(is_mm_lsm_fe_id(i) &&
18293 route_check_fe_id_adm_support(i)))
18294 continue;
18295
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018296 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
18297 copp = session_copp_map[i]
18298 [session_type][be_idx];
18299 if (test_bit(idx, &copp))
18300 break;
18301 }
18302 if (idx >= MAX_COPPS_PER_PORT)
18303 continue;
18304 else
18305 break;
18306 }
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053018307 if (i >= MSM_FRONTEND_DAI_MAX) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070018308 pr_debug("%s: Invalid FE, exiting\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018309
18310 ret = -EINVAL;
18311 goto done;
18312 }
18313 *copp_idx = idx;
18314 pr_debug("%s: copp_idx=%d\n", __func__, *copp_idx);
18315
18316done:
18317 return ret;
18318}
18319
18320static int msm_audio_sound_focus_derive_port_id(struct snd_kcontrol *kcontrol,
18321 const char *prefix, int *port_id)
18322{
18323 int ret = 0;
18324
18325 pr_debug("%s: Enter, prefix:%s\n", __func__, prefix);
18326
18327 /*
18328 * Mixer control name will be like "Sound Focus Audio Tx SLIMBUS_0"
18329 * where the prefix is "Sound Focus Audio Tx ". Skip the prefix
18330 * and compare the string with the backend name to derive the port id.
18331 */
18332 if (!strcmp(kcontrol->id.name + strlen(prefix),
18333 "SLIMBUS_0")) {
18334 *port_id = SLIMBUS_0_TX;
18335 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
18336 "TERT_MI2S")) {
18337 *port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
18338 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
18339 "INT3_MI2S")) {
18340 *port_id = AFE_PORT_ID_INT3_MI2S_TX;
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053018341 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
18342 "VA_CDC_DMA_TX_0")) {
18343 *port_id = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053018344 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
18345 "TX_CDC_DMA_TX_3")) {
18346 *port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053018347 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
18348 "QUIN_TDM_TX_0")) {
18349 *port_id = AFE_PORT_ID_QUINARY_TDM_TX;
Sachin Mohan Gadagd34b26d2018-07-16 19:53:19 +053018350 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
18351 "PRIMARY_TDM")) {
18352 *port_id = AFE_PORT_ID_PRIMARY_TDM_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018353 } else {
18354 pr_err("%s: mixer ctl name=%s, could not derive valid port id\n",
18355 __func__, kcontrol->id.name);
18356
18357 ret = -EINVAL;
18358 goto done;
18359 }
18360 pr_debug("%s: mixer ctl name=%s, derived port_id=%d\n",
18361 __func__, kcontrol->id.name, *port_id);
18362
18363done:
18364 return ret;
18365}
18366
18367static int msm_audio_sound_focus_put(struct snd_kcontrol *kcontrol,
18368 struct snd_ctl_elem_value *ucontrol)
18369{
18370 int ret = 0;
18371 struct sound_focus_param soundFocusData;
18372 int port_id, copp_idx;
18373
18374 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
18375 "Sound Focus Audio Tx ", &port_id);
18376 if (ret != 0) {
18377 pr_err("%s: Error in deriving port id, err=%d\n",
18378 __func__, ret);
18379
18380 ret = -EINVAL;
18381 goto done;
18382 }
18383
18384 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
18385 &copp_idx);
18386 if (ret) {
18387 pr_err("%s: Could not get copp idx for port_id=%d\n",
18388 __func__, port_id);
18389
18390 ret = -EINVAL;
18391 goto done;
18392 }
18393
18394 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
18395 sizeof(struct sound_focus_param));
18396
18397 ret = adm_set_sound_focus(port_id, copp_idx, soundFocusData);
18398 if (ret) {
18399 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
18400 __func__, ret);
18401
18402 ret = -EINVAL;
18403 goto done;
18404 }
18405
18406done:
18407 return ret;
18408}
18409
18410static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
18411 struct snd_ctl_elem_value *ucontrol)
18412{
18413 int ret = 0;
18414 struct sound_focus_param soundFocusData;
18415 int port_id, copp_idx;
18416
18417 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
18418 "Sound Focus Audio Tx ", &port_id);
18419 if (ret) {
18420 pr_err("%s: Error in deriving port id, err=%d\n",
18421 __func__, ret);
18422
18423 ret = -EINVAL;
18424 goto done;
18425 }
18426
18427 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
18428 &copp_idx);
18429 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070018430 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018431 __func__, port_id);
18432
18433 ret = -EINVAL;
18434 goto done;
18435 }
18436
18437 ret = adm_get_sound_focus(port_id, copp_idx, &soundFocusData);
18438 if (ret) {
18439 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
18440 __func__, ret);
18441
18442 ret = -EINVAL;
18443 goto done;
18444 }
18445
18446 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
18447 sizeof(struct sound_focus_param));
18448
18449done:
18450 return ret;
18451}
18452
18453static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
18454 struct snd_ctl_elem_value *ucontrol)
18455{
18456 int ret = 0;
18457 struct source_tracking_param sourceTrackingData;
18458 int port_id, copp_idx;
18459
18460 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
18461 "Source Tracking Audio Tx ", &port_id);
18462 if (ret) {
18463 pr_err("%s: Error in deriving port id, err=%d\n",
18464 __func__, ret);
18465
18466 ret = -EINVAL;
18467 goto done;
18468 }
18469
18470 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
18471 &copp_idx);
18472 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070018473 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018474 __func__, port_id);
18475
18476 ret = -EINVAL;
18477 goto done;
18478 }
18479
18480 ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
18481 if (ret) {
18482 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
18483 __func__, ret);
18484
18485 ret = -EINVAL;
18486 goto done;
18487 }
18488
18489 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
18490 sizeof(struct source_tracking_param));
18491
18492done:
18493 return ret;
18494}
18495
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053018496static int msm_doa_tracking_mon_info(struct snd_kcontrol *kcontrol,
18497 struct snd_ctl_elem_info *uinfo)
18498{
18499 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
18500 uinfo->count = sizeof(struct doa_tracking_mon_param);
18501
18502 return 0;
18503}
18504
18505static int msm_doa_tracking_mon_get(struct snd_kcontrol *kcontrol,
18506 struct snd_ctl_elem_value *ucontrol)
18507{
18508 int ret = 0;
18509 struct doa_tracking_mon_param doa_tracking_data;
18510 int port_id, copp_idx;
18511
18512 memset(&doa_tracking_data, 0, sizeof(struct doa_tracking_mon_param));
18513 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
18514 "Doa Tracking Monitor Listen ", &port_id);
18515 if (ret) {
18516 pr_err("%s: Error in deriving port id, err=%d\n",
18517 __func__, ret);
18518 ret = -EINVAL;
18519 goto done;
18520 }
18521
18522 /*
18523 * If copp id exists for given port id, query adm to get doa data.
18524 * Else query afe for doa tracking params.
18525 * This is to support in cases where LSM directly connects to
18526 * AFE for FFNS.
18527 */
18528 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
18529 &copp_idx);
18530 if (!ret)
18531 ret = adm_get_doa_tracking_mon(port_id, copp_idx,
18532 &doa_tracking_data);
18533 else
18534 ret = afe_get_doa_tracking_mon(port_id, &doa_tracking_data);
18535
18536 if (ret) {
18537 pr_err("%s: Error getting Doa Tracking Params, err=%d\n",
18538 __func__, ret);
18539 ret = -EINVAL;
18540 goto done;
18541 }
18542
18543 memcpy(ucontrol->value.bytes.data, (void *)&doa_tracking_data,
18544 sizeof(struct doa_tracking_mon_param));
18545done:
18546 return ret;
18547}
18548
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018549static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
18550 {
18551 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18552 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18553 .name = "Sound Focus Voice Tx SLIMBUS_0",
18554 .info = msm_sound_focus_info,
18555 .get = msm_voice_sound_focus_get,
18556 .put = msm_voice_sound_focus_put,
18557 },
18558 {
18559 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18560 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18561 .name = "Source Tracking Voice Tx SLIMBUS_0",
18562 .info = msm_source_tracking_info,
18563 .get = msm_voice_source_tracking_get,
18564 },
18565 {
18566 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18567 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18568 .name = "Sound Focus Audio Tx SLIMBUS_0",
18569 .info = msm_sound_focus_info,
18570 .get = msm_audio_sound_focus_get,
18571 .put = msm_audio_sound_focus_put,
18572 },
18573 {
18574 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18575 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18576 .name = "Source Tracking Audio Tx SLIMBUS_0",
18577 .info = msm_source_tracking_info,
18578 .get = msm_audio_source_tracking_get,
18579 },
18580 {
18581 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18582 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18583 .name = "Sound Focus Voice Tx TERT_MI2S",
18584 .info = msm_sound_focus_info,
18585 .get = msm_voice_sound_focus_get,
18586 .put = msm_voice_sound_focus_put,
18587 },
18588 {
18589 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18590 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18591 .name = "Source Tracking Voice Tx TERT_MI2S",
18592 .info = msm_source_tracking_info,
18593 .get = msm_voice_source_tracking_get,
18594 },
18595 {
18596 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18597 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18598 .name = "Sound Focus Audio Tx TERT_MI2S",
18599 .info = msm_sound_focus_info,
18600 .get = msm_audio_sound_focus_get,
18601 .put = msm_audio_sound_focus_put,
18602 },
18603 {
18604 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18605 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18606 .name = "Source Tracking Audio Tx TERT_MI2S",
18607 .info = msm_source_tracking_info,
18608 .get = msm_audio_source_tracking_get,
18609 },
18610 {
18611 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18612 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18613 .name = "Sound Focus Voice Tx INT3_MI2S",
18614 .info = msm_sound_focus_info,
18615 .get = msm_voice_sound_focus_get,
18616 .put = msm_voice_sound_focus_put,
18617 },
18618 {
18619 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18620 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18621 .name = "Source Tracking Voice Tx INT3_MI2S",
18622 .info = msm_source_tracking_info,
18623 .get = msm_voice_source_tracking_get,
18624 },
18625 {
18626 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18627 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18628 .name = "Sound Focus Audio Tx INT3_MI2S",
18629 .info = msm_sound_focus_info,
18630 .get = msm_audio_sound_focus_get,
18631 .put = msm_audio_sound_focus_put,
18632 },
18633 {
18634 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18635 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18636 .name = "Source Tracking Audio Tx INT3_MI2S",
18637 .info = msm_source_tracking_info,
18638 .get = msm_audio_source_tracking_get,
18639 },
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053018640 {
18641 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18642 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18643 .name = "Sound Focus Voice Tx VA_CDC_DMA_TX_0",
18644 .info = msm_sound_focus_info,
18645 .get = msm_voice_sound_focus_get,
18646 .put = msm_voice_sound_focus_put,
18647 },
18648 {
18649 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18650 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18651 .name = "Source Tracking Voice Tx VA_CDC_DMA_TX_0",
18652 .info = msm_source_tracking_info,
18653 .get = msm_voice_source_tracking_get,
18654 },
18655 {
18656 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18657 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18658 .name = "Sound Focus Audio Tx VA_CDC_DMA_TX_0",
18659 .info = msm_sound_focus_info,
18660 .get = msm_audio_sound_focus_get,
18661 .put = msm_audio_sound_focus_put,
18662 },
18663 {
18664 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18665 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18666 .name = "Source Tracking Audio Tx VA_CDC_DMA_TX_0",
18667 .info = msm_source_tracking_info,
18668 .get = msm_audio_source_tracking_get,
18669 },
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053018670 {
18671 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18672 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18673 .name = "Sound Focus Voice Tx TX_CDC_DMA_TX_3",
18674 .info = msm_sound_focus_info,
18675 .get = msm_voice_sound_focus_get,
18676 .put = msm_voice_sound_focus_put,
18677 },
18678 {
18679 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18680 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18681 .name = "Source Tracking Voice Tx TX_CDC_DMA_TX_3",
18682 .info = msm_source_tracking_info,
18683 .get = msm_voice_source_tracking_get,
18684 },
18685 {
18686 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18687 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18688 .name = "Sound Focus Audio Tx TX_CDC_DMA_TX_3",
18689 .info = msm_sound_focus_info,
18690 .get = msm_audio_sound_focus_get,
18691 .put = msm_audio_sound_focus_put,
18692 },
18693 {
18694 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18695 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18696 .name = "Source Tracking Audio Tx TX_CDC_DMA_TX_3",
18697 .info = msm_source_tracking_info,
18698 .get = msm_audio_source_tracking_get,
18699 },
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053018700 {
18701 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18702 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18703 .name = "Sound Focus Voice Tx QUIN_TDM_TX_0",
18704 .info = msm_sound_focus_info,
18705 .get = msm_voice_sound_focus_get,
18706 .put = msm_voice_sound_focus_put,
18707 },
18708 {
18709 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18710 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18711 .name = "Source Tracking Voice Tx QUIN_TDM_TX_0",
18712 .info = msm_source_tracking_info,
18713 .get = msm_voice_source_tracking_get,
18714 },
18715 {
18716 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18717 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18718 .name = "Sound Focus Audio Tx QUIN_TDM_TX_0",
18719 .info = msm_sound_focus_info,
18720 .get = msm_audio_sound_focus_get,
18721 .put = msm_audio_sound_focus_put,
18722 },
18723 {
18724 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18725 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18726 .name = "Source Tracking Audio Tx QUIN_TDM_TX_0",
18727 .info = msm_source_tracking_info,
18728 .get = msm_audio_source_tracking_get,
18729 },
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053018730 {
Sachin Mohan Gadagd34b26d2018-07-16 19:53:19 +053018731 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
18732 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18733 .name = "Sound Focus Audio Tx PRIMARY_TDM",
18734 .info = msm_sound_focus_info,
18735 .get = msm_audio_sound_focus_get,
18736 .put = msm_audio_sound_focus_put,
18737 },
18738 {
18739 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18740 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18741 .name = "Source Tracking Audio Tx PRIMARY_TDM",
18742 .info = msm_source_tracking_info,
18743 .get = msm_audio_source_tracking_get,
18744 },
18745 {
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053018746 .access = SNDRV_CTL_ELEM_ACCESS_READ,
18747 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
18748 .name = "Doa Tracking Monitor Listen VA_CDC_DMA_TX_0",
18749 .info = msm_doa_tracking_mon_info,
18750 .get = msm_doa_tracking_mon_get,
18751 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018752};
18753
18754static int spkr_prot_put_vi_lch_port(struct snd_kcontrol *kcontrol,
18755 struct snd_ctl_elem_value *ucontrol)
18756{
18757 int ret = 0;
18758 int item;
18759 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
18760
18761 pr_debug("%s item is %d\n", __func__,
18762 ucontrol->value.enumerated.item[0]);
18763 mutex_lock(&routing_lock);
18764 item = ucontrol->value.enumerated.item[0];
18765 if (item < e->items) {
18766 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
18767 __func__, e->shift_l, e->values[item]);
18768 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
18769 e->values[item] < MSM_BACKEND_DAI_MAX)
18770 /* Enable feedback TX path */
18771 ret = afe_spk_prot_feed_back_cfg(
18772 msm_bedais[e->values[item]].port_id,
18773 msm_bedais[e->shift_l].port_id, 1, 0, 1);
18774 else {
18775 pr_debug("%s values are out of range item %d\n",
18776 __func__, e->values[item]);
18777 /* Disable feedback TX path */
18778 if (e->values[item] == MSM_BACKEND_DAI_MAX)
18779 ret = afe_spk_prot_feed_back_cfg(0, 0, 0, 0, 0);
18780 else
18781 ret = -EINVAL;
18782 }
18783 } else {
18784 pr_err("%s item value is out of range item\n", __func__);
18785 ret = -EINVAL;
18786 }
18787 mutex_unlock(&routing_lock);
18788 return ret;
18789}
18790
18791static int spkr_prot_put_vi_rch_port(struct snd_kcontrol *kcontrol,
18792 struct snd_ctl_elem_value *ucontrol)
18793{
18794 int ret = 0;
18795 int item;
18796 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
18797
18798 pr_debug("%s item is %d\n", __func__,
18799 ucontrol->value.enumerated.item[0]);
18800 mutex_lock(&routing_lock);
18801 item = ucontrol->value.enumerated.item[0];
18802 if (item < e->items) {
18803 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
18804 __func__, e->shift_l, e->values[item]);
18805 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
18806 e->values[item] < MSM_BACKEND_DAI_MAX)
18807 /* Enable feedback TX path */
18808 ret = afe_spk_prot_feed_back_cfg(
18809 msm_bedais[e->values[item]].port_id,
18810 msm_bedais[e->shift_l].port_id,
18811 1, 1, 1);
18812 else {
18813 pr_debug("%s values are out of range item %d\n",
18814 __func__, e->values[item]);
18815 /* Disable feedback TX path */
18816 if (e->values[item] == MSM_BACKEND_DAI_MAX)
18817 ret = afe_spk_prot_feed_back_cfg(0,
18818 0, 0, 0, 0);
18819 else
18820 ret = -EINVAL;
18821 }
18822 } else {
18823 pr_err("%s item value is out of range item\n", __func__);
18824 ret = -EINVAL;
18825 }
18826 mutex_unlock(&routing_lock);
18827 return ret;
18828}
18829
18830static int spkr_prot_get_vi_lch_port(struct snd_kcontrol *kcontrol,
18831 struct snd_ctl_elem_value *ucontrol)
18832{
18833 pr_debug("%s\n", __func__);
18834 return 0;
18835}
18836
18837static int spkr_prot_get_vi_rch_port(struct snd_kcontrol *kcontrol,
18838 struct snd_ctl_elem_value *ucontrol)
18839{
18840 pr_debug("%s\n", __func__);
18841 ucontrol->value.enumerated.item[0] = 0;
18842 return 0;
18843}
18844
18845static const char * const slim0_rx_vi_fb_tx_lch_mux_text[] = {
18846 "ZERO", "SLIM4_TX"
18847};
18848
18849static const char * const slim0_rx_vi_fb_tx_rch_mux_text[] = {
18850 "ZERO", "SLIM4_TX"
18851};
18852
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018853static const char * const wsa_rx_0_vi_fb_tx_lch_mux_text[] = {
18854 "ZERO", "WSA_CDC_DMA_TX_0"
18855};
18856
18857static const char * const wsa_rx_0_vi_fb_tx_rch_mux_text[] = {
18858 "ZERO", "WSA_CDC_DMA_TX_0"
18859};
18860
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018861static const char * const mi2s_rx_vi_fb_tx_mux_text[] = {
18862 "ZERO", "SENARY_TX"
18863};
18864
18865static const char * const int4_mi2s_rx_vi_fb_tx_mono_mux_text[] = {
18866 "ZERO", "INT5_MI2S_TX"
18867};
18868
18869static const char * const int4_mi2s_rx_vi_fb_tx_stereo_mux_text[] = {
18870 "ZERO", "INT5_MI2S_TX"
18871};
18872
Josh Kirschea69fed2018-12-11 16:15:08 -080018873static const int slim0_rx_vi_fb_tx_lch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018874 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
18875};
18876
Josh Kirschea69fed2018-12-11 16:15:08 -080018877static const int slim0_rx_vi_fb_tx_rch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018878 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
18879};
18880
Josh Kirschea69fed2018-12-11 16:15:08 -080018881static const int wsa_rx_0_vi_fb_tx_lch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018882 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
18883};
18884
Josh Kirschea69fed2018-12-11 16:15:08 -080018885static const int wsa_rx_0_vi_fb_tx_rch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018886 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
18887};
18888
18889
Josh Kirschea69fed2018-12-11 16:15:08 -080018890static const int mi2s_rx_vi_fb_tx_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018891 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SENARY_MI2S_TX
18892};
18893
Josh Kirschea69fed2018-12-11 16:15:08 -080018894static const int int4_mi2s_rx_vi_fb_tx_mono_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018895 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
18896};
18897
Josh Kirschea69fed2018-12-11 16:15:08 -080018898static const int int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018899 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
18900};
18901
18902static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
18903 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
18904 ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
18905 slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
18906
18907static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
18908 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
18909 ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
18910 slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
18911
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018912static const struct soc_enum wsa_rx_0_vi_fb_lch_mux_enum =
18913 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
18914 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_lch_mux_text),
18915 wsa_rx_0_vi_fb_tx_lch_mux_text, wsa_rx_0_vi_fb_tx_lch_value);
18916
18917static const struct soc_enum wsa_rx_0_vi_fb_rch_mux_enum =
18918 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
18919 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_rch_mux_text),
18920 wsa_rx_0_vi_fb_tx_rch_mux_text, wsa_rx_0_vi_fb_tx_rch_value);
18921
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018922static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
18923 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
18924 ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
18925 mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
18926
18927static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
18928 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
18929 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
18930 int4_mi2s_rx_vi_fb_tx_mono_mux_text,
18931 int4_mi2s_rx_vi_fb_tx_mono_ch_value);
18932
18933static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
18934 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
18935 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
18936 int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
18937 int4_mi2s_rx_vi_fb_tx_stereo_ch_value);
18938
18939static const struct snd_kcontrol_new slim0_rx_vi_fb_lch_mux =
18940 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_LCH_MUX",
18941 slim0_rx_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
18942 spkr_prot_put_vi_lch_port);
18943
18944static const struct snd_kcontrol_new slim0_rx_vi_fb_rch_mux =
18945 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_RCH_MUX",
18946 slim0_rx_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
18947 spkr_prot_put_vi_rch_port);
18948
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018949static const struct snd_kcontrol_new wsa_rx_0_vi_fb_lch_mux =
18950 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_LCH_MUX",
18951 wsa_rx_0_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
18952 spkr_prot_put_vi_lch_port);
18953
18954static const struct snd_kcontrol_new wsa_rx_0_vi_fb_rch_mux =
18955 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_RCH_MUX",
18956 wsa_rx_0_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
18957 spkr_prot_put_vi_rch_port);
18958
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018959static const struct snd_kcontrol_new mi2s_rx_vi_fb_mux =
18960 SOC_DAPM_ENUM_EXT("PRI_MI2S_RX_VI_FB_MUX",
18961 mi2s_rx_vi_fb_mux_enum, spkr_prot_get_vi_lch_port,
18962 spkr_prot_put_vi_lch_port);
18963
18964static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_mono_ch_mux =
18965 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_MONO_CH_MUX",
18966 int4_mi2s_rx_vi_fb_mono_ch_mux_enum, spkr_prot_get_vi_lch_port,
18967 spkr_prot_put_vi_lch_port);
18968
18969static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_stereo_ch_mux =
18970 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX",
18971 int4_mi2s_rx_vi_fb_stereo_ch_mux_enum, spkr_prot_get_vi_rch_port,
18972 spkr_prot_put_vi_rch_port);
18973
18974static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
18975 /* Frontend AIF */
18976 /* Widget name equals to Front-End DAI name<Need confirmation>,
18977 * Stream name must contains substring of front-end dai name
18978 */
18979 SND_SOC_DAPM_AIF_IN("MM_DL1", "MultiMedia1 Playback", 0, 0, 0, 0),
18980 SND_SOC_DAPM_AIF_IN("MM_DL2", "MultiMedia2 Playback", 0, 0, 0, 0),
18981 SND_SOC_DAPM_AIF_IN("MM_DL3", "MultiMedia3 Playback", 0, 0, 0, 0),
18982 SND_SOC_DAPM_AIF_IN("MM_DL4", "MultiMedia4 Playback", 0, 0, 0, 0),
18983 SND_SOC_DAPM_AIF_IN("MM_DL5", "MultiMedia5 Playback", 0, 0, 0, 0),
18984 SND_SOC_DAPM_AIF_IN("MM_DL6", "MultiMedia6 Playback", 0, 0, 0, 0),
18985 SND_SOC_DAPM_AIF_IN("MM_DL7", "MultiMedia7 Playback", 0, 0, 0, 0),
18986 SND_SOC_DAPM_AIF_IN("MM_DL8", "MultiMedia8 Playback", 0, 0, 0, 0),
18987 SND_SOC_DAPM_AIF_IN("MM_DL9", "MultiMedia9 Playback", 0, 0, 0, 0),
18988 SND_SOC_DAPM_AIF_IN("MM_DL10", "MultiMedia10 Playback", 0, 0, 0, 0),
18989 SND_SOC_DAPM_AIF_IN("MM_DL11", "MultiMedia11 Playback", 0, 0, 0, 0),
18990 SND_SOC_DAPM_AIF_IN("MM_DL12", "MultiMedia12 Playback", 0, 0, 0, 0),
18991 SND_SOC_DAPM_AIF_IN("MM_DL13", "MultiMedia13 Playback", 0, 0, 0, 0),
18992 SND_SOC_DAPM_AIF_IN("MM_DL14", "MultiMedia14 Playback", 0, 0, 0, 0),
18993 SND_SOC_DAPM_AIF_IN("MM_DL15", "MultiMedia15 Playback", 0, 0, 0, 0),
18994 SND_SOC_DAPM_AIF_IN("MM_DL16", "MultiMedia16 Playback", 0, 0, 0, 0),
18995 SND_SOC_DAPM_AIF_IN("MM_DL20", "MultiMedia20 Playback", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070018996 SND_SOC_DAPM_AIF_IN("MM_DL21", "MultiMedia21 Playback", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053018997 SND_SOC_DAPM_AIF_IN("MM_DL26", "MultiMedia26 Playback", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018998 SND_SOC_DAPM_AIF_IN("VOIP_DL", "VoIP Playback", 0, 0, 0, 0),
18999 SND_SOC_DAPM_AIF_OUT("MM_UL1", "MultiMedia1 Capture", 0, 0, 0, 0),
19000 SND_SOC_DAPM_AIF_OUT("MM_UL2", "MultiMedia2 Capture", 0, 0, 0, 0),
19001 SND_SOC_DAPM_AIF_OUT("MM_UL3", "MultiMedia3 Capture", 0, 0, 0, 0),
19002 SND_SOC_DAPM_AIF_OUT("MM_UL4", "MultiMedia4 Capture", 0, 0, 0, 0),
19003 SND_SOC_DAPM_AIF_OUT("MM_UL5", "MultiMedia5 Capture", 0, 0, 0, 0),
19004 SND_SOC_DAPM_AIF_OUT("MM_UL6", "MultiMedia6 Capture", 0, 0, 0, 0),
19005 SND_SOC_DAPM_AIF_OUT("MM_UL8", "MultiMedia8 Capture", 0, 0, 0, 0),
19006 SND_SOC_DAPM_AIF_OUT("MM_UL9", "MultiMedia9 Capture", 0, 0, 0, 0),
Laxminath Kasam38070be2017-08-17 18:21:59 +053019007 SND_SOC_DAPM_AIF_OUT("MM_UL10", "MultiMedia10 Capture", 0, 0, 0, 0),
Asish Bhattacharya34504582017-08-08 12:55:01 +053019008 SND_SOC_DAPM_AIF_OUT("MM_UL16", "MultiMedia16 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019009 SND_SOC_DAPM_AIF_OUT("MM_UL17", "MultiMedia17 Capture", 0, 0, 0, 0),
19010 SND_SOC_DAPM_AIF_OUT("MM_UL18", "MultiMedia18 Capture", 0, 0, 0, 0),
19011 SND_SOC_DAPM_AIF_OUT("MM_UL19", "MultiMedia19 Capture", 0, 0, 0, 0),
19012 SND_SOC_DAPM_AIF_OUT("MM_UL20", "MultiMedia20 Capture", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070019013 SND_SOC_DAPM_AIF_OUT("MM_UL21", "MultiMedia21 Capture", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053019014 SND_SOC_DAPM_AIF_OUT("MM_UL27", "MultiMedia27 Capture", 0, 0, 0, 0),
Meng Wang5c4bab72018-04-25 10:40:01 +080019015 SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
19016 SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019017 SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
19018 SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
19019 "VoiceMMode1 Playback", 0, 0, 0, 0),
19020 SND_SOC_DAPM_AIF_OUT("VOICEMMODE1_UL",
19021 "VoiceMMode1 Capture", 0, 0, 0, 0),
19022 SND_SOC_DAPM_AIF_IN("VOICEMMODE2_DL",
19023 "VoiceMMode2 Playback", 0, 0, 0, 0),
19024 SND_SOC_DAPM_AIF_OUT("VOICEMMODE2_UL",
19025 "VoiceMMode2 Capture", 0, 0, 0, 0),
19026 SND_SOC_DAPM_AIF_IN("SLIM0_DL_HL", "SLIMBUS0_HOSTLESS Playback",
19027 0, 0, 0, 0),
19028 SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
19029 0, 0, 0, 0),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053019030 SND_SOC_DAPM_AIF_IN("CDC_DMA_DL_HL", "CDC_DMA_HOSTLESS Playback",
19031 0, 0, 0, 0),
19032 SND_SOC_DAPM_AIF_OUT("CDC_DMA_UL_HL", "CDC_DMA_HOSTLESS Capture",
19033 0, 0, 0, 0),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053019034 SND_SOC_DAPM_AIF_OUT("TX3_CDC_DMA_UL_HL",
19035 "TX3_CDC_DMA_HOSTLESS Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019036 SND_SOC_DAPM_AIF_OUT("CPE_LSM_UL_HL", "CPE LSM capture",
19037 0, 0, 0, 0),
19038 SND_SOC_DAPM_AIF_IN("SLIM1_DL_HL", "SLIMBUS1_HOSTLESS Playback",
19039 0, 0, 0, 0),
19040 SND_SOC_DAPM_AIF_OUT("SLIM1_UL_HL", "SLIMBUS1_HOSTLESS Capture",
19041 0, 0, 0, 0),
19042 SND_SOC_DAPM_AIF_IN("SLIM3_DL_HL", "SLIMBUS3_HOSTLESS Playback",
19043 0, 0, 0, 0),
19044 SND_SOC_DAPM_AIF_OUT("SLIM3_UL_HL", "SLIMBUS3_HOSTLESS Capture",
19045 0, 0, 0, 0),
19046 SND_SOC_DAPM_AIF_IN("SLIM4_DL_HL", "SLIMBUS4_HOSTLESS Playback",
19047 0, 0, 0, 0),
19048 SND_SOC_DAPM_AIF_OUT("SLIM4_UL_HL", "SLIMBUS4_HOSTLESS Capture",
19049 0, 0, 0, 0),
19050 SND_SOC_DAPM_AIF_IN("SLIM6_DL_HL", "SLIMBUS6_HOSTLESS Playback",
19051 0, 0, 0, 0),
19052 SND_SOC_DAPM_AIF_OUT("SLIM6_UL_HL", "SLIMBUS6_HOSTLESS Capture",
19053 0, 0, 0, 0),
19054 SND_SOC_DAPM_AIF_IN("SLIM7_DL_HL", "SLIMBUS7_HOSTLESS Playback",
19055 0, 0, 0, 0),
19056 SND_SOC_DAPM_AIF_OUT("SLIM7_UL_HL", "SLIMBUS7_HOSTLESS Capture",
19057 0, 0, 0, 0),
19058 SND_SOC_DAPM_AIF_IN("SLIM8_DL_HL", "SLIMBUS8_HOSTLESS Playback",
19059 0, 0, 0, 0),
19060 SND_SOC_DAPM_AIF_OUT("SLIM8_UL_HL", "SLIMBUS8_HOSTLESS Capture",
19061 0, 0, 0, 0),
19062 SND_SOC_DAPM_AIF_IN("INTFM_DL_HL", "INT_FM_HOSTLESS Playback",
19063 0, 0, 0, 0),
19064 SND_SOC_DAPM_AIF_OUT("INTFM_UL_HL", "INT_FM_HOSTLESS Capture",
19065 0, 0, 0, 0),
19066 SND_SOC_DAPM_AIF_IN("INTHFP_DL_HL", "INT_HFP_BT_HOSTLESS Playback",
19067 0, 0, 0, 0),
19068 SND_SOC_DAPM_AIF_OUT("INTHFP_UL_HL", "INT_HFP_BT_HOSTLESS Capture",
19069 0, 0, 0, 0),
19070 SND_SOC_DAPM_AIF_IN("USBAUDIO_DL_HL", "USBAUDIO_HOSTLESS Playback",
19071 0, 0, 0, 0),
19072 SND_SOC_DAPM_AIF_OUT("USBAUDIO_UL_HL", "USBAUDIO_HOSTLESS Capture",
19073 0, 0, 0, 0),
19074 SND_SOC_DAPM_AIF_IN("HDMI_DL_HL", "HDMI_HOSTLESS Playback", 0, 0, 0, 0),
19075 SND_SOC_DAPM_AIF_IN("SEC_I2S_DL_HL", "SEC_I2S_RX_HOSTLESS Playback",
19076 0, 0, 0, 0),
19077 SND_SOC_DAPM_AIF_IN("INT0_MI2S_DL_HL",
19078 "INT0 MI2S_RX Hostless Playback",
19079 0, 0, 0, 0),
19080 SND_SOC_DAPM_AIF_IN("INT4_MI2S_DL_HL",
19081 "INT4 MI2S_RX Hostless Playback",
19082 0, 0, 0, 0),
19083 SND_SOC_DAPM_AIF_IN("PRI_MI2S_DL_HL",
19084 "Primary MI2S_RX Hostless Playback",
19085 0, 0, 0, 0),
19086 SND_SOC_DAPM_AIF_IN("SEC_MI2S_DL_HL",
19087 "Secondary MI2S_RX Hostless Playback",
19088 0, 0, 0, 0),
19089 SND_SOC_DAPM_AIF_IN("TERT_MI2S_DL_HL",
19090 "Tertiary MI2S_RX Hostless Playback",
19091 0, 0, 0, 0),
19092 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_DL_HL",
19093 "Quaternary MI2S_RX Hostless Playback",
19094 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053019095 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_DL_HL",
19096 "Quinary MI2S_RX Hostless Playback",
19097 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019098
19099 SND_SOC_DAPM_AIF_IN("AUXPCM_DL_HL", "AUXPCM_HOSTLESS Playback",
19100 0, 0, 0, 0),
19101 SND_SOC_DAPM_AIF_OUT("AUXPCM_UL_HL", "AUXPCM_HOSTLESS Capture",
19102 0, 0, 0, 0),
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080019103 SND_SOC_DAPM_AIF_IN("SEC_AUXPCM_DL_HL", "SEC_AUXPCM_HOSTLESS Playback",
19104 0, 0, 0, 0),
19105 SND_SOC_DAPM_AIF_OUT("SEC_AUXPCM_UL_HL", "SEC_AUXPCM_HOSTLESS Capture",
19106 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019107 SND_SOC_DAPM_AIF_OUT("MI2S_UL_HL", "MI2S_TX_HOSTLESS Capture",
19108 0, 0, 0, 0),
19109 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_UL_HL",
19110 "INT3 MI2S_TX Hostless Capture",
19111 0, 0, 0, 0),
19112 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_UL_HL",
19113 "Tertiary MI2S_TX Hostless Capture",
19114 0, 0, 0, 0),
19115 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_UL_HL",
19116 "Secondary MI2S_TX Hostless Capture",
19117 0, 0, 0, 0),
19118 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_UL_HL",
19119 "Primary MI2S_TX Hostless Capture",
19120 0, 0, 0, 0),
19121 SND_SOC_DAPM_AIF_OUT("MI2S_DL_HL", "MI2S_RX_HOSTLESS Playback",
19122 0, 0, 0, 0),
19123 SND_SOC_DAPM_AIF_IN("DTMF_DL_HL", "DTMF_RX_HOSTLESS Playback",
19124 0, 0, 0, 0),
19125 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_UL_HL",
19126 "Quaternary MI2S_TX Hostless Capture",
19127 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053019128 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_UL_HL",
19129 "Quinary MI2S_TX Hostless Capture",
19130 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019131
19132 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_0_DL_HL",
19133 "Primary TDM0 Hostless Playback",
19134 0, 0, 0, 0),
19135 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_0_UL_HL",
19136 "Primary TDM0 Hostless Capture",
19137 0, 0, 0, 0),
19138 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_1_DL_HL",
19139 "Primary TDM1 Hostless Playback",
19140 0, 0, 0, 0),
19141 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_1_UL_HL",
19142 "Primary TDM1 Hostless Capture",
19143 0, 0, 0, 0),
19144 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_2_DL_HL",
19145 "Primary TDM2 Hostless Playback",
19146 0, 0, 0, 0),
19147 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_2_UL_HL",
19148 "Primary TDM2 Hostless Capture",
19149 0, 0, 0, 0),
19150 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_3_DL_HL",
19151 "Primary TDM3 Hostless Playback",
19152 0, 0, 0, 0),
19153 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_3_UL_HL",
19154 "Primary TDM3 Hostless Capture",
19155 0, 0, 0, 0),
19156 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_4_DL_HL",
19157 "Primary TDM4 Hostless Playback",
19158 0, 0, 0, 0),
19159 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_4_UL_HL",
19160 "Primary TDM4 Hostless Capture",
19161 0, 0, 0, 0),
19162 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_5_DL_HL",
19163 "Primary TDM5 Hostless Playback",
19164 0, 0, 0, 0),
19165 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_5_UL_HL",
19166 "Primary TDM5 Hostless Capture",
19167 0, 0, 0, 0),
19168 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_6_DL_HL",
19169 "Primary TDM6 Hostless Playback",
19170 0, 0, 0, 0),
19171 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_6_UL_HL",
19172 "Primary TDM6 Hostless Capture",
19173 0, 0, 0, 0),
19174 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_7_DL_HL",
19175 "Primary TDM7 Hostless Playback",
19176 0, 0, 0, 0),
19177 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_7_UL_HL",
19178 "Primary TDM7 Hostless Capture",
19179 0, 0, 0, 0),
19180 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_0_DL_HL",
19181 "Secondary TDM0 Hostless Playback",
19182 0, 0, 0, 0),
19183 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_0_UL_HL",
19184 "Secondary TDM0 Hostless Capture",
19185 0, 0, 0, 0),
19186 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_1_DL_HL",
19187 "Secondary TDM1 Hostless Playback",
19188 0, 0, 0, 0),
19189 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_1_UL_HL",
19190 "Secondary TDM1 Hostless Capture",
19191 0, 0, 0, 0),
19192 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_2_DL_HL",
19193 "Secondary TDM2 Hostless Playback",
19194 0, 0, 0, 0),
19195 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_2_UL_HL",
19196 "Secondary TDM2 Hostless Capture",
19197 0, 0, 0, 0),
19198 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_3_DL_HL",
19199 "Secondary TDM3 Hostless Playback",
19200 0, 0, 0, 0),
19201 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_3_UL_HL",
19202 "Secondary TDM3 Hostless Capture",
19203 0, 0, 0, 0),
19204 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_4_DL_HL",
19205 "Secondary TDM4 Hostless Playback",
19206 0, 0, 0, 0),
19207 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_4_UL_HL",
19208 "Secondary TDM4 Hostless Capture",
19209 0, 0, 0, 0),
19210 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_5_DL_HL",
19211 "Secondary TDM5 Hostless Playback",
19212 0, 0, 0, 0),
19213 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_5_UL_HL",
19214 "Secondary TDM5 Hostless Capture",
19215 0, 0, 0, 0),
19216 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_6_DL_HL",
19217 "Secondary TDM6 Hostless Playback",
19218 0, 0, 0, 0),
19219 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_6_UL_HL",
19220 "Secondary TDM6 Hostless Capture",
19221 0, 0, 0, 0),
19222 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_7_DL_HL",
19223 "Secondary TDM7 Hostless Playback",
19224 0, 0, 0, 0),
19225 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_7_UL_HL",
19226 "Secondary TDM7 Hostless Capture",
19227 0, 0, 0, 0),
19228 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_0_DL_HL",
19229 "Tertiary TDM0 Hostless Playback",
19230 0, 0, 0, 0),
19231 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_0_UL_HL",
19232 "Tertiary TDM0 Hostless Capture",
19233 0, 0, 0, 0),
19234 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_1_DL_HL",
19235 "Tertiary TDM1 Hostless Playback",
19236 0, 0, 0, 0),
19237 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_1_UL_HL",
19238 "Tertiary TDM1 Hostless Capture",
19239 0, 0, 0, 0),
19240 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_2_DL_HL",
19241 "Tertiary TDM2 Hostless Playback",
19242 0, 0, 0, 0),
19243 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_2_UL_HL",
19244 "Tertiary TDM2 Hostless Capture",
19245 0, 0, 0, 0),
19246 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_3_DL_HL",
19247 "Tertiary TDM3 Hostless Playback",
19248 0, 0, 0, 0),
19249 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_3_UL_HL",
19250 "Tertiary TDM3 Hostless Capture",
19251 0, 0, 0, 0),
19252 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_4_DL_HL",
19253 "Tertiary TDM4 Hostless Playback",
19254 0, 0, 0, 0),
19255 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_4_UL_HL",
19256 "Tertiary TDM4 Hostless Capture",
19257 0, 0, 0, 0),
19258 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_5_DL_HL",
19259 "Tertiary TDM5 Hostless Playback",
19260 0, 0, 0, 0),
19261 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_5_UL_HL",
19262 "Tertiary TDM5 Hostless Capture",
19263 0, 0, 0, 0),
19264 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_6_DL_HL",
19265 "Tertiary TDM6 Hostless Playback",
19266 0, 0, 0, 0),
19267 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_6_UL_HL",
19268 "Tertiary TDM6 Hostless Capture",
19269 0, 0, 0, 0),
19270 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_7_DL_HL",
19271 "Tertiary TDM7 Hostless Playback",
19272 0, 0, 0, 0),
19273 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_7_UL_HL",
19274 "Tertiary TDM7 Hostless Capture",
19275 0, 0, 0, 0),
19276 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_0_DL_HL",
19277 "Quaternary TDM0 Hostless Playback",
19278 0, 0, 0, 0),
19279 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_0_UL_HL",
19280 "Quaternary TDM0 Hostless Capture",
19281 0, 0, 0, 0),
19282 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_1_DL_HL",
19283 "Quaternary TDM1 Hostless Playback",
19284 0, 0, 0, 0),
19285 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_1_UL_HL",
19286 "Quaternary TDM1 Hostless Capture",
19287 0, 0, 0, 0),
19288 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_2_DL_HL",
19289 "Quaternary TDM2 Hostless Playback",
19290 0, 0, 0, 0),
19291 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_2_UL_HL",
19292 "Quaternary TDM2 Hostless Capture",
19293 0, 0, 0, 0),
19294 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_3_DL_HL",
19295 "Quaternary TDM3 Hostless Playback",
19296 0, 0, 0, 0),
19297 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_3_UL_HL",
19298 "Quaternary TDM3 Hostless Capture",
19299 0, 0, 0, 0),
19300 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_4_DL_HL",
19301 "Quaternary TDM4 Hostless Playback",
19302 0, 0, 0, 0),
19303 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_4_UL_HL",
19304 "Quaternary TDM4 Hostless Capture",
19305 0, 0, 0, 0),
19306 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_5_DL_HL",
19307 "Quaternary TDM5 Hostless Playback",
19308 0, 0, 0, 0),
19309 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_5_UL_HL",
19310 "Quaternary TDM5 Hostless Capture",
19311 0, 0, 0, 0),
19312 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_6_DL_HL",
19313 "Quaternary TDM6 Hostless Playback",
19314 0, 0, 0, 0),
19315 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_6_UL_HL",
19316 "Quaternary TDM6 Hostless Capture",
19317 0, 0, 0, 0),
19318 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_7_DL_HL",
19319 "Quaternary TDM7 Hostless Playback",
19320 0, 0, 0, 0),
19321 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_7_UL_HL",
19322 "Quaternary TDM7 Hostless Capture",
19323 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053019324 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_0_DL_HL",
19325 "Quinary TDM0 Hostless Playback",
19326 0, 0, 0, 0),
19327 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_0_UL_HL",
19328 "Quinary TDM0 Hostless Capture",
19329 0, 0, 0, 0),
19330 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_1_DL_HL",
19331 "Quinary TDM1 Hostless Playback",
19332 0, 0, 0, 0),
19333 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_1_UL_HL",
19334 "Quinary TDM1 Hostless Capture",
19335 0, 0, 0, 0),
19336 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_2_DL_HL",
19337 "Quinary TDM2 Hostless Playback",
19338 0, 0, 0, 0),
19339 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_2_UL_HL",
19340 "Quinary TDM2 Hostless Capture",
19341 0, 0, 0, 0),
19342 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_3_DL_HL",
19343 "Quinary TDM3 Hostless Playback",
19344 0, 0, 0, 0),
19345 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_3_UL_HL",
19346 "Quinary TDM3 Hostless Capture",
19347 0, 0, 0, 0),
19348 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_4_DL_HL",
19349 "Quinary TDM4 Hostless Playback",
19350 0, 0, 0, 0),
19351 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_4_UL_HL",
19352 "Quinary TDM4 Hostless Capture",
19353 0, 0, 0, 0),
19354 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_5_DL_HL",
19355 "Quinary TDM5 Hostless Playback",
19356 0, 0, 0, 0),
19357 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_5_UL_HL",
19358 "Quinary TDM5 Hostless Capture",
19359 0, 0, 0, 0),
19360 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_6_DL_HL",
19361 "Quinary TDM6 Hostless Playback",
19362 0, 0, 0, 0),
19363 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_6_UL_HL",
19364 "Quinary TDM6 Hostless Capture",
19365 0, 0, 0, 0),
19366 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_7_DL_HL",
19367 "Quinary TDM7 Hostless Playback",
19368 0, 0, 0, 0),
19369 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_7_UL_HL",
19370 "Quinary TDM7 Hostless Capture",
19371 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019372
19373 /* LSM */
19374 SND_SOC_DAPM_AIF_OUT("LSM1_UL_HL", "Listen 1 Audio Service Capture",
19375 0, 0, 0, 0),
19376 SND_SOC_DAPM_AIF_OUT("LSM2_UL_HL", "Listen 2 Audio Service Capture",
19377 0, 0, 0, 0),
19378 SND_SOC_DAPM_AIF_OUT("LSM3_UL_HL", "Listen 3 Audio Service Capture",
19379 0, 0, 0, 0),
19380 SND_SOC_DAPM_AIF_OUT("LSM4_UL_HL", "Listen 4 Audio Service Capture",
19381 0, 0, 0, 0),
19382 SND_SOC_DAPM_AIF_OUT("LSM5_UL_HL", "Listen 5 Audio Service Capture",
19383 0, 0, 0, 0),
19384 SND_SOC_DAPM_AIF_OUT("LSM6_UL_HL", "Listen 6 Audio Service Capture",
19385 0, 0, 0, 0),
19386 SND_SOC_DAPM_AIF_OUT("LSM7_UL_HL", "Listen 7 Audio Service Capture",
19387 0, 0, 0, 0),
19388 SND_SOC_DAPM_AIF_OUT("LSM8_UL_HL", "Listen 8 Audio Service Capture",
19389 0, 0, 0, 0),
19390 SND_SOC_DAPM_AIF_IN("QCHAT_DL", "QCHAT Playback", 0, 0, 0, 0),
19391 SND_SOC_DAPM_AIF_OUT("QCHAT_UL", "QCHAT Capture", 0, 0, 0, 0),
19392 /* Backend AIF */
19393 /* Stream name equals to backend dai link stream name */
19394 SND_SOC_DAPM_AIF_OUT("PRI_I2S_RX", "Primary I2S Playback", 0, 0, 0, 0),
19395 SND_SOC_DAPM_AIF_OUT("SEC_I2S_RX", "Secondary I2S Playback",
19396 0, 0, 0, 0),
Ralf Herzc8701f72018-06-20 11:37:35 +020019397 SND_SOC_DAPM_AIF_OUT("PRI_SPDIF_RX", "Primary SPDIF Playback",
19398 0, 0, 0, 0),
19399 SND_SOC_DAPM_AIF_IN("PRI_SPDIF_TX", "Primary SPDIF Capture",
19400 0, 0, 0, 0),
19401 SND_SOC_DAPM_AIF_OUT("SEC_SPDIF_RX", "Secondary SPDIF Playback",
19402 0, 0, 0, 0),
19403 SND_SOC_DAPM_AIF_IN("SEC_SPDIF_TX", "Secondary SPDIF Capture",
19404 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019405 SND_SOC_DAPM_AIF_OUT("SLIMBUS_0_RX", "Slimbus Playback", 0, 0, 0, 0),
19406 SND_SOC_DAPM_AIF_OUT("SLIMBUS_2_RX", "Slimbus2 Playback", 0, 0, 0, 0),
19407 SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_RX", "Slimbus5 Playback", 0, 0, 0, 0),
19408 SND_SOC_DAPM_AIF_OUT("HDMI", "HDMI Playback", 0, 0, 0, 0),
19409 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT", "Display Port Playback",
19410 0, 0, 0, 0),
Karthikeyan Mani57550082018-05-03 18:43:58 -070019411 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT1", "Display Port1 Playback",
19412 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019413 SND_SOC_DAPM_AIF_OUT("MI2S_RX", "MI2S Playback", 0, 0, 0, 0),
19414 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_RX", "Quaternary MI2S Playback",
19415 0, 0, 0, 0),
19416 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_RX", "Tertiary MI2S Playback",
19417 0, 0, 0, 0),
19418 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX", "Secondary MI2S Playback",
19419 0, 0, 0, 0),
19420 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX_SD1",
19421 "Secondary MI2S Playback SD1",
19422 0, 0, 0, 0),
19423 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_RX", "Primary MI2S Playback",
19424 0, 0, 0, 0),
19425 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_RX", "INT0 MI2S Playback",
19426 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053019427 SND_SOC_DAPM_AIF_OUT("INT2_MI2S_RX", "INT2 MI2S Playback",
19428 0, 0, 0, 0),
19429 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_RX", "INT3 MI2S Playback",
19430 0, 0, 0, 0),
19431 SND_SOC_DAPM_AIF_OUT("INT5_MI2S_RX", "INT5 MI2S Playback",
19432 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019433 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_RX", "INT4 MI2S Playback",
19434 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053019435 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_TX", "INT4 MI2S Capture",
19436 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019437 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_RX", "Quinary MI2S Playback",
19438 0, 0, 0, 0),
19439 SND_SOC_DAPM_AIF_IN("PRI_I2S_TX", "Primary I2S Capture", 0, 0, 0, 0),
19440 SND_SOC_DAPM_AIF_IN("MI2S_TX", "MI2S Capture", 0, 0, 0, 0),
19441 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_TX", "Quaternary MI2S Capture",
19442 0, 0, 0, 0),
19443 SND_SOC_DAPM_AIF_IN("PRI_MI2S_TX", "Primary MI2S Capture",
19444 0, 0, 0, 0),
19445 SND_SOC_DAPM_AIF_IN("TERT_MI2S_TX", "Tertiary MI2S Capture",
19446 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053019447 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_TX", "INT0 MI2S Capture",
19448 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019449 SND_SOC_DAPM_AIF_IN("INT2_MI2S_TX", "INT2 MI2S Capture",
19450 0, 0, 0, 0),
19451 SND_SOC_DAPM_AIF_IN("INT3_MI2S_TX", "INT3 MI2S Capture",
19452 0, 0, 0, 0),
19453 SND_SOC_DAPM_AIF_IN("SEC_MI2S_TX", "Secondary MI2S Capture",
19454 0, 0, 0, 0),
19455 SND_SOC_DAPM_AIF_IN("SLIMBUS_0_TX", "Slimbus Capture", 0, 0, 0, 0),
19456 SND_SOC_DAPM_AIF_IN("SLIMBUS_2_TX", "Slimbus2 Capture", 0, 0, 0, 0),
19457 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_TX", "Quinary MI2S Capture",
19458 0, 0, 0, 0),
19459 SND_SOC_DAPM_AIF_IN("SENARY_MI2S_TX", "Senary MI2S Capture",
19460 0, 0, 0, 0),
19461 SND_SOC_DAPM_AIF_OUT("INT_BT_SCO_RX", "Internal BT-SCO Playback",
19462 0, 0, 0, 0),
19463 SND_SOC_DAPM_AIF_IN("INT_BT_SCO_TX", "Internal BT-SCO Capture",
19464 0, 0, 0, 0),
19465 SND_SOC_DAPM_AIF_OUT("INT_BT_A2DP_RX", "Internal BT-A2DP Playback",
19466 0, 0, 0, 0),
19467 SND_SOC_DAPM_AIF_OUT("INT_FM_RX", "Internal FM Playback",
19468 0, 0, 0, 0),
19469 SND_SOC_DAPM_AIF_IN("INT_FM_TX", "Internal FM Capture",
19470 0, 0, 0, 0),
19471 SND_SOC_DAPM_AIF_OUT("PCM_RX", "AFE Playback",
19472 0, 0, 0, 0),
19473 SND_SOC_DAPM_AIF_IN("PCM_TX", "AFE Capture",
19474 0, 0, 0, 0),
19475 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_0", "Primary TDM0 Playback",
19476 0, 0, 0, 0),
19477 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_0", "Primary TDM0 Capture",
19478 0, 0, 0, 0),
19479 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_1", "Primary TDM1 Playback",
19480 0, 0, 0, 0),
19481 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_1", "Primary TDM1 Capture",
19482 0, 0, 0, 0),
19483 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_2", "Primary TDM2 Playback",
19484 0, 0, 0, 0),
19485 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_2", "Primary TDM2 Capture",
19486 0, 0, 0, 0),
19487 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_3", "Primary TDM3 Playback",
19488 0, 0, 0, 0),
19489 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_3", "Primary TDM3 Capture",
19490 0, 0, 0, 0),
19491 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_4", "Primary TDM4 Playback",
19492 0, 0, 0, 0),
19493 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_4", "Primary TDM4 Capture",
19494 0, 0, 0, 0),
19495 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_5", "Primary TDM5 Playback",
19496 0, 0, 0, 0),
19497 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_5", "Primary TDM5 Capture",
19498 0, 0, 0, 0),
19499 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_6", "Primary TDM6 Playback",
19500 0, 0, 0, 0),
19501 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_6", "Primary TDM6 Capture",
19502 0, 0, 0, 0),
19503 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_7", "Primary TDM7 Playback",
19504 0, 0, 0, 0),
19505 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_7", "Primary TDM7 Capture",
19506 0, 0, 0, 0),
19507 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_0", "Secondary TDM0 Playback",
19508 0, 0, 0, 0),
19509 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_0", "Secondary TDM0 Capture",
19510 0, 0, 0, 0),
19511 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_1", "Secondary TDM1 Playback",
19512 0, 0, 0, 0),
19513 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_1", "Secondary TDM1 Capture",
19514 0, 0, 0, 0),
19515 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_2", "Secondary TDM2 Playback",
19516 0, 0, 0, 0),
19517 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_2", "Secondary TDM2 Capture",
19518 0, 0, 0, 0),
19519 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_3", "Secondary TDM3 Playback",
19520 0, 0, 0, 0),
19521 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_3", "Secondary TDM3 Capture",
19522 0, 0, 0, 0),
19523 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_4", "Secondary TDM4 Playback",
19524 0, 0, 0, 0),
19525 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_4", "Secondary TDM4 Capture",
19526 0, 0, 0, 0),
19527 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_5", "Secondary TDM5 Playback",
19528 0, 0, 0, 0),
19529 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_5", "Secondary TDM5 Capture",
19530 0, 0, 0, 0),
19531 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_6", "Secondary TDM6 Playback",
19532 0, 0, 0, 0),
19533 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_6", "Secondary TDM6 Capture",
19534 0, 0, 0, 0),
19535 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_7", "Secondary TDM7 Playback",
19536 0, 0, 0, 0),
19537 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_7", "Secondary TDM7 Capture",
19538 0, 0, 0, 0),
19539 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_0", "Tertiary TDM0 Playback",
19540 0, 0, 0, 0),
19541 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_0", "Tertiary TDM0 Capture",
19542 0, 0, 0, 0),
19543 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_1", "Tertiary TDM1 Playback",
19544 0, 0, 0, 0),
19545 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_1", "Tertiary TDM1 Capture",
19546 0, 0, 0, 0),
19547 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_2", "Tertiary TDM2 Playback",
19548 0, 0, 0, 0),
19549 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_2", "Tertiary TDM2 Capture",
19550 0, 0, 0, 0),
19551 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_3", "Tertiary TDM3 Playback",
19552 0, 0, 0, 0),
19553 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_3", "Tertiary TDM3 Capture",
19554 0, 0, 0, 0),
19555 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_4", "Tertiary TDM4 Playback",
19556 0, 0, 0, 0),
19557 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_4", "Tertiary TDM4 Capture",
19558 0, 0, 0, 0),
19559 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_5", "Tertiary TDM5 Playback",
19560 0, 0, 0, 0),
19561 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_5", "Tertiary TDM5 Capture",
19562 0, 0, 0, 0),
19563 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_6", "Tertiary TDM6 Playback",
19564 0, 0, 0, 0),
19565 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_6", "Tertiary TDM6 Capture",
19566 0, 0, 0, 0),
19567 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_7", "Tertiary TDM7 Playback",
19568 0, 0, 0, 0),
19569 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_7", "Tertiary TDM7 Capture",
19570 0, 0, 0, 0),
19571 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_0", "Quaternary TDM0 Playback",
19572 0, 0, 0, 0),
19573 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_0", "Quaternary TDM0 Capture",
19574 0, 0, 0, 0),
19575 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_1", "Quaternary TDM1 Playback",
19576 0, 0, 0, 0),
19577 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_1", "Quaternary TDM1 Capture",
19578 0, 0, 0, 0),
19579 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_2", "Quaternary TDM2 Playback",
19580 0, 0, 0, 0),
19581 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_2", "Quaternary TDM2 Capture",
19582 0, 0, 0, 0),
19583 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_3", "Quaternary TDM3 Playback",
19584 0, 0, 0, 0),
19585 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_3", "Quaternary TDM3 Capture",
19586 0, 0, 0, 0),
19587 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_4", "Quaternary TDM4 Playback",
19588 0, 0, 0, 0),
19589 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_4", "Quaternary TDM4 Capture",
19590 0, 0, 0, 0),
19591 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_5", "Quaternary TDM5 Playback",
19592 0, 0, 0, 0),
19593 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_5", "Quaternary TDM5 Capture",
19594 0, 0, 0, 0),
19595 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_6", "Quaternary TDM6 Playback",
19596 0, 0, 0, 0),
19597 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_6", "Quaternary TDM6 Capture",
19598 0, 0, 0, 0),
19599 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_7", "Quaternary TDM7 Playback",
19600 0, 0, 0, 0),
19601 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_7", "Quaternary TDM7 Capture",
19602 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053019603 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_0", "Quinary TDM0 Playback",
19604 0, 0, 0, 0),
19605 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_0", "Quinary TDM0 Capture",
19606 0, 0, 0, 0),
19607 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_1", "Quinary TDM1 Playback",
19608 0, 0, 0, 0),
19609 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_1", "Quinary TDM1 Capture",
19610 0, 0, 0, 0),
19611 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_2", "Quinary TDM2 Playback",
19612 0, 0, 0, 0),
19613 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_2", "Quinary TDM2 Capture",
19614 0, 0, 0, 0),
19615 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_3", "Quinary TDM3 Playback",
19616 0, 0, 0, 0),
19617 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_3", "Quinary TDM3 Capture",
19618 0, 0, 0, 0),
19619 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_4", "Quinary TDM4 Playback",
19620 0, 0, 0, 0),
19621 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_4", "Quinary TDM4 Capture",
19622 0, 0, 0, 0),
19623 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_5", "Quinary TDM5 Playback",
19624 0, 0, 0, 0),
19625 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_5", "Quinary TDM5 Capture",
19626 0, 0, 0, 0),
19627 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_6", "Quinary TDM6 Playback",
19628 0, 0, 0, 0),
19629 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_6", "Quinary TDM6 Capture",
19630 0, 0, 0, 0),
19631 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_7", "Quinary TDM7 Playback",
19632 0, 0, 0, 0),
19633 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_7", "Quinary TDM7 Capture",
19634 0, 0, 0, 0),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019635 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_0", "WSA CDC DMA0 Playback",
19636 0, 0, 0, 0),
19637 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_0", "WSA CDC DMA0 Capture",
19638 0, 0, 0, 0),
19639 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_1", "WSA CDC DMA1 Playback",
19640 0, 0, 0, 0),
19641 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_1", "WSA CDC DMA1 Capture",
19642 0, 0, 0, 0),
19643 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_2", "WSA CDC DMA2 Capture",
19644 0, 0, 0, 0),
19645 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_0", "VA CDC DMA0 Capture",
19646 0, 0, 0, 0),
19647 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_1", "VA CDC DMA1 Capture",
19648 0, 0, 0, 0),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080019649 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_2", "VA CDC DMA2 Capture",
19650 0, 0, 0, 0),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019651 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_0", "RX CDC DMA0 Playback",
19652 0, 0, 0, 0),
19653 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_0", "TX CDC DMA0 Capture",
19654 0, 0, 0, 0),
19655 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_1", "RX CDC DMA1 Playback",
19656 0, 0, 0, 0),
19657 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_1", "TX CDC DMA1 Capture",
19658 0, 0, 0, 0),
19659 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_2", "RX CDC DMA2 Playback",
19660 0, 0, 0, 0),
19661 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_2", "TX CDC DMA2 Capture",
19662 0, 0, 0, 0),
19663 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_3", "RX CDC DMA3 Playback",
19664 0, 0, 0, 0),
19665 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_3", "TX CDC DMA3 Capture",
19666 0, 0, 0, 0),
19667 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_4", "RX CDC DMA4 Playback",
19668 0, 0, 0, 0),
19669 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_4", "TX CDC DMA4 Capture",
19670 0, 0, 0, 0),
19671 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_5", "RX CDC DMA5 Playback",
19672 0, 0, 0, 0),
19673 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_5", "TX CDC DMA5 Capture",
19674 0, 0, 0, 0),
19675 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_6", "RX CDC DMA6 Playback",
19676 0, 0, 0, 0),
19677 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_7", "RX CDC DMA7 Playback",
19678 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019679 /* incall */
19680 SND_SOC_DAPM_AIF_OUT("VOICE_PLAYBACK_TX", "Voice Farend Playback",
19681 0, 0, 0, 0),
19682 SND_SOC_DAPM_AIF_OUT("VOICE2_PLAYBACK_TX", "Voice2 Farend Playback",
19683 0, 0, 0, 0),
19684 SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_RX", "Slimbus4 Playback",
19685 0, 0, 0, 0),
19686 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_TX", "Voice Uplink Capture",
19687 0, 0, 0, 0),
19688 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_RX", "Voice Downlink Capture",
19689 0, 0, 0, 0),
19690 SND_SOC_DAPM_AIF_IN("SLIMBUS_4_TX", "Slimbus4 Capture",
19691 0, 0, 0, 0),
19692 SND_SOC_DAPM_AIF_IN("SENARY_TX", "Senary_mi2s Capture",
19693 0, 0, 0, 0),
19694 SND_SOC_DAPM_AIF_IN("INT5_MI2S_TX", "INT5 MI2S Capture",
19695 0, 0, 0, 0),
19696 SND_SOC_DAPM_AIF_IN("SLIMBUS_5_TX", "Slimbus5 Capture", 0, 0, 0, 0),
19697
19698 SND_SOC_DAPM_AIF_OUT("AUX_PCM_RX", "AUX PCM Playback", 0, 0, 0, 0),
19699 SND_SOC_DAPM_AIF_IN("AUX_PCM_TX", "AUX PCM Capture", 0, 0, 0, 0),
19700 SND_SOC_DAPM_AIF_OUT("SEC_AUX_PCM_RX", "Sec AUX PCM Playback",
19701 0, 0, 0, 0),
19702 SND_SOC_DAPM_AIF_IN("SEC_AUX_PCM_TX", "Sec AUX PCM Capture",
19703 0, 0, 0, 0),
19704 SND_SOC_DAPM_AIF_OUT("TERT_AUX_PCM_RX", "Tert AUX PCM Playback",
19705 0, 0, 0, 0),
19706 SND_SOC_DAPM_AIF_IN("TERT_AUX_PCM_TX", "Tert AUX PCM Capture",
19707 0, 0, 0, 0),
19708 SND_SOC_DAPM_AIF_OUT("QUAT_AUX_PCM_RX", "Quat AUX PCM Playback",
19709 0, 0, 0, 0),
19710 SND_SOC_DAPM_AIF_IN("QUAT_AUX_PCM_TX", "Quat AUX PCM Capture",
19711 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053019712 SND_SOC_DAPM_AIF_OUT("QUIN_AUX_PCM_RX", "Quin AUX PCM Playback",
19713 0, 0, 0, 0),
19714 SND_SOC_DAPM_AIF_IN("QUIN_AUX_PCM_TX", "Quin AUX PCM Capture",
19715 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019716 SND_SOC_DAPM_AIF_IN("VOICE_STUB_DL", "VOICE_STUB Playback", 0, 0, 0, 0),
19717 SND_SOC_DAPM_AIF_OUT("VOICE_STUB_UL", "VOICE_STUB Capture", 0, 0, 0, 0),
19718 SND_SOC_DAPM_AIF_IN("VOICE2_STUB_DL", "VOICE2_STUB Playback",
19719 0, 0, 0, 0),
19720 SND_SOC_DAPM_AIF_OUT("VOICE2_STUB_UL", "VOICE2_STUB Capture",
19721 0, 0, 0, 0),
19722 SND_SOC_DAPM_AIF_IN("VOLTE_STUB_DL", "VOLTE_STUB Playback", 0, 0, 0, 0),
19723 SND_SOC_DAPM_AIF_OUT("VOLTE_STUB_UL", "VOLTE_STUB Capture", 0, 0, 0, 0),
19724 SND_SOC_DAPM_AIF_OUT("STUB_RX", "Stub Playback", 0, 0, 0, 0),
19725 SND_SOC_DAPM_AIF_IN("STUB_TX", "Stub Capture", 0, 0, 0, 0),
19726 SND_SOC_DAPM_AIF_OUT("SLIMBUS_1_RX", "Slimbus1 Playback", 0, 0, 0, 0),
19727 SND_SOC_DAPM_AIF_IN("SLIMBUS_1_TX", "Slimbus1 Capture", 0, 0, 0, 0),
19728 SND_SOC_DAPM_AIF_IN("STUB_1_TX", "Stub1 Capture", 0, 0, 0, 0),
19729 SND_SOC_DAPM_AIF_OUT("SLIMBUS_3_RX", "Slimbus3 Playback", 0, 0, 0, 0),
19730 SND_SOC_DAPM_AIF_IN("SLIMBUS_3_TX", "Slimbus3 Capture", 0, 0, 0, 0),
19731 /* In- call recording */
19732 SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_RX", "Slimbus6 Playback", 0, 0, 0, 0),
19733 SND_SOC_DAPM_AIF_IN("SLIMBUS_6_TX", "Slimbus6 Capture", 0, 0, 0, 0),
Surendar Karkad47fda42018-05-20 19:21:10 +053019734 SND_SOC_DAPM_AIF_IN("AFE_LOOPBACK_TX", "AFE Loopback Capture",
19735 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019736 SND_SOC_DAPM_AIF_OUT("SLIMBUS_7_RX", "Slimbus7 Playback", 0, 0, 0, 0),
19737 SND_SOC_DAPM_AIF_IN("SLIMBUS_7_TX", "Slimbus7 Capture", 0, 0, 0, 0),
19738
19739 SND_SOC_DAPM_AIF_OUT("SLIMBUS_8_RX", "Slimbus8 Playback", 0, 0, 0, 0),
19740 SND_SOC_DAPM_AIF_IN("SLIMBUS_8_TX", "Slimbus8 Capture", 0, 0, 0, 0),
Surendar Karka3ef3d812018-09-28 18:52:35 +053019741 SND_SOC_DAPM_AIF_OUT("SLIMBUS_9_RX", "Slimbus9 Playback", 0, 0, 0, 0),
19742 SND_SOC_DAPM_AIF_IN("SLIMBUS_9_TX", "Slimbus9 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019743 SND_SOC_DAPM_AIF_OUT("USB_AUDIO_RX", "USB Audio Playback", 0, 0, 0, 0),
19744 SND_SOC_DAPM_AIF_IN("USB_AUDIO_TX", "USB Audio Capture", 0, 0, 0, 0),
19745
19746 /* Switch Definitions */
19747 SND_SOC_DAPM_SWITCH("SLIMBUS_DL_HL", SND_SOC_NOPM, 0, 0,
19748 &slim_fm_switch_mixer_controls),
19749 SND_SOC_DAPM_SWITCH("SLIMBUS1_DL_HL", SND_SOC_NOPM, 0, 0,
19750 &slim1_fm_switch_mixer_controls),
19751 SND_SOC_DAPM_SWITCH("SLIMBUS3_DL_HL", SND_SOC_NOPM, 0, 0,
19752 &slim3_fm_switch_mixer_controls),
19753 SND_SOC_DAPM_SWITCH("SLIMBUS4_DL_HL", SND_SOC_NOPM, 0, 0,
19754 &slim4_fm_switch_mixer_controls),
19755 SND_SOC_DAPM_SWITCH("SLIMBUS6_DL_HL", SND_SOC_NOPM, 0, 0,
19756 &slim6_fm_switch_mixer_controls),
19757 SND_SOC_DAPM_SWITCH("PCM_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19758 &pcm_rx_switch_mixer_controls),
19759 SND_SOC_DAPM_SWITCH("INT0_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19760 &int0_mi2s_rx_switch_mixer_controls),
19761 SND_SOC_DAPM_SWITCH("INT4_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19762 &int4_mi2s_rx_switch_mixer_controls),
19763 SND_SOC_DAPM_SWITCH("PRI_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19764 &pri_mi2s_rx_switch_mixer_controls),
19765 SND_SOC_DAPM_SWITCH("SEC_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19766 &sec_mi2s_rx_switch_mixer_controls),
19767 SND_SOC_DAPM_SWITCH("TERT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19768 &tert_mi2s_rx_switch_mixer_controls),
19769 SND_SOC_DAPM_SWITCH("QUAT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19770 &quat_mi2s_rx_switch_mixer_controls),
Rohit Kumara5077932017-09-10 22:05:05 +053019771 SND_SOC_DAPM_SWITCH("QUIN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
19772 &quin_mi2s_rx_switch_mixer_controls),
Zhou Songcaa541d2019-02-19 18:37:47 +080019773 SND_SOC_DAPM_SWITCH("SCO_SLIM7_DL_HL", SND_SOC_NOPM, 0, 0,
19774 &sco_slim7_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019775 SND_SOC_DAPM_SWITCH("HFP_PRI_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
19776 &hfp_pri_aux_switch_mixer_controls),
19777 SND_SOC_DAPM_SWITCH("HFP_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
19778 &hfp_aux_switch_mixer_controls),
19779 SND_SOC_DAPM_SWITCH("HFP_INT_UL_HL", SND_SOC_NOPM, 0, 0,
19780 &hfp_int_switch_mixer_controls),
19781 SND_SOC_DAPM_SWITCH("HFP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
19782 &hfp_slim7_switch_mixer_controls),
19783 SND_SOC_DAPM_SWITCH("USB_DL_HL", SND_SOC_NOPM, 0, 0,
19784 &usb_switch_mixer_controls),
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080019785 SND_SOC_DAPM_SWITCH("A2DP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
19786 &a2dp_slim7_switch_mixer_controls),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053019787 SND_SOC_DAPM_SWITCH("WSA_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053019788 &cdc_dma_wsa_switch_mixer_controls),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053019789 SND_SOC_DAPM_SWITCH("RX_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053019790 &cdc_dma_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019791
19792 /* Mixer definitions */
19793 SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19794 pri_i2s_rx_mixer_controls, ARRAY_SIZE(pri_i2s_rx_mixer_controls)),
19795 SND_SOC_DAPM_MIXER("SEC_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19796 sec_i2s_rx_mixer_controls, ARRAY_SIZE(sec_i2s_rx_mixer_controls)),
19797 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19798 slimbus_rx_mixer_controls, ARRAY_SIZE(slimbus_rx_mixer_controls)),
19799 SND_SOC_DAPM_MIXER("SLIMBUS_2_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19800 slimbus_2_rx_mixer_controls, ARRAY_SIZE(slimbus_2_rx_mixer_controls)),
19801 SND_SOC_DAPM_MIXER("SLIMBUS_5_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19802 slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
19803 SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19804 slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
Surendar Karka3ef3d812018-09-28 18:52:35 +053019805 SND_SOC_DAPM_MIXER("SLIMBUS_9_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19806 slimbus_9_rx_mixer_controls, ARRAY_SIZE(slimbus_9_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019807 SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
19808 hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
19809 SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
19810 display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070019811 SND_SOC_DAPM_MIXER("DISPLAY_PORT1 Mixer", SND_SOC_NOPM, 0, 0,
19812 display_port1_mixer_controls, ARRAY_SIZE(display_port1_mixer_controls)),
Ralf Herzc8701f72018-06-20 11:37:35 +020019813 SND_SOC_DAPM_MIXER("PRI_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19814 pri_spdif_rx_mixer_controls, ARRAY_SIZE(pri_spdif_rx_mixer_controls)),
19815 SND_SOC_DAPM_MIXER("SEC_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19816 sec_spdif_rx_mixer_controls, ARRAY_SIZE(sec_spdif_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019817 SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19818 mi2s_rx_mixer_controls, ARRAY_SIZE(mi2s_rx_mixer_controls)),
19819 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19820 quaternary_mi2s_rx_mixer_controls,
19821 ARRAY_SIZE(quaternary_mi2s_rx_mixer_controls)),
19822 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19823 tertiary_mi2s_rx_mixer_controls,
19824 ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
19825 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19826 secondary_mi2s_rx_mixer_controls,
19827 ARRAY_SIZE(secondary_mi2s_rx_mixer_controls)),
19828 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_SD1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19829 secondary_mi2s_rx2_mixer_controls,
19830 ARRAY_SIZE(secondary_mi2s_rx2_mixer_controls)),
19831 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19832 primary_mi2s_rx_mixer_controls,
19833 ARRAY_SIZE(primary_mi2s_rx_mixer_controls)),
19834 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19835 int0_mi2s_rx_mixer_controls,
19836 ARRAY_SIZE(int0_mi2s_rx_mixer_controls)),
19837 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19838 int4_mi2s_rx_mixer_controls,
19839 ARRAY_SIZE(int4_mi2s_rx_mixer_controls)),
19840 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19841 quinary_mi2s_rx_mixer_controls,
19842 ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
19843 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19844 pri_tdm_rx_0_mixer_controls,
19845 ARRAY_SIZE(pri_tdm_rx_0_mixer_controls)),
19846 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19847 pri_tdm_rx_1_mixer_controls,
19848 ARRAY_SIZE(pri_tdm_rx_1_mixer_controls)),
19849 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19850 pri_tdm_rx_2_mixer_controls,
19851 ARRAY_SIZE(pri_tdm_rx_2_mixer_controls)),
19852 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19853 pri_tdm_rx_3_mixer_controls,
19854 ARRAY_SIZE(pri_tdm_rx_3_mixer_controls)),
19855 SND_SOC_DAPM_MIXER("PRI_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19856 pri_tdm_tx_0_mixer_controls,
19857 ARRAY_SIZE(pri_tdm_tx_0_mixer_controls)),
19858 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19859 sec_tdm_rx_0_mixer_controls,
19860 ARRAY_SIZE(sec_tdm_rx_0_mixer_controls)),
19861 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19862 sec_tdm_rx_1_mixer_controls,
19863 ARRAY_SIZE(sec_tdm_rx_1_mixer_controls)),
19864 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19865 sec_tdm_rx_2_mixer_controls,
19866 ARRAY_SIZE(sec_tdm_rx_2_mixer_controls)),
19867 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19868 sec_tdm_rx_3_mixer_controls,
19869 ARRAY_SIZE(sec_tdm_rx_3_mixer_controls)),
19870 SND_SOC_DAPM_MIXER("SEC_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19871 sec_tdm_tx_0_mixer_controls,
19872 ARRAY_SIZE(sec_tdm_tx_0_mixer_controls)),
19873 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19874 tert_tdm_rx_0_mixer_controls,
19875 ARRAY_SIZE(tert_tdm_rx_0_mixer_controls)),
19876 SND_SOC_DAPM_MIXER("TERT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19877 tert_tdm_tx_0_mixer_controls,
19878 ARRAY_SIZE(tert_tdm_tx_0_mixer_controls)),
19879 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19880 tert_tdm_rx_1_mixer_controls,
19881 ARRAY_SIZE(tert_tdm_rx_1_mixer_controls)),
19882 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19883 tert_tdm_rx_2_mixer_controls,
19884 ARRAY_SIZE(tert_tdm_rx_2_mixer_controls)),
19885 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19886 tert_tdm_rx_3_mixer_controls,
19887 ARRAY_SIZE(tert_tdm_rx_3_mixer_controls)),
19888 SND_SOC_DAPM_MIXER("TERT_TDM_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
19889 tert_tdm_rx_4_mixer_controls,
19890 ARRAY_SIZE(tert_tdm_rx_4_mixer_controls)),
19891 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19892 quat_tdm_rx_0_mixer_controls,
19893 ARRAY_SIZE(quat_tdm_rx_0_mixer_controls)),
19894 SND_SOC_DAPM_MIXER("QUAT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19895 quat_tdm_tx_0_mixer_controls,
19896 ARRAY_SIZE(quat_tdm_tx_0_mixer_controls)),
19897 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19898 quat_tdm_rx_1_mixer_controls,
19899 ARRAY_SIZE(quat_tdm_rx_1_mixer_controls)),
19900 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19901 quat_tdm_rx_2_mixer_controls,
19902 ARRAY_SIZE(quat_tdm_rx_2_mixer_controls)),
19903 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19904 quat_tdm_rx_3_mixer_controls,
19905 ARRAY_SIZE(quat_tdm_rx_3_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019906 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19907 quin_tdm_rx_0_mixer_controls,
19908 ARRAY_SIZE(quin_tdm_rx_0_mixer_controls)),
19909 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19910 quin_tdm_tx_0_mixer_controls,
19911 ARRAY_SIZE(quin_tdm_tx_0_mixer_controls)),
19912 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19913 quin_tdm_rx_1_mixer_controls,
19914 ARRAY_SIZE(quin_tdm_rx_1_mixer_controls)),
19915 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19916 quin_tdm_rx_2_mixer_controls,
19917 ARRAY_SIZE(quin_tdm_rx_2_mixer_controls)),
19918 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19919 quin_tdm_rx_3_mixer_controls,
19920 ARRAY_SIZE(quin_tdm_rx_3_mixer_controls)),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019921 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19922 wsa_cdc_dma_rx_0_mixer_controls,
19923 ARRAY_SIZE(wsa_cdc_dma_rx_0_mixer_controls)),
19924 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19925 wsa_cdc_dma_rx_1_mixer_controls,
19926 ARRAY_SIZE(wsa_cdc_dma_rx_1_mixer_controls)),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019927 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19928 rx_cdc_dma_rx_0_mixer_controls,
19929 ARRAY_SIZE(rx_cdc_dma_rx_0_mixer_controls)),
19930 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19931 rx_cdc_dma_rx_1_mixer_controls,
19932 ARRAY_SIZE(rx_cdc_dma_rx_1_mixer_controls)),
19933 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19934 rx_cdc_dma_rx_2_mixer_controls,
19935 ARRAY_SIZE(rx_cdc_dma_rx_2_mixer_controls)),
19936 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19937 rx_cdc_dma_rx_3_mixer_controls,
19938 ARRAY_SIZE(rx_cdc_dma_rx_3_mixer_controls)),
19939 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
19940 rx_cdc_dma_rx_4_mixer_controls,
19941 ARRAY_SIZE(rx_cdc_dma_rx_4_mixer_controls)),
19942 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_5 Audio Mixer", SND_SOC_NOPM, 0, 0,
19943 rx_cdc_dma_rx_5_mixer_controls,
19944 ARRAY_SIZE(rx_cdc_dma_rx_5_mixer_controls)),
19945 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_6 Audio Mixer", SND_SOC_NOPM, 0, 0,
19946 rx_cdc_dma_rx_6_mixer_controls,
19947 ARRAY_SIZE(rx_cdc_dma_rx_6_mixer_controls)),
19948 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_7 Audio Mixer", SND_SOC_NOPM, 0, 0,
19949 rx_cdc_dma_rx_7_mixer_controls,
19950 ARRAY_SIZE(rx_cdc_dma_rx_7_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019951 SND_SOC_DAPM_MIXER("MultiMedia1 Mixer", SND_SOC_NOPM, 0, 0,
19952 mmul1_mixer_controls, ARRAY_SIZE(mmul1_mixer_controls)),
19953 SND_SOC_DAPM_MIXER("MultiMedia2 Mixer", SND_SOC_NOPM, 0, 0,
19954 mmul2_mixer_controls, ARRAY_SIZE(mmul2_mixer_controls)),
19955 SND_SOC_DAPM_MIXER("MultiMedia3 Mixer", SND_SOC_NOPM, 0, 0,
19956 mmul3_mixer_controls, ARRAY_SIZE(mmul3_mixer_controls)),
19957 SND_SOC_DAPM_MIXER("MultiMedia4 Mixer", SND_SOC_NOPM, 0, 0,
19958 mmul4_mixer_controls, ARRAY_SIZE(mmul4_mixer_controls)),
19959 SND_SOC_DAPM_MIXER("MultiMedia5 Mixer", SND_SOC_NOPM, 0, 0,
19960 mmul5_mixer_controls, ARRAY_SIZE(mmul5_mixer_controls)),
19961 SND_SOC_DAPM_MIXER("MultiMedia6 Mixer", SND_SOC_NOPM, 0, 0,
19962 mmul6_mixer_controls, ARRAY_SIZE(mmul6_mixer_controls)),
19963 SND_SOC_DAPM_MIXER("MultiMedia8 Mixer", SND_SOC_NOPM, 0, 0,
19964 mmul8_mixer_controls, ARRAY_SIZE(mmul8_mixer_controls)),
19965 SND_SOC_DAPM_MIXER("MultiMedia9 Mixer", SND_SOC_NOPM, 0, 0,
19966 mmul9_mixer_controls, ARRAY_SIZE(mmul9_mixer_controls)),
Laxminath Kasam38070be2017-08-17 18:21:59 +053019967 SND_SOC_DAPM_MIXER("MultiMedia10 Mixer", SND_SOC_NOPM, 0, 0,
19968 mmul10_mixer_controls, ARRAY_SIZE(mmul10_mixer_controls)),
Asish Bhattacharya34504582017-08-08 12:55:01 +053019969 SND_SOC_DAPM_MIXER("MultiMedia16 Mixer", SND_SOC_NOPM, 0, 0,
19970 mmul16_mixer_controls, ARRAY_SIZE(mmul16_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019971 SND_SOC_DAPM_MIXER("MultiMedia17 Mixer", SND_SOC_NOPM, 0, 0,
19972 mmul17_mixer_controls, ARRAY_SIZE(mmul17_mixer_controls)),
19973 SND_SOC_DAPM_MIXER("MultiMedia18 Mixer", SND_SOC_NOPM, 0, 0,
19974 mmul18_mixer_controls, ARRAY_SIZE(mmul18_mixer_controls)),
19975 SND_SOC_DAPM_MIXER("MultiMedia19 Mixer", SND_SOC_NOPM, 0, 0,
19976 mmul19_mixer_controls, ARRAY_SIZE(mmul19_mixer_controls)),
19977 SND_SOC_DAPM_MIXER("MultiMedia20 Mixer", SND_SOC_NOPM, 0, 0,
19978 mmul20_mixer_controls, ARRAY_SIZE(mmul20_mixer_controls)),
Derek Chen07c6d1c2018-07-05 10:39:25 -070019979 SND_SOC_DAPM_MIXER("MultiMedia21 Mixer", SND_SOC_NOPM, 0, 0,
19980 mmul21_mixer_controls, ARRAY_SIZE(mmul21_mixer_controls)),
Surendar Karkac1cde372018-08-14 18:56:24 +053019981 SND_SOC_DAPM_MIXER("MultiMedia27 Mixer", SND_SOC_NOPM, 0, 0,
19982 mmul27_mixer_controls, ARRAY_SIZE(mmul27_mixer_controls)),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019983 SND_SOC_DAPM_MIXER("MultiMedia28 Mixer", SND_SOC_NOPM, 0, 0,
19984 mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
19985 SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
19986 mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019987 SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19988 auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
19989 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19990 sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
19991 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19992 tert_auxpcm_rx_mixer_controls,
19993 ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
19994 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19995 quat_auxpcm_rx_mixer_controls,
19996 ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019997 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19998 quin_auxpcm_rx_mixer_controls,
19999 ARRAY_SIZE(quin_auxpcm_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020000 /* incall */
20001 SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
20002 incall_music_delivery_mixer_controls,
20003 ARRAY_SIZE(incall_music_delivery_mixer_controls)),
20004 SND_SOC_DAPM_MIXER("Incall_Music_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
20005 incall_music2_delivery_mixer_controls,
20006 ARRAY_SIZE(incall_music2_delivery_mixer_controls)),
20007 SND_SOC_DAPM_MIXER("SLIMBUS_4_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
20008 slimbus_4_rx_mixer_controls,
20009 ARRAY_SIZE(slimbus_4_rx_mixer_controls)),
20010 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
20011 slimbus_6_rx_mixer_controls,
20012 ARRAY_SIZE(slimbus_6_rx_mixer_controls)),
20013 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
20014 usb_audio_rx_mixer_controls,
20015 ARRAY_SIZE(usb_audio_rx_mixer_controls)),
20016 /* Voice Mixer */
20017 SND_SOC_DAPM_MIXER("PRI_RX_Voice Mixer",
20018 SND_SOC_NOPM, 0, 0, pri_rx_voice_mixer_controls,
20019 ARRAY_SIZE(pri_rx_voice_mixer_controls)),
20020 SND_SOC_DAPM_MIXER("SEC_RX_Voice Mixer",
20021 SND_SOC_NOPM, 0, 0,
20022 sec_i2s_rx_voice_mixer_controls,
20023 ARRAY_SIZE(sec_i2s_rx_voice_mixer_controls)),
20024 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_Voice Mixer",
20025 SND_SOC_NOPM, 0, 0,
20026 sec_mi2s_rx_voice_mixer_controls,
20027 ARRAY_SIZE(sec_mi2s_rx_voice_mixer_controls)),
20028 SND_SOC_DAPM_MIXER("SLIM_0_RX_Voice Mixer",
20029 SND_SOC_NOPM, 0, 0,
20030 slimbus_rx_voice_mixer_controls,
20031 ARRAY_SIZE(slimbus_rx_voice_mixer_controls)),
20032 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX_Voice Mixer",
20033 SND_SOC_NOPM, 0, 0,
20034 bt_sco_rx_voice_mixer_controls,
20035 ARRAY_SIZE(bt_sco_rx_voice_mixer_controls)),
20036 SND_SOC_DAPM_MIXER("AFE_PCM_RX_Voice Mixer",
20037 SND_SOC_NOPM, 0, 0,
20038 afe_pcm_rx_voice_mixer_controls,
20039 ARRAY_SIZE(afe_pcm_rx_voice_mixer_controls)),
20040 SND_SOC_DAPM_MIXER("AUX_PCM_RX_Voice Mixer",
20041 SND_SOC_NOPM, 0, 0,
20042 aux_pcm_rx_voice_mixer_controls,
20043 ARRAY_SIZE(aux_pcm_rx_voice_mixer_controls)),
20044 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX_Voice Mixer",
20045 SND_SOC_NOPM, 0, 0,
20046 sec_aux_pcm_rx_voice_mixer_controls,
20047 ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
20048 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
20049 SND_SOC_NOPM, 0, 0,
20050 tert_aux_pcm_rx_voice_mixer_controls,
20051 ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
20052 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
20053 SND_SOC_NOPM, 0, 0,
20054 quat_aux_pcm_rx_voice_mixer_controls,
20055 ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053020056 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX_Voice Mixer",
20057 SND_SOC_NOPM, 0, 0,
20058 quin_aux_pcm_rx_voice_mixer_controls,
20059 ARRAY_SIZE(quin_aux_pcm_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020060 SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
20061 SND_SOC_NOPM, 0, 0,
20062 hdmi_rx_voice_mixer_controls,
20063 ARRAY_SIZE(hdmi_rx_voice_mixer_controls)),
20064 SND_SOC_DAPM_MIXER("MI2S_RX_Voice Mixer",
20065 SND_SOC_NOPM, 0, 0,
20066 mi2s_rx_voice_mixer_controls,
20067 ARRAY_SIZE(mi2s_rx_voice_mixer_controls)),
20068 SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer",
20069 SND_SOC_NOPM, 0, 0,
20070 pri_mi2s_rx_voice_mixer_controls,
20071 ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)),
20072 SND_SOC_DAPM_MIXER("INT0_MI2S_RX_Voice Mixer",
20073 SND_SOC_NOPM, 0, 0,
20074 int0_mi2s_rx_voice_mixer_controls,
20075 ARRAY_SIZE(int0_mi2s_rx_voice_mixer_controls)),
20076 SND_SOC_DAPM_MIXER("INT4_MI2S_RX_Voice Mixer",
20077 SND_SOC_NOPM, 0, 0,
20078 int4_mi2s_rx_voice_mixer_controls,
20079 ARRAY_SIZE(int4_mi2s_rx_voice_mixer_controls)),
20080 SND_SOC_DAPM_MIXER("TERT_MI2S_RX_Voice Mixer",
20081 SND_SOC_NOPM, 0, 0,
20082 tert_mi2s_rx_voice_mixer_controls,
20083 ARRAY_SIZE(tert_mi2s_rx_voice_mixer_controls)),
20084 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX_Voice Mixer",
20085 SND_SOC_NOPM, 0, 0,
20086 quat_mi2s_rx_voice_mixer_controls,
20087 ARRAY_SIZE(quat_mi2s_rx_voice_mixer_controls)),
20088 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX_Voice Mixer",
20089 SND_SOC_NOPM, 0, 0,
20090 quin_mi2s_rx_voice_mixer_controls,
20091 ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)),
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053020092 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0_Voice Mixer",
20093 SND_SOC_NOPM, 0, 0,
20094 pri_tdm_rx_0_voice_mixer_controls,
20095 ARRAY_SIZE(pri_tdm_rx_0_voice_mixer_controls)),
20096 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1_Voice Mixer",
20097 SND_SOC_NOPM, 0, 0,
20098 pri_tdm_rx_1_voice_mixer_controls,
20099 ARRAY_SIZE(pri_tdm_rx_1_voice_mixer_controls)),
20100 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2_Voice Mixer",
20101 SND_SOC_NOPM, 0, 0,
20102 pri_tdm_rx_2_voice_mixer_controls,
20103 ARRAY_SIZE(pri_tdm_rx_2_voice_mixer_controls)),
20104 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3_Voice Mixer",
20105 SND_SOC_NOPM, 0, 0,
20106 pri_tdm_rx_3_voice_mixer_controls,
20107 ARRAY_SIZE(pri_tdm_rx_3_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020108 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer",
20109 SND_SOC_NOPM, 0, 0,
20110 quat_tdm_rx_2_voice_mixer_controls,
20111 ARRAY_SIZE(quat_tdm_rx_2_voice_mixer_controls)),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053020112 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0_Voice Mixer",
20113 SND_SOC_NOPM, 0, 0,
20114 wsa_cdc_dma_rx_0_voice_mixer_controls,
20115 ARRAY_SIZE(wsa_cdc_dma_rx_0_voice_mixer_controls)),
20116 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0_Voice Mixer",
20117 SND_SOC_NOPM, 0, 0,
20118 rx_cdc_dma_rx_0_voice_mixer_controls,
20119 ARRAY_SIZE(rx_cdc_dma_rx_0_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020120 SND_SOC_DAPM_MIXER("Voip_Tx Mixer",
20121 SND_SOC_NOPM, 0, 0, tx_voip_mixer_controls,
20122 ARRAY_SIZE(tx_voip_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020123 SND_SOC_DAPM_MIXER("VoiceMMode1_Tx Mixer",
20124 SND_SOC_NOPM, 0, 0, tx_voicemmode1_mixer_controls,
20125 ARRAY_SIZE(tx_voicemmode1_mixer_controls)),
20126 SND_SOC_DAPM_MIXER("VoiceMMode2_Tx Mixer",
20127 SND_SOC_NOPM, 0, 0, tx_voicemmode2_mixer_controls,
20128 ARRAY_SIZE(tx_voicemmode2_mixer_controls)),
20129 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
20130 int_bt_sco_rx_mixer_controls, ARRAY_SIZE(int_bt_sco_rx_mixer_controls)),
20131 SND_SOC_DAPM_MIXER("INTERNAL_A2DP_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
20132 int_bt_a2dp_rx_mixer_controls,
20133 ARRAY_SIZE(int_bt_a2dp_rx_mixer_controls)),
20134 SND_SOC_DAPM_MIXER("INTERNAL_FM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
20135 int_fm_rx_mixer_controls, ARRAY_SIZE(int_fm_rx_mixer_controls)),
20136 SND_SOC_DAPM_MIXER("AFE_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
20137 afe_pcm_rx_mixer_controls, ARRAY_SIZE(afe_pcm_rx_mixer_controls)),
20138 SND_SOC_DAPM_MIXER("Voice Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
20139 tx_voice_stub_mixer_controls, ARRAY_SIZE(tx_voice_stub_mixer_controls)),
20140 SND_SOC_DAPM_MIXER("Voice2 Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
20141 tx_voice2_stub_mixer_controls,
20142 ARRAY_SIZE(tx_voice2_stub_mixer_controls)),
20143 SND_SOC_DAPM_MIXER("VoLTE Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
20144 tx_volte_stub_mixer_controls, ARRAY_SIZE(tx_volte_stub_mixer_controls)),
20145 SND_SOC_DAPM_MIXER("STUB_RX Mixer", SND_SOC_NOPM, 0, 0,
20146 stub_rx_mixer_controls, ARRAY_SIZE(stub_rx_mixer_controls)),
20147 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Mixer", SND_SOC_NOPM, 0, 0,
20148 slimbus_1_rx_mixer_controls, ARRAY_SIZE(slimbus_1_rx_mixer_controls)),
20149 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
20150 slimbus_3_rx_mixer_controls, ARRAY_SIZE(slimbus_3_rx_mixer_controls)),
20151 SND_SOC_DAPM_MIXER("SLIM_6_RX_Voice Mixer",
20152 SND_SOC_NOPM, 0, 0,
20153 slimbus_6_rx_voice_mixer_controls,
20154 ARRAY_SIZE(slimbus_6_rx_voice_mixer_controls)),
20155 SND_SOC_DAPM_MIXER("SLIM_7_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
20156 slimbus_7_rx_voice_mixer_controls,
20157 ARRAY_SIZE(slimbus_7_rx_voice_mixer_controls)),
20158 SND_SOC_DAPM_MIXER("SLIM_8_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
20159 slimbus_8_rx_voice_mixer_controls,
20160 ARRAY_SIZE(slimbus_8_rx_voice_mixer_controls)),
20161 /* port mixer */
20162 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Port Mixer",
20163 SND_SOC_NOPM, 0, 0, sbus_0_rx_port_mixer_controls,
20164 ARRAY_SIZE(sbus_0_rx_port_mixer_controls)),
20165 SND_SOC_DAPM_MIXER("AUX_PCM_RX Port Mixer",
20166 SND_SOC_NOPM, 0, 0, aux_pcm_rx_port_mixer_controls,
20167 ARRAY_SIZE(aux_pcm_rx_port_mixer_controls)),
20168 SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
20169 SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
20170 ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
20171 SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
20172 SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
20173 ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
20174 SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
20175 SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
20176 ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053020177 SND_SOC_DAPM_MIXER("QUIN_AUXPCM_RX Port Mixer",
20178 SND_SOC_NOPM, 0, 0, quin_auxpcm_rx_port_mixer_controls,
20179 ARRAY_SIZE(quin_auxpcm_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020180 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
20181 sbus_1_rx_port_mixer_controls,
20182 ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
20183 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Port Mixer", SND_SOC_NOPM, 0, 0,
20184 bt_sco_rx_port_mixer_controls,
20185 ARRAY_SIZE(bt_sco_rx_port_mixer_controls)),
20186 SND_SOC_DAPM_MIXER("AFE_PCM_RX Port Mixer",
20187 SND_SOC_NOPM, 0, 0, afe_pcm_rx_port_mixer_controls,
20188 ARRAY_SIZE(afe_pcm_rx_port_mixer_controls)),
20189 SND_SOC_DAPM_MIXER("HDMI_RX Port Mixer",
20190 SND_SOC_NOPM, 0, 0, hdmi_rx_port_mixer_controls,
20191 ARRAY_SIZE(hdmi_rx_port_mixer_controls)),
20192 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
20193 SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
20194 ARRAY_SIZE(display_port_rx_port_mixer_controls)),
Karthikeyan Manifbea92f2018-06-14 16:38:15 -070020195 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1 Port Mixer",
Karthikeyan Mani57550082018-05-03 18:43:58 -070020196 SND_SOC_NOPM, 0, 0, display_port_rx1_port_mixer_controls,
20197 ARRAY_SIZE(display_port_rx1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020198 SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
20199 SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
20200 ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
20201 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX Port Mixer",
20202 SND_SOC_NOPM, 0, 0, sbus_3_rx_port_mixer_controls,
20203 ARRAY_SIZE(sbus_3_rx_port_mixer_controls)),
20204 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Port Mixer",
20205 SND_SOC_NOPM, 0, 0, sbus_6_rx_port_mixer_controls,
20206 ARRAY_SIZE(sbus_6_rx_port_mixer_controls)),
20207 SND_SOC_DAPM_MIXER("MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
20208 mi2s_rx_port_mixer_controls, ARRAY_SIZE(mi2s_rx_port_mixer_controls)),
20209 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
20210 primary_mi2s_rx_port_mixer_controls,
20211 ARRAY_SIZE(primary_mi2s_rx_port_mixer_controls)),
20212 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
20213 sec_mi2s_rx_port_mixer_controls,
20214 ARRAY_SIZE(sec_mi2s_rx_port_mixer_controls)),
20215 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
20216 tert_mi2s_rx_port_mixer_controls,
20217 ARRAY_SIZE(tert_mi2s_rx_port_mixer_controls)),
20218 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
20219 quat_mi2s_rx_port_mixer_controls,
20220 ARRAY_SIZE(quat_mi2s_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053020221 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
20222 quin_mi2s_rx_port_mixer_controls,
20223 ARRAY_SIZE(quin_mi2s_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020224 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
20225 pri_tdm_rx_0_port_mixer_controls,
20226 ARRAY_SIZE(pri_tdm_rx_0_port_mixer_controls)),
20227 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
20228 pri_tdm_rx_1_port_mixer_controls,
20229 ARRAY_SIZE(pri_tdm_rx_1_port_mixer_controls)),
20230 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
20231 pri_tdm_rx_2_port_mixer_controls,
20232 ARRAY_SIZE(pri_tdm_rx_2_port_mixer_controls)),
20233 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
20234 pri_tdm_rx_3_port_mixer_controls,
20235 ARRAY_SIZE(pri_tdm_rx_3_port_mixer_controls)),
20236 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
20237 sec_tdm_rx_0_port_mixer_controls,
20238 ARRAY_SIZE(sec_tdm_rx_0_port_mixer_controls)),
20239 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
20240 sec_tdm_rx_1_port_mixer_controls,
20241 ARRAY_SIZE(sec_tdm_rx_1_port_mixer_controls)),
20242 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
20243 sec_tdm_rx_2_port_mixer_controls,
20244 ARRAY_SIZE(sec_tdm_rx_2_port_mixer_controls)),
20245 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
20246 sec_tdm_rx_3_port_mixer_controls,
20247 ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
Derek Chenfdcc0982018-10-02 15:14:03 -070020248 SND_SOC_DAPM_MIXER("SEC_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
20249 sec_tdm_rx_7_port_mixer_controls,
20250 ARRAY_SIZE(sec_tdm_rx_7_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020251 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
20252 tert_tdm_rx_0_port_mixer_controls,
20253 ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
20254 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
20255 tert_tdm_rx_1_port_mixer_controls,
20256 ARRAY_SIZE(tert_tdm_rx_1_port_mixer_controls)),
20257 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
20258 tert_tdm_rx_2_port_mixer_controls,
20259 ARRAY_SIZE(tert_tdm_rx_2_port_mixer_controls)),
20260 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
20261 tert_tdm_rx_3_port_mixer_controls,
20262 ARRAY_SIZE(tert_tdm_rx_3_port_mixer_controls)),
20263 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
20264 quat_tdm_rx_0_port_mixer_controls,
20265 ARRAY_SIZE(quat_tdm_rx_0_port_mixer_controls)),
20266 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
20267 quat_tdm_rx_1_port_mixer_controls,
20268 ARRAY_SIZE(quat_tdm_rx_1_port_mixer_controls)),
20269 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
20270 quat_tdm_rx_2_port_mixer_controls,
20271 ARRAY_SIZE(quat_tdm_rx_2_port_mixer_controls)),
20272 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
20273 quat_tdm_rx_3_port_mixer_controls,
20274 ARRAY_SIZE(quat_tdm_rx_3_port_mixer_controls)),
Derek Chenb9048cb2019-03-07 14:54:13 -050020275 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
20276 quat_tdm_rx_7_port_mixer_controls,
20277 ARRAY_SIZE(quat_tdm_rx_7_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053020278 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
20279 quin_tdm_rx_0_port_mixer_controls,
20280 ARRAY_SIZE(quin_tdm_rx_0_port_mixer_controls)),
20281 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
20282 quin_tdm_rx_1_port_mixer_controls,
20283 ARRAY_SIZE(quin_tdm_rx_1_port_mixer_controls)),
20284 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
20285 quin_tdm_rx_2_port_mixer_controls,
20286 ARRAY_SIZE(quin_tdm_rx_2_port_mixer_controls)),
20287 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
20288 quin_tdm_rx_3_port_mixer_controls,
20289 ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020290 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
20291 int0_mi2s_rx_port_mixer_controls,
20292 ARRAY_SIZE(int0_mi2s_rx_port_mixer_controls)),
20293 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
20294 int4_mi2s_rx_port_mixer_controls,
20295 ARRAY_SIZE(int4_mi2s_rx_port_mixer_controls)),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053020296 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
20297 wsa_cdc_dma_rx_0_port_mixer_controls,
20298 ARRAY_SIZE(wsa_cdc_dma_rx_0_port_mixer_controls)),
20299 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
20300 rx_cdc_dma_rx_0_port_mixer_controls,
20301 ARRAY_SIZE(rx_cdc_dma_rx_0_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020302 SND_SOC_DAPM_MIXER("QCHAT_Tx Mixer",
20303 SND_SOC_NOPM, 0, 0, tx_qchat_mixer_controls,
20304 ARRAY_SIZE(tx_qchat_mixer_controls)),
20305 SND_SOC_DAPM_MIXER("USB_AUDIO_RX_Voice Mixer",
20306 SND_SOC_NOPM, 0, 0, usb_audio_rx_voice_mixer_controls,
20307 ARRAY_SIZE(usb_audio_rx_voice_mixer_controls)),
20308 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
20309 SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
20310 ARRAY_SIZE(usb_rx_port_mixer_controls)),
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080020311 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
20312 SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
20313 ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070020314 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1_Voice Mixer",
20315 SND_SOC_NOPM, 0, 0, display_port_rx1_voice_mixer_controls,
20316 ARRAY_SIZE(display_port_rx1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020317 /* lsm mixer definitions */
20318 SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
20319 lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
20320 SND_SOC_DAPM_MIXER("LSM2 Mixer", SND_SOC_NOPM, 0, 0,
20321 lsm2_mixer_controls, ARRAY_SIZE(lsm2_mixer_controls)),
20322 SND_SOC_DAPM_MIXER("LSM3 Mixer", SND_SOC_NOPM, 0, 0,
20323 lsm3_mixer_controls, ARRAY_SIZE(lsm3_mixer_controls)),
20324 SND_SOC_DAPM_MIXER("LSM4 Mixer", SND_SOC_NOPM, 0, 0,
20325 lsm4_mixer_controls, ARRAY_SIZE(lsm4_mixer_controls)),
20326 SND_SOC_DAPM_MIXER("LSM5 Mixer", SND_SOC_NOPM, 0, 0,
20327 lsm5_mixer_controls, ARRAY_SIZE(lsm5_mixer_controls)),
20328 SND_SOC_DAPM_MIXER("LSM6 Mixer", SND_SOC_NOPM, 0, 0,
20329 lsm6_mixer_controls, ARRAY_SIZE(lsm6_mixer_controls)),
20330 SND_SOC_DAPM_MIXER("LSM7 Mixer", SND_SOC_NOPM, 0, 0,
20331 lsm7_mixer_controls, ARRAY_SIZE(lsm7_mixer_controls)),
20332 SND_SOC_DAPM_MIXER("LSM8 Mixer", SND_SOC_NOPM, 0, 0,
20333 lsm8_mixer_controls, ARRAY_SIZE(lsm8_mixer_controls)),
20334 /* Virtual Pins to force backends ON atm */
20335 SND_SOC_DAPM_OUTPUT("BE_OUT"),
20336 SND_SOC_DAPM_INPUT("BE_IN"),
20337
20338 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
20339 &slim0_rx_vi_fb_lch_mux),
20340 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
20341 &slim0_rx_vi_fb_rch_mux),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020342 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
20343 &wsa_rx_0_vi_fb_lch_mux),
20344 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
20345 &wsa_rx_0_vi_fb_rch_mux),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020346 SND_SOC_DAPM_MUX("PRI_MI2S_RX_VI_FB_MUX", SND_SOC_NOPM, 0, 0,
20347 &mi2s_rx_vi_fb_mux),
20348 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_MONO_CH_MUX", SND_SOC_NOPM, 0, 0,
20349 &int4_mi2s_rx_vi_fb_mono_ch_mux),
20350 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", SND_SOC_NOPM, 0, 0,
20351 &int4_mi2s_rx_vi_fb_stereo_ch_mux),
20352
20353 SND_SOC_DAPM_MUX("VOC_EXT_EC MUX", SND_SOC_NOPM, 0, 0,
20354 &voc_ext_ec_mux),
20355 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL1 MUX", SND_SOC_NOPM, 0, 0,
20356 &ext_ec_ref_mux_ul1),
20357 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL2 MUX", SND_SOC_NOPM, 0, 0,
20358 &ext_ec_ref_mux_ul2),
20359 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL3 MUX", SND_SOC_NOPM, 0, 0,
20360 &ext_ec_ref_mux_ul3),
20361 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL4 MUX", SND_SOC_NOPM, 0, 0,
20362 &ext_ec_ref_mux_ul4),
20363 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL5 MUX", SND_SOC_NOPM, 0, 0,
20364 &ext_ec_ref_mux_ul5),
20365 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL6 MUX", SND_SOC_NOPM, 0, 0,
20366 &ext_ec_ref_mux_ul6),
20367 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL8 MUX", SND_SOC_NOPM, 0, 0,
20368 &ext_ec_ref_mux_ul8),
20369 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL9 MUX", SND_SOC_NOPM, 0, 0,
20370 &ext_ec_ref_mux_ul9),
Laxminath Kasam38070be2017-08-17 18:21:59 +053020371 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL10 MUX", SND_SOC_NOPM, 0, 0,
20372 &ext_ec_ref_mux_ul10),
Asish Bhattacharya34504582017-08-08 12:55:01 +053020373 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL16 MUX", SND_SOC_NOPM, 0, 0,
20374 &ext_ec_ref_mux_ul16),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020375 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL17 MUX", SND_SOC_NOPM, 0, 0,
20376 &ext_ec_ref_mux_ul17),
20377 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL18 MUX", SND_SOC_NOPM, 0, 0,
20378 &ext_ec_ref_mux_ul18),
20379 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL19 MUX", SND_SOC_NOPM, 0, 0,
20380 &ext_ec_ref_mux_ul19),
Meng Wang5c4bab72018-04-25 10:40:01 +080020381 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL28 MUX", SND_SOC_NOPM, 0, 0,
20382 &ext_ec_ref_mux_ul28),
20383 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL29 MUX", SND_SOC_NOPM, 0, 0,
20384 &ext_ec_ref_mux_ul29),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020385};
20386
20387static const struct snd_soc_dapm_route intercon[] = {
20388 {"PRI_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20389 {"PRI_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20390 {"PRI_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20391 {"PRI_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20392 {"PRI_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20393 {"PRI_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20394 {"PRI_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20395 {"PRI_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20396 {"PRI_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20397 {"PRI_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20398 {"PRI_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20399 {"PRI_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20400 {"PRI_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20401 {"PRI_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20402 {"PRI_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20403 {"PRI_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020404 {"PRI_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020405 {"PRI_I2S_RX", NULL, "PRI_RX Audio Mixer"},
20406
20407 {"SEC_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20408 {"SEC_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20409 {"SEC_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20410 {"SEC_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20411 {"SEC_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20412 {"SEC_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20413 {"SEC_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20414 {"SEC_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20415 {"SEC_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20416 {"SEC_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20417 {"SEC_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20418 {"SEC_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20419 {"SEC_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20420 {"SEC_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20421 {"SEC_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20422 {"SEC_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020423 {"SEC_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020424 {"SEC_I2S_RX", NULL, "SEC_RX Audio Mixer"},
20425
20426 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20427 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20428 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20429 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20430 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20431 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20432 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20433 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20434 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20435 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20436 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20437 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20438 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20439 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20440 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20441 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020442 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020443 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Audio Mixer"},
20444
20445 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20446 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20447 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20448 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20449 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20450 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20451 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20452 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20453 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20454 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20455 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20456 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20457 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20458 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20459 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20460 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020461 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020462 {"SLIMBUS_2_RX", NULL, "SLIMBUS_2_RX Audio Mixer"},
20463
20464 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20465 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20466 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20467 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20468 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20469 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20470 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20471 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20472 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20473 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20474 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20475 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20476 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20477 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20478 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20479 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020480 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020481 {"SLIMBUS_5_RX", NULL, "SLIMBUS_5_RX Audio Mixer"},
20482
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020483 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20484 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20485 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20486 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20487 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20488 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20489 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20490 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20491 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20492 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20493 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20494 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20495 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20496 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20497 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20498 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020499 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020500 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Audio Mixer"},
20501
20502 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20503 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20504 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20505 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20506 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20507 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20508 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20509 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20510 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20511 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20512 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20513 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20514 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20515 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20516 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20517 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020518 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020519 {"WSA_CDC_DMA_RX_1", NULL, "WSA_CDC_DMA_RX_1 Audio Mixer"},
20520
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020521 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20522 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20523 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20524 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20525 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20526 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20527 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20528 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20529 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20530 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20531 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20532 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20533 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20534 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20535 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20536 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020537 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020538 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Audio Mixer"},
20539
20540 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20541 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20542 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20543 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20544 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20545 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20546 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20547 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20548 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20549 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20550 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20551 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20552 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20553 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20554 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20555 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020556 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020557 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Audio Mixer"},
20558
20559 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20560 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20561 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20562 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20563 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20564 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20565 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20566 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20567 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20568 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20569 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20570 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20571 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20572 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20573 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20574 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020575 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020576 {"RX_CDC_DMA_RX_2", NULL, "RX_CDC_DMA_RX_2 Audio Mixer"},
20577
20578 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20579 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20580 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20581 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20582 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20583 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20584 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20585 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20586 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20587 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20588 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20589 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20590 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20591 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20592 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20593 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020594 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020595 {"RX_CDC_DMA_RX_3", NULL, "RX_CDC_DMA_RX_3 Audio Mixer"},
20596
20597 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
20598 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
20599 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
20600 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
20601 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
20602 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
20603 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
20604 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
20605 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
20606 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
20607 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
20608 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
20609 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
20610 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
20611 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
20612 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020613 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020614 {"RX_CDC_DMA_RX_4", NULL, "RX_CDC_DMA_RX_4 Audio Mixer"},
20615
20616 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia1", "MM_DL1"},
20617 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia2", "MM_DL2"},
20618 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia3", "MM_DL3"},
20619 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia4", "MM_DL4"},
20620 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia5", "MM_DL5"},
20621 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia6", "MM_DL6"},
20622 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia7", "MM_DL7"},
20623 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia8", "MM_DL8"},
20624 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia9", "MM_DL9"},
20625 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia10", "MM_DL10"},
20626 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia11", "MM_DL11"},
20627 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia12", "MM_DL12"},
20628 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia13", "MM_DL13"},
20629 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia14", "MM_DL14"},
20630 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia15", "MM_DL15"},
20631 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020632 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020633 {"RX_CDC_DMA_RX_5", NULL, "RX_CDC_DMA_RX_5 Audio Mixer"},
20634
20635 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia1", "MM_DL1"},
20636 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia2", "MM_DL2"},
20637 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia3", "MM_DL3"},
20638 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia4", "MM_DL4"},
20639 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia5", "MM_DL5"},
20640 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia6", "MM_DL6"},
20641 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia7", "MM_DL7"},
20642 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia8", "MM_DL8"},
20643 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia9", "MM_DL9"},
20644 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia10", "MM_DL10"},
20645 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia11", "MM_DL11"},
20646 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia12", "MM_DL12"},
20647 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia13", "MM_DL13"},
20648 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia14", "MM_DL14"},
20649 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia15", "MM_DL15"},
20650 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020651 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020652 {"RX_CDC_DMA_RX_6", NULL, "RX_CDC_DMA_RX_6 Audio Mixer"},
20653
20654 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia1", "MM_DL1"},
20655 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia2", "MM_DL2"},
20656 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia3", "MM_DL3"},
20657 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia4", "MM_DL4"},
20658 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia5", "MM_DL5"},
20659 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia6", "MM_DL6"},
20660 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia7", "MM_DL7"},
20661 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia8", "MM_DL8"},
20662 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia9", "MM_DL9"},
20663 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia10", "MM_DL10"},
20664 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia11", "MM_DL11"},
20665 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia12", "MM_DL12"},
20666 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia13", "MM_DL13"},
20667 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia14", "MM_DL14"},
20668 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia15", "MM_DL15"},
20669 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020670 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020671 {"RX_CDC_DMA_RX_7", NULL, "RX_CDC_DMA_RX_7 Audio Mixer"},
20672
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020673 {"HDMI Mixer", "MultiMedia1", "MM_DL1"},
20674 {"HDMI Mixer", "MultiMedia2", "MM_DL2"},
20675 {"HDMI Mixer", "MultiMedia3", "MM_DL3"},
20676 {"HDMI Mixer", "MultiMedia4", "MM_DL4"},
20677 {"HDMI Mixer", "MultiMedia5", "MM_DL5"},
20678 {"HDMI Mixer", "MultiMedia6", "MM_DL6"},
20679 {"HDMI Mixer", "MultiMedia7", "MM_DL7"},
20680 {"HDMI Mixer", "MultiMedia8", "MM_DL8"},
20681 {"HDMI Mixer", "MultiMedia9", "MM_DL9"},
20682 {"HDMI Mixer", "MultiMedia10", "MM_DL10"},
20683 {"HDMI Mixer", "MultiMedia11", "MM_DL11"},
20684 {"HDMI Mixer", "MultiMedia12", "MM_DL12"},
20685 {"HDMI Mixer", "MultiMedia13", "MM_DL13"},
20686 {"HDMI Mixer", "MultiMedia14", "MM_DL14"},
20687 {"HDMI Mixer", "MultiMedia15", "MM_DL15"},
20688 {"HDMI Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020689 {"HDMI Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020690 {"HDMI", NULL, "HDMI Mixer"},
20691
20692 {"DISPLAY_PORT Mixer", "MultiMedia1", "MM_DL1"},
20693 {"DISPLAY_PORT Mixer", "MultiMedia2", "MM_DL2"},
20694 {"DISPLAY_PORT Mixer", "MultiMedia3", "MM_DL3"},
20695 {"DISPLAY_PORT Mixer", "MultiMedia4", "MM_DL4"},
20696 {"DISPLAY_PORT Mixer", "MultiMedia5", "MM_DL5"},
20697 {"DISPLAY_PORT Mixer", "MultiMedia6", "MM_DL6"},
20698 {"DISPLAY_PORT Mixer", "MultiMedia7", "MM_DL7"},
20699 {"DISPLAY_PORT Mixer", "MultiMedia8", "MM_DL8"},
20700 {"DISPLAY_PORT Mixer", "MultiMedia9", "MM_DL9"},
20701 {"DISPLAY_PORT Mixer", "MultiMedia10", "MM_DL10"},
20702 {"DISPLAY_PORT Mixer", "MultiMedia11", "MM_DL11"},
20703 {"DISPLAY_PORT Mixer", "MultiMedia12", "MM_DL12"},
20704 {"DISPLAY_PORT Mixer", "MultiMedia13", "MM_DL13"},
20705 {"DISPLAY_PORT Mixer", "MultiMedia14", "MM_DL14"},
20706 {"DISPLAY_PORT Mixer", "MultiMedia15", "MM_DL15"},
20707 {"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020708 {"DISPLAY_PORT Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020709 {"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
20710
Karthikeyan Mani57550082018-05-03 18:43:58 -070020711 {"DISPLAY_PORT1 Mixer", "MultiMedia1", "MM_DL1"},
20712 {"DISPLAY_PORT1 Mixer", "MultiMedia2", "MM_DL2"},
20713 {"DISPLAY_PORT1 Mixer", "MultiMedia3", "MM_DL3"},
20714 {"DISPLAY_PORT1 Mixer", "MultiMedia4", "MM_DL4"},
20715 {"DISPLAY_PORT1 Mixer", "MultiMedia5", "MM_DL5"},
20716 {"DISPLAY_PORT1 Mixer", "MultiMedia6", "MM_DL6"},
20717 {"DISPLAY_PORT1 Mixer", "MultiMedia7", "MM_DL7"},
20718 {"DISPLAY_PORT1 Mixer", "MultiMedia8", "MM_DL8"},
20719 {"DISPLAY_PORT1 Mixer", "MultiMedia9", "MM_DL9"},
20720 {"DISPLAY_PORT1 Mixer", "MultiMedia10", "MM_DL10"},
20721 {"DISPLAY_PORT1 Mixer", "MultiMedia11", "MM_DL11"},
20722 {"DISPLAY_PORT1 Mixer", "MultiMedia12", "MM_DL12"},
20723 {"DISPLAY_PORT1 Mixer", "MultiMedia13", "MM_DL13"},
20724 {"DISPLAY_PORT1 Mixer", "MultiMedia14", "MM_DL14"},
20725 {"DISPLAY_PORT1 Mixer", "MultiMedia15", "MM_DL15"},
20726 {"DISPLAY_PORT1 Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020727 {"DISPLAY_PORT1 Mixer", "MultiMedia26", "MM_DL26"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070020728 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT1 Mixer"},
20729
Ralf Herzc8701f72018-06-20 11:37:35 +020020730 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20731 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20732 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20733 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20734 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20735 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20736 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20737 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20738 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20739 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20740 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20741 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20742 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20743 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20744 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20745 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020746 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020747 {"PRI_SPDIF_RX", NULL, "PRI_SPDIF_RX Audio Mixer"},
20748
20749 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20750 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20751 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20752 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20753 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20754 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20755 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20756 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20757 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20758 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20759 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20760 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20761 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20762 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20763 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20764 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020765 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020766 {"SEC_SPDIF_RX", NULL, "SEC_SPDIF_RX Audio Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020767
20768 /* incall */
20769 {"Incall_Music Audio Mixer", "MultiMedia1", "MM_DL1"},
20770 {"Incall_Music Audio Mixer", "MultiMedia2", "MM_DL2"},
20771 {"Incall_Music Audio Mixer", "MultiMedia5", "MM_DL5"},
20772 {"Incall_Music Audio Mixer", "MultiMedia9", "MM_DL9"},
20773 {"VOICE_PLAYBACK_TX", NULL, "Incall_Music Audio Mixer"},
20774 {"Incall_Music_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20775 {"Incall_Music_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20776 {"Incall_Music_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20777 {"Incall_Music_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20778 {"VOICE2_PLAYBACK_TX", NULL, "Incall_Music_2 Audio Mixer"},
20779 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20780 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20781 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20782 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20783 {"SLIMBUS_4_RX", NULL, "SLIMBUS_4_RX Audio Mixer"},
20784
20785 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20786 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20787 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20788 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20789 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20790 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20791 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20792 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20793 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20794 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20795 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20796 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20797 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20798 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20799 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20800 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020801 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020802 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Audio Mixer"},
20803
20804 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20805 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20806 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20807 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20808 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20809 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20810 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20811 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20812 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20813 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20814 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20815 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20816 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20817 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20818 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20819 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020820 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020821 {"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
20822
Surendar Karka3ef3d812018-09-28 18:52:35 +053020823 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20824 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20825 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20826 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20827 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20828 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20829 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20830 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20831 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20832 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20833 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20834 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20835 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20836 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20837 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20838 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20839 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
20840 {"SLIMBUS_9_RX", NULL, "SLIMBUS_9_RX Audio Mixer"},
20841
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020842 {"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20843 {"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20844 {"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20845 {"USB_AUDIO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20846 {"USB_AUDIO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20847 {"USB_AUDIO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20848 {"USB_AUDIO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20849 {"USB_AUDIO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20850 {"USB_AUDIO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20851 {"USB_AUDIO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20852 {"USB_AUDIO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20853 {"USB_AUDIO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20854 {"USB_AUDIO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20855 {"USB_AUDIO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20856 {"USB_AUDIO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20857 {"USB_AUDIO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020858 {"USB_AUDIO_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020859 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Audio Mixer"},
20860
20861 {"MultiMedia1 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
20862 {"MultiMedia4 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
20863 {"MultiMedia8 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
20864 {"MultiMedia1 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
20865 {"MultiMedia4 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
20866 {"MultiMedia8 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
20867 {"MultiMedia1 Mixer", "SLIM_4_TX", "SLIMBUS_4_TX"},
20868 {"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20869 {"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
20870 {"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020871 {"MultiMedia1 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020872 {"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20873 {"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020874 {"MultiMedia8 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020875 {"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020876 {"MultiMedia4 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020877 {"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020878 {"MultiMedia17 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020879 {"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020880 {"MultiMedia18 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020881 {"MultiMedia19 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020882 {"MultiMedia19 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020883 {"MultiMedia28 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020884 {"MultiMedia28 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020885 {"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020886 {"MultiMedia29 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020887 {"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020888 {"MultiMedia8 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020889 {"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20890 {"MultiMedia4 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20891 {"MultiMedia17 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20892 {"MultiMedia18 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20893 {"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020894 {"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20895 {"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020896 {"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020897 {"MultiMedia18 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010020898 {"MultiMedia19 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20899 {"MultiMedia28 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20900 {"MultiMedia29 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020901 {"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20902 {"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20903 {"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20904 {"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20905 {"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20906 {"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020907 {"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020908 {"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20909 {"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20910 {"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020911 {"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20912 {"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020913 {"MultiMedia3 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020914 {"MultiMedia5 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020915 {"MultiMedia5 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020916 {"MultiMedia10 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020917 {"MultiMedia10 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020918 {"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053020919 {"MultiMedia16 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020920 {"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
20921 {"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020922 {"MultiMedia5 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020923 {"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053020924 {"MultiMedia10 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020925 {"MultiMedia18 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010020926 {"MultiMedia19 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20927 {"MultiMedia28 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20928 {"MultiMedia29 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020929 {"MultiMedia18 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010020930 {"MultiMedia19 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
20931 {"MultiMedia28 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
20932 {"MultiMedia29 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020933
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020934 {"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20935 {"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20936 {"MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20937 {"MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20938 {"MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20939 {"MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20940 {"MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20941 {"MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20942 {"MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20943 {"MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20944 {"MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20945 {"MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20946 {"MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20947 {"MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20948 {"MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20949 {"MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020950 {"MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020951 {"MI2S_RX", NULL, "MI2S_RX Audio Mixer"},
20952
20953 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20954 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20955 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20956 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20957 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20958 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20959 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20960 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20961 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20962 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20963 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20964 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20965 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20966 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20967 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020968 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020969 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Audio Mixer"},
20970
20971 {"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20972 {"TERT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20973 {"TERT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20974 {"TERT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20975 {"TERT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20976 {"TERT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20977 {"TERT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20978 {"TERT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20979 {"TERT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20980 {"TERT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20981 {"TERT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20982 {"TERT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20983 {"TERT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20984 {"TERT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020985 {"TERT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020986 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Audio Mixer"},
20987
20988 {"SEC_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20989 {"SEC_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20990 {"SEC_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20991 {"SEC_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20992 {"SEC_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20993 {"SEC_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20994 {"SEC_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20995 {"SEC_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20996 {"SEC_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20997 {"SEC_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20998 {"SEC_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20999 {"SEC_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21000 {"SEC_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21001 {"SEC_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021002 {"SEC_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021003 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Audio Mixer"},
21004
21005 {"SEC_MI2S_RX_SD1 Audio Mixer", "MultiMedia6", "MM_DL6"},
21006 {"SEC_MI2S_RX_SD1", NULL, "SEC_MI2S_RX_SD1 Audio Mixer"},
21007
21008 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21009 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21010
21011 {"PRI_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21012 {"PRI_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21013 {"PRI_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21014 {"PRI_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21015 {"PRI_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21016 {"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21017 {"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21018 {"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21019 {"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21020 {"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21021 {"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21022 {"PRI_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21023 {"PRI_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21024 {"PRI_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21025 {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021026 {"PRI_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021027 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
21028
21029 {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21030 {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21031 {"INT0_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21032 {"INT0_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21033 {"INT0_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21034 {"INT0_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21035 {"INT0_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21036 {"INT0_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21037 {"INT0_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21038 {"INT0_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21039 {"INT0_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21040 {"INT0_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21041 {"INT0_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21042 {"INT0_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21043 {"INT0_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21044 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Audio Mixer"},
21045
21046 {"INT4_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21047 {"INT4_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21048 {"INT4_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21049 {"INT4_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21050 {"INT4_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21051 {"INT4_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21052 {"INT4_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21053 {"INT4_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21054 {"INT4_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21055 {"INT4_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21056 {"INT4_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21057 {"INT4_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21058 {"INT4_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21059 {"INT4_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21060 {"INT4_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21061 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Audio Mixer"},
21062
21063 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21064 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21065 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21066 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21067 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21068 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21069 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21070 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21071 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21072 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21073 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21074 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21075 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21076 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21077 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21078 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21079 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21080 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Audio Mixer"},
21081
21082 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21083 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21084 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21085 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21086 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21087 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21088 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21089 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21090 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21091 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21092 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21093 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21094 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21095 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21096 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21097 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021098 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021099 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Audio Mixer"},
21100
21101 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
21102 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
21103 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
21104 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
21105 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
21106 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
21107 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
21108 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
21109 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
21110 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
21111 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
21112 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
21113 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
21114 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
21115 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
21116 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021117 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021118 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Audio Mixer"},
21119
21120 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
21121 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
21122 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
21123 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
21124 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
21125 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
21126 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
21127 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
21128 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
21129 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
21130 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
21131 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
21132 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
21133 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
21134 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
21135 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021136 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021137 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Audio Mixer"},
21138
21139 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
21140 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
21141 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
21142 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
21143 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
21144 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
21145 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
21146 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
21147 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
21148 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
21149 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
21150 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
21151 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
21152 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
21153 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
21154 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021155 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021156 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Audio Mixer"},
21157
21158 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21159 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21160 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21161 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21162 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21163 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21164 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21165 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21166 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21167 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21168 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21169 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21170 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21171 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21172 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21173 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
21174 {"PRI_TDM_TX_0", NULL, "PRI_TDM_TX_0 Audio Mixer"},
21175
21176 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21177 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21178 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21179 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21180 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21181 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21182 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21183 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21184 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21185 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21186 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21187 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21188 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21189 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21190 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21191 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021192 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021193 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Audio Mixer"},
21194
21195 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
21196 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
21197 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
21198 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
21199 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
21200 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
21201 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
21202 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
21203 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
21204 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
21205 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
21206 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
21207 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
21208 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
21209 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
21210 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021211 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021212 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Audio Mixer"},
21213
21214 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
21215 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
21216 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
21217 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
21218 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
21219 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
21220 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
21221 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
21222 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
21223 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
21224 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
21225 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
21226 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
21227 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
21228 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
21229 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021230 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021231 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Audio Mixer"},
21232
21233 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
21234 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
21235 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
21236 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
21237 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
21238 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
21239 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
21240 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
21241 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
21242 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
21243 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
21244 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
21245 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
21246 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
21247 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
21248 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021249 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021250 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Audio Mixer"},
21251
21252 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21253 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21254 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21255 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21256 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21257 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21258 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21259 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21260 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21261 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21262 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21263 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21264 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21265 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21266 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21267 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
21268 {"SEC_TDM_TX_0", NULL, "SEC_TDM_TX_0 Audio Mixer"},
21269
21270 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21271 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21272 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21273 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21274 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21275 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21276 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21277 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21278 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21279 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21280 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21281 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21282 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21283 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21284 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21285 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021286 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021287 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Audio Mixer"},
21288
21289 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21290 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21291 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21292 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21293 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21294 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21295 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21296 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21297 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21298 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21299 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21300 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21301 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21302 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21303 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21304 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
21305 {"TERT_TDM_TX_0", NULL, "TERT_TDM_TX_0 Audio Mixer"},
21306
21307 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
21308 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
21309 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
21310 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
21311 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
21312 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
21313 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
21314 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
21315 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
21316 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
21317 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
21318 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
21319 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
21320 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
21321 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
21322 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021323 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021324 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Audio Mixer"},
21325
21326 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
21327 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
21328 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
21329 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
21330 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
21331 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
21332 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
21333 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
21334 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
21335 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
21336 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
21337 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
21338 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
21339 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
21340 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
21341 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021342 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021343 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Audio Mixer"},
21344
21345 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
21346 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
21347 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
21348 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
21349 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
21350 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
21351 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
21352 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
21353 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
21354 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
21355 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
21356 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
21357 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
21358 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
21359 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
21360 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021361 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021362 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Audio Mixer"},
21363
21364 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
21365 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
21366 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
21367 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
21368 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
21369 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
21370 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
21371 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
21372 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
21373 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
21374 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
21375 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
21376 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
21377 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
21378 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
21379 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021380 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021381 {"TERT_TDM_RX_4", NULL, "TERT_TDM_RX_4 Audio Mixer"},
21382
21383 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21384 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21385 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21386 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21387 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21388 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21389 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21390 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21391 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21392 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21393 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21394 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21395 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21396 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21397 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21398 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
21399 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021400 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021401 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Audio Mixer"},
21402
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021403 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21404 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21405 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21406 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21407 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21408 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21409 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21410 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21411 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21412 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21413 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21414 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21415 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21416 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21417 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21418 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
21419 {"QUAT_TDM_TX_0", NULL, "QUAT_TDM_TX_0 Audio Mixer"},
21420
21421 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
21422 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
21423 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
21424 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
21425 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
21426 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
21427 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
21428 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
21429 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
21430 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
21431 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
21432 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
21433 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
21434 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
21435 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
21436 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
21437 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021438 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021439 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Audio Mixer"},
21440
21441 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
21442 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
21443 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
21444 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
21445 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
21446 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
21447 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
21448 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
21449 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
21450 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
21451 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
21452 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
21453 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
21454 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
21455 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
21456 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
21457 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021458 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021459 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Audio Mixer"},
21460
21461 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
21462 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
21463 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
21464 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
21465 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
21466 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
21467 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
21468 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
21469 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
21470 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
21471 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
21472 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
21473 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
21474 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
21475 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
21476 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
21477 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021478 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021479 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
21480
Rohit Kumara5077932017-09-10 22:05:05 +053021481 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21482 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21483 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21484 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21485 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21486 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21487 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21488 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21489 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21490 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21491 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21492 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21493 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21494 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21495 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21496 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
21497 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021498 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053021499 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Audio Mixer"},
21500
21501 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
21502 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
21503 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
21504 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
21505 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
21506 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
21507 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
21508 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
21509 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
21510 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
21511 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
21512 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
21513 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
21514 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
21515 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
21516 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
21517 {"QUIN_TDM_TX_0", NULL, "QUIN_TDM_TX_0 Audio Mixer"},
21518
21519 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
21520 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
21521 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
21522 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
21523 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
21524 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
21525 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
21526 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
21527 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
21528 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
21529 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
21530 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
21531 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
21532 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
21533 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
21534 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
21535 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021536 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053021537 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Audio Mixer"},
21538
21539 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
21540 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
21541 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
21542 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
21543 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
21544 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
21545 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
21546 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
21547 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
21548 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
21549 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
21550 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
21551 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
21552 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
21553 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
21554 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
21555 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021556 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053021557 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Audio Mixer"},
21558
21559 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
21560 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
21561 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
21562 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
21563 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
21564 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
21565 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
21566 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
21567 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
21568 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
21569 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
21570 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
21571 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
21572 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
21573 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
21574 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
21575 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021576 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053021577 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Audio Mixer"},
21578
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021579 {"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
21580 {"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
21581 {"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
21582 {"MultiMedia3 Mixer", "MI2S_TX", "MI2S_TX"},
21583 {"MultiMedia5 Mixer", "MI2S_TX", "MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021584 {"MultiMedia10 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021585 {"MultiMedia16 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021586 {"MultiMedia1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21587 {"MultiMedia2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21588 {"MultiMedia6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21589 {"MultiMedia1 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
21590 {"MultiMedia2 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
21591 {"MultiMedia1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21592 {"MultiMedia2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21593 {"MultiMedia1 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
21594 {"MultiMedia2 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
21595 {"MultiMedia1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21596 {"MultiMedia2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21597 {"MultiMedia1 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053021598 {"MultiMedia1 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021599 {"MultiMedia1 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21600 {"MultiMedia3 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
21601 {"MultiMedia5 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021602 {"MultiMedia10 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021603 {"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21604 {"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
21605 {"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021606 {"MultiMedia10 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021607 {"MultiMedia16 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
21608 {"MultiMedia16 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021609 {"MultiMedia1 Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
21610 {"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
21611 {"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021612 {"MultiMedia10 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021613 {"MultiMedia1 Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
21614 {"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
21615 {"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021616 {"MultiMedia10 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021617 {"MultiMedia16 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021618 {"MultiMedia1 Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
21619 {"MultiMedia3 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
21620 {"MultiMedia5 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021621 {"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21622 {"MultiMedia2 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
21623 {"MultiMedia2 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21624 {"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21625 {"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21626 {"MultiMedia1 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21627 {"MultiMedia2 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21628 {"MultiMedia6 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053021629 {"MultiMedia6 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021630 {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21631 {"MultiMedia3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21632 {"MultiMedia5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021633 {"MultiMedia10 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021634 {"MultiMedia6 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
21635 {"MultiMedia3 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
21636 {"MultiMedia5 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021637 {"MultiMedia10 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021638 {"MultiMedia16 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021639 {"MultiMedia6 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21640 {"MultiMedia3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21641 {"MultiMedia5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021642 {"MultiMedia10 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021643 {"MultiMedia16 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021644 {"MultiMedia17 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21645 {"MultiMedia18 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21646 {"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21647 {"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21648 {"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021649 {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21650 {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21651 {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21652 {"MultiMedia6 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021653 {"MultiMedia6 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021654
21655 {"MultiMedia1 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21656 {"MultiMedia1 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21657 {"MultiMedia1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21658 {"MultiMedia1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21659 {"MultiMedia1 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21660 {"MultiMedia1 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21661 {"MultiMedia1 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21662 {"MultiMedia1 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21663 {"MultiMedia1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21664 {"MultiMedia1 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21665 {"MultiMedia1 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21666 {"MultiMedia1 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21667 {"MultiMedia1 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21668 {"MultiMedia1 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21669 {"MultiMedia1 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21670 {"MultiMedia1 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021671 {"MultiMedia1 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021672 {"MultiMedia1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21673 {"MultiMedia1 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21674 {"MultiMedia1 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21675 {"MultiMedia1 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021676 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21677 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21678 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21679 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21680 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021681 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021682 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21683 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21684 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21685 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21686 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21687 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021688 {"MultiMedia1 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21689 {"MultiMedia1 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021690
21691 {"MultiMedia2 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21692 {"MultiMedia2 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21693 {"MultiMedia2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21694 {"MultiMedia2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21695 {"MultiMedia2 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21696 {"MultiMedia2 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21697 {"MultiMedia2 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21698 {"MultiMedia2 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21699 {"MultiMedia2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21700 {"MultiMedia2 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21701 {"MultiMedia2 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21702 {"MultiMedia2 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21703 {"MultiMedia2 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21704 {"MultiMedia2 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21705 {"MultiMedia2 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21706 {"MultiMedia2 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021707 {"MultiMedia2 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021708 {"MultiMedia2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21709 {"MultiMedia2 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21710 {"MultiMedia2 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21711 {"MultiMedia2 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021712 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21713 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21714 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21715 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21716 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021717 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021718 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21719 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21720 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21721 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21722 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21723 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021724 {"MultiMedia2 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21725 {"MultiMedia2 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021726
21727 {"MultiMedia3 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21728 {"MultiMedia3 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21729 {"MultiMedia3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21730 {"MultiMedia3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21731 {"MultiMedia3 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21732 {"MultiMedia3 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21733 {"MultiMedia3 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21734 {"MultiMedia3 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21735 {"MultiMedia3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21736 {"MultiMedia3 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21737 {"MultiMedia3 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21738 {"MultiMedia3 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21739 {"MultiMedia3 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21740 {"MultiMedia3 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21741 {"MultiMedia3 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21742 {"MultiMedia3 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021743 {"MultiMedia3 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021744 {"MultiMedia3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21745 {"MultiMedia3 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21746 {"MultiMedia3 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21747 {"MultiMedia3 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021748 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21749 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21750 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21751 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21752 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021753 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021754 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21755 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21756 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21757 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21758 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21759 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021760 {"MultiMedia3 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21761 {"MultiMedia3 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021762
21763 {"MultiMedia4 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21764 {"MultiMedia4 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21765 {"MultiMedia4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21766 {"MultiMedia4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21767 {"MultiMedia4 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21768 {"MultiMedia4 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21769 {"MultiMedia4 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21770 {"MultiMedia4 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21771 {"MultiMedia4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21772 {"MultiMedia4 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21773 {"MultiMedia4 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21774 {"MultiMedia4 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21775 {"MultiMedia4 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21776 {"MultiMedia4 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21777 {"MultiMedia4 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21778 {"MultiMedia4 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021779 {"MultiMedia4 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021780 {"MultiMedia4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21781 {"MultiMedia4 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21782 {"MultiMedia4 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21783 {"MultiMedia4 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021784 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21785 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21786 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21787 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21788 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021789 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021790 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21791 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21792 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21793 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21794 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21795 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021796 {"MultiMedia4 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21797 {"MultiMedia4 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021798
21799 {"MultiMedia5 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21800 {"MultiMedia5 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21801 {"MultiMedia5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21802 {"MultiMedia5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21803 {"MultiMedia5 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21804 {"MultiMedia5 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21805 {"MultiMedia5 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21806 {"MultiMedia5 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21807 {"MultiMedia5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21808 {"MultiMedia5 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21809 {"MultiMedia5 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21810 {"MultiMedia5 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21811 {"MultiMedia5 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21812 {"MultiMedia5 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21813 {"MultiMedia5 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21814 {"MultiMedia5 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021815 {"MultiMedia5 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021816 {"MultiMedia5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21817 {"MultiMedia5 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21818 {"MultiMedia5 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21819 {"MultiMedia5 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021820 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21821 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21822 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21823 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21824 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021825 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021826 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21827 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21828 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21829 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21830 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21831 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021832 {"MultiMedia5 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21833 {"MultiMedia5 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021834
21835 {"MultiMedia6 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21836 {"MultiMedia6 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21837 {"MultiMedia6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21838 {"MultiMedia6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21839 {"MultiMedia6 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21840 {"MultiMedia6 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21841 {"MultiMedia6 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21842 {"MultiMedia6 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21843 {"MultiMedia6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21844 {"MultiMedia6 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21845 {"MultiMedia6 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21846 {"MultiMedia6 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21847 {"MultiMedia6 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21848 {"MultiMedia6 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21849 {"MultiMedia6 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21850 {"MultiMedia6 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021851 {"MultiMedia6 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021852 {"MultiMedia6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21853 {"MultiMedia6 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21854 {"MultiMedia6 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21855 {"MultiMedia6 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021856 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21857 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21858 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21859 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21860 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021861 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021862 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21863 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21864 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21865 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21866 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21867 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021868 {"MultiMedia6 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21869 {"MultiMedia6 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021870
21871 {"MultiMedia8 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21872 {"MultiMedia8 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21873 {"MultiMedia8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21874 {"MultiMedia8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21875 {"MultiMedia8 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21876 {"MultiMedia8 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21877 {"MultiMedia8 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21878 {"MultiMedia8 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21879 {"MultiMedia8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21880 {"MultiMedia8 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21881 {"MultiMedia8 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21882 {"MultiMedia8 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21883 {"MultiMedia8 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21884 {"MultiMedia8 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21885 {"MultiMedia8 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21886 {"MultiMedia8 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021887 {"MultiMedia8 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021888 {"MultiMedia8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21889 {"MultiMedia8 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21890 {"MultiMedia8 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21891 {"MultiMedia8 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021892 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21893 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21894 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21895 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21896 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021897 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021898 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21899 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21900 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21901 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21902 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21903 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021904 {"MultiMedia8 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21905 {"MultiMedia8 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021906
Samyak Jain810e42a2019-01-07 17:53:34 +053021907 {"MultiMedia9 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021908 {"MultiMedia9 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21909 {"MultiMedia9 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21910 {"MultiMedia9 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21911 {"MultiMedia9 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21912 {"MultiMedia9 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21913 {"MultiMedia9 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21914 {"MultiMedia9 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21915 {"MultiMedia9 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021916 {"MultiMedia9 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21917 {"MultiMedia9 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21918 {"MultiMedia9 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21919 {"MultiMedia9 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021920 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21921 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21922 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21923 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21924 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021925 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021926 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21927 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21928 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21929 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21930 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21931 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021932 {"MultiMedia9 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21933 {"MultiMedia9 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021934 {"MultiMedia9 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021935
Laxminath Kasam38070be2017-08-17 18:21:59 +053021936 {"MultiMedia10 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21937 {"MultiMedia10 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21938 {"MultiMedia10 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21939 {"MultiMedia10 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21940 {"MultiMedia10 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21941 {"MultiMedia10 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21942 {"MultiMedia10 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21943 {"MultiMedia10 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021944 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21945 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21946 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21947 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21948 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21949 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021950 {"MultiMedia10 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021951
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021952 {"MultiMedia20 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21953 {"MultiMedia20 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21954 {"MultiMedia20 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21955 {"MultiMedia20 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021956 {"MultiMedia20 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021957 {"MultiMedia20 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21958 {"MultiMedia20 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21959 {"MultiMedia20 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21960 {"MultiMedia20 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21961 {"MultiMedia20 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21962 {"MultiMedia20 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21963 {"MultiMedia20 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21964 {"MultiMedia20 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21965 {"MultiMedia20 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21966 {"MultiMedia20 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21967 {"MultiMedia20 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21968 {"MultiMedia20 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21969 {"MultiMedia20 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21970 {"MultiMedia20 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21971 {"MultiMedia20 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21972 {"MultiMedia20 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021973 {"MultiMedia20 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21974 {"MultiMedia20 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21975 {"MultiMedia20 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21976 {"MultiMedia20 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021977 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21978 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21979 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21980 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21981 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021982 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021983 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21984 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21985 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21986 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21987 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21988 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021989 {"MultiMedia20 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21990 {"MultiMedia20 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053021991 {"MultiMedia20 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021992
Derek Chen07c6d1c2018-07-05 10:39:25 -070021993 {"MultiMedia21 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21994 {"MultiMedia21 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21995 {"MultiMedia21 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21996 {"MultiMedia21 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21997 {"MultiMedia21 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21998 {"MultiMedia21 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21999 {"MultiMedia21 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22000 {"MultiMedia21 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22001 {"MultiMedia21 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22002 {"MultiMedia21 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22003 {"MultiMedia21 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22004 {"MultiMedia21 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22005 {"MultiMedia21 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22006 {"MultiMedia21 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22007 {"MultiMedia21 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22008 {"MultiMedia21 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22009 {"MultiMedia21 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22010 {"MultiMedia21 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22011 {"MultiMedia21 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22012 {"MultiMedia21 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22013 {"MultiMedia21 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22014 {"MultiMedia21 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053022015 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
22016 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
22017 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
22018 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22019 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022020 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053022021 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
22022 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
22023 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
22024 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
22025 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
22026 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
22027 {"MultiMedia21 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
22028 {"MultiMedia21 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053022029 {"MultiMedia21 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070022030
Surendar Karkac1cde372018-08-14 18:56:24 +053022031 {"MultiMedia27 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053022032 {"MultiMedia27 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022033 {"MultiMedia27 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
22034 {"MultiMedia27 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022035 {"MultiMedia27 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022036 {"MultiMedia27 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22037 {"MultiMedia27 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22038 {"MultiMedia27 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22039 {"MultiMedia27 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22040 {"MultiMedia27 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
22041 {"MultiMedia27 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
22042 {"MultiMedia27 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053022043 {"MultiMedia27 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022044
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022045 {"MultiMedia1 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
22046 {"MultiMedia2 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
22047 {"MultiMedia4 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
22048 {"MultiMedia5 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
22049 {"MultiMedia6 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
22050 {"MultiMedia8 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053022051 {"MultiMedia10 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022052
Asish Bhattacharya34504582017-08-08 12:55:01 +053022053 {"MultiMedia16 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22054 {"MultiMedia16 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22055 {"MultiMedia16 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22056 {"MultiMedia16 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22057 {"MultiMedia16 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22058 {"MultiMedia16 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22059 {"MultiMedia16 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22060 {"MultiMedia16 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22061 {"MultiMedia16 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22062 {"MultiMedia16 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22063 {"MultiMedia16 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22064 {"MultiMedia16 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22065 {"MultiMedia16 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22066 {"MultiMedia16 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22067 {"MultiMedia16 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22068 {"MultiMedia16 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22069 {"MultiMedia16 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022070 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
22071 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
22072 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
22073 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22074 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022075 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022076 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
22077 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
22078 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
22079 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
22080 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
22081 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020022082 {"MultiMedia16 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
22083 {"MultiMedia16 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053022084 {"MultiMedia16 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053022085
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022086 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
22087 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
22088 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
22089 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
22090 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
22091 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053022092 {"MultiMedia17 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022093
22094 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
22095 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
22096 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
22097 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
22098 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
22099 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053022100 {"MultiMedia18 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022101
22102 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
22103 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
22104 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
22105 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
22106 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
22107 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053022108 {"MultiMedia19 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022109
22110 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
22111 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
22112 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
22113 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
22114 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
22115 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053022116 {"MultiMedia28 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022117
22118 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
22119 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
22120 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
22121 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
22122 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
22123 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053022124 {"MultiMedia29 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022125
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022126 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22127 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22128 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22129 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22130 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22131 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22132 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22133 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22134 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22135 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22136 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22137 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22138 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22139 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22140 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22141 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
22142 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
22143 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Audio Mixer"},
22144
22145 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22146 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22147 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22148 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22149 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22150 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22151 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22152 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22153 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22154 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22155 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22156 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22157 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22158 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22159 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22160 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
22161 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
22162 {"INT_BT_A2DP_RX", NULL, "INTERNAL_A2DP_RX Audio Mixer"},
22163
22164 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22165 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22166 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22167 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22168 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22169 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22170 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22171 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22172 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22173 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22174 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22175 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22176 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22177 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22178 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22179 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
22180 {"INT_FM_RX", NULL, "INTERNAL_FM_RX Audio Mixer"},
22181
22182 {"AFE_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22183 {"AFE_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22184 {"AFE_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22185 {"AFE_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22186 {"AFE_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22187 {"AFE_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22188 {"AFE_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22189 {"AFE_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22190 {"AFE_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22191 {"AFE_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22192 {"AFE_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22193 {"AFE_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22194 {"AFE_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22195 {"AFE_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22196 {"AFE_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22197 {"AFE_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
22198 {"PCM_RX", NULL, "AFE_PCM_RX Audio Mixer"},
22199
22200 {"MultiMedia1 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22201 {"MultiMedia3 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22202 {"MultiMedia4 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053022203 {"MultiMedia10 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022204 {"MultiMedia17 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22205 {"MultiMedia18 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22206 {"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053022207 {"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22208 {"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022209 {"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22210 {"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053022211 {"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022212 {"MultiMedia1 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22213 {"MultiMedia4 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053022214 {"MultiMedia16 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022215 {"MultiMedia17 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22216 {"MultiMedia18 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22217 {"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053022218 {"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22219 {"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022220 {"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22221 {"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22222 {"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22223
22224 {"MultiMedia1 Mixer", "AFE_PCM_TX", "PCM_TX"},
22225 {"MultiMedia3 Mixer", "AFE_PCM_TX", "PCM_TX"},
22226 {"MultiMedia4 Mixer", "AFE_PCM_TX", "PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053022227 {"MultiMedia10 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022228 {"MultiMedia17 Mixer", "AFE_PCM_TX", "PCM_TX"},
22229 {"MultiMedia18 Mixer", "AFE_PCM_TX", "PCM_TX"},
22230 {"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053022231 {"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
22232 {"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022233 {"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
22234 {"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053022235 {"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022236 {"MM_UL1", NULL, "MultiMedia1 Mixer"},
22237 {"MultiMedia2 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22238 {"MM_UL2", NULL, "MultiMedia2 Mixer"},
22239 {"MM_UL3", NULL, "MultiMedia3 Mixer"},
22240 {"MM_UL4", NULL, "MultiMedia4 Mixer"},
22241 {"MM_UL5", NULL, "MultiMedia5 Mixer"},
22242 {"MM_UL6", NULL, "MultiMedia6 Mixer"},
22243 {"MM_UL8", NULL, "MultiMedia8 Mixer"},
22244 {"MM_UL9", NULL, "MultiMedia9 Mixer"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053022245 {"MM_UL10", NULL, "MultiMedia10 Mixer"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053022246 {"MM_UL16", NULL, "MultiMedia16 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022247 {"MM_UL17", NULL, "MultiMedia17 Mixer"},
22248 {"MM_UL18", NULL, "MultiMedia18 Mixer"},
22249 {"MM_UL19", NULL, "MultiMedia19 Mixer"},
22250 {"MM_UL20", NULL, "MultiMedia20 Mixer"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070022251 {"MM_UL21", NULL, "MultiMedia21 Mixer"},
Surendar Karkac1cde372018-08-14 18:56:24 +053022252 {"MM_UL27", NULL, "MultiMedia27 Mixer"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053022253 {"MM_UL28", NULL, "MultiMedia28 Mixer"},
22254 {"MM_UL29", NULL, "MultiMedia29 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022255
22256 {"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22257 {"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22258 {"AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22259 {"AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22260 {"AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22261 {"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22262 {"AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22263 {"AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22264 {"AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22265 {"AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22266 {"AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22267 {"AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22268 {"AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22269 {"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22270 {"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22271 {"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070022272 {"AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022273 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
22274
22275 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22276 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22277 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22278 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22279 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22280 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22281 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22282 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22283 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22284 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22285 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22286 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22287 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22288 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22289 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22290 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070022291 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022292 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
22293
22294 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22295 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22296 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22297 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22298 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22299 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22300 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22301 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22302 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22303 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22304 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22305 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22306 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22307 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22308 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22309 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
22310 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
22311
22312 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22313 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22314 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22315 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22316 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22317 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22318 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22319 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22320 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22321 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22322 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22323 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22324 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22325 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22326 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22327 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
22328 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
22329
Rohit Kumara5077932017-09-10 22:05:05 +053022330 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
22331 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
22332 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
22333 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
22334 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
22335 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
22336 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
22337 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
22338 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
22339 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
22340 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
22341 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
22342 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
22343 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
22344 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
22345 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
22346 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX Audio Mixer"},
22347
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022348 {"PRI_RX_Voice Mixer", "Voip", "VOIP_DL"},
22349 {"PRI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22350 {"PRI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22351 {"PRI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22352 {"PRI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22353 {"PRI_I2S_RX", NULL, "PRI_RX_Voice Mixer"},
22354
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022355 {"SEC_RX_Voice Mixer", "Voip", "VOIP_DL"},
22356 {"SEC_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22357 {"SEC_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22358 {"SEC_I2S_RX", NULL, "SEC_RX_Voice Mixer"},
22359
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022360 {"SEC_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070022361 {"SEC_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
22362 {"SEC_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022363 {"SEC_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22364 {"SEC_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22365 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22366 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22367 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_Voice Mixer"},
22368
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022369 {"SLIM_0_RX_Voice Mixer", "Voip", "VOIP_DL"},
22370 {"SLIM_0_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022371 {"SLIM_0_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22372 {"SLIM_0_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22373 {"SLIM_0_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22374 {"SLIMBUS_0_RX", NULL, "SLIM_0_RX_Voice Mixer"},
22375
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022376 {"SLIM_6_RX_Voice Mixer", "Voip", "VOIP_DL"},
22377 {"SLIM_6_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022378 {"SLIM_6_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22379 {"SLIM_6_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22380 {"SLIM_6_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22381 {"SLIMBUS_6_RX", NULL, "SLIM_6_RX_Voice Mixer"},
22382
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022383 {"USB_AUDIO_RX_Voice Mixer", "Voip", "VOIP_DL"},
22384 {"USB_AUDIO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022385 {"USB_AUDIO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22386 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22387 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22388 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
22389
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080022390 {"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
22391 {"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080022392 {"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22393 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22394 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22395 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
22396
Karthikeyan Mani57550082018-05-03 18:43:58 -070022397 {"DISPLAY_PORT_RX1_Voice Mixer", "Voip", "VOIP_DL"},
22398 {"DISPLAY_PORT_RX1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22399 {"DISPLAY_PORT_RX1_Voice Mixer", "QCHAT", "QCHAT_DL"},
22400 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22401 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22402 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1_Voice Mixer"},
22403
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022404 {"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
22405 {"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22406 {"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22407 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22408 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022409 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX_Voice Mixer"},
22410
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022411 {"AFE_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22412 {"AFE_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22413 {"AFE_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22414 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22415 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22416 {"PCM_RX", NULL, "AFE_PCM_RX_Voice Mixer"},
22417
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022418 {"AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22419 {"AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022420 {"AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22421 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22422 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22423 {"AUX_PCM_RX", NULL, "AUX_PCM_RX_Voice Mixer"},
22424
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022425 {"SEC_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22426 {"SEC_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022427 {"SEC_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22428 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22429 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22430 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
22431
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022432 {"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22433 {"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022434 {"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22435 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22436 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22437 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
22438
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022439 {"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22440 {"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022441 {"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22442 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22443 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22444 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
22445
Rohit Kumara5077932017-09-10 22:05:05 +053022446 {"QUIN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
22447 {"QUIN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053022448 {"QUIN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22449 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22450 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22451 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX_Voice Mixer"},
22452
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022453 {"HDMI_RX_Voice Mixer", "Voip", "VOIP_DL"},
22454 {"HDMI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22455 {"HDMI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22456 {"HDMI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22457 {"HDMI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22458 {"HDMI", NULL, "HDMI_RX_Voice Mixer"},
22459 {"HDMI", NULL, "HDMI_DL_HL"},
22460
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022461 {"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070022462 {"MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
22463 {"MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022464 {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22465 {"MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22466 {"MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
kunleiz8a60b822017-10-11 15:04:02 +080022467 {"MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022468 {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
22469
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022470 {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070022471 {"PRI_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
22472 {"PRI_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022473 {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22474 {"PRI_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22475 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22476 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22477 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"},
22478
22479 {"INT0_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
22480 {"INT0_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22481 {"INT0_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22482 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22483 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22484 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_Voice Mixer"},
22485
22486 {"INT4_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
22487 {"INT4_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22488 {"INT4_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22489 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22490 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22491 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_Voice Mixer"},
22492
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022493 {"TERT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070022494 {"TERT_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
22495 {"TERT_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022496 {"TERT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22497 {"TERT_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22498 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22499 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22500 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_Voice Mixer"},
22501
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022502 {"QUAT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070022503 {"QUAT_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
22504 {"QUAT_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022505 {"QUAT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22506 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22507 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22508 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_Voice Mixer"},
22509
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022510 {"QUIN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070022511 {"QUIN_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
22512 {"QUIN_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022513 {"QUIN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22514 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22515 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22516 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"},
22517
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053022518 {"PRI_TDM_RX_0_Voice Mixer", "CSVoice", "CS-VOICE_DL1"},
22519 {"PRI_TDM_RX_0_Voice Mixer", "Voice2", "VOICE2_DL"},
22520 {"PRI_TDM_RX_0_Voice Mixer", "Voip", "VOIP_DL"},
22521 {"PRI_TDM_RX_0_Voice Mixer", "VoLTE", "VoLTE_DL"},
22522 {"PRI_TDM_RX_0_Voice Mixer", "VoWLAN", "VoWLAN_DL"},
22523 {"PRI_TDM_RX_0_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
22524 {"PRI_TDM_RX_0_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
22525 {"PRI_TDM_RX_0_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
22526 {"PRI_TDM_RX_0_Voice Mixer", "QCHAT", "QCHAT_DL"},
22527 {"PRI_TDM_RX_0_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22528 {"PRI_TDM_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22529 {"PRI_TDM_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22530 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_Voice Mixer"},
22531
22532 {"PRI_TDM_RX_1_Voice Mixer", "CSVoice", "CS-VOICE_DL1"},
22533 {"PRI_TDM_RX_1_Voice Mixer", "Voice2", "VOICE2_DL"},
22534 {"PRI_TDM_RX_1_Voice Mixer", "Voip", "VOIP_DL"},
22535 {"PRI_TDM_RX_1_Voice Mixer", "VoLTE", "VoLTE_DL"},
22536 {"PRI_TDM_RX_1_Voice Mixer", "VoWLAN", "VoWLAN_DL"},
22537 {"PRI_TDM_RX_1_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
22538 {"PRI_TDM_RX_1_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
22539 {"PRI_TDM_RX_1_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
22540 {"PRI_TDM_RX_1_Voice Mixer", "QCHAT", "QCHAT_DL"},
22541 {"PRI_TDM_RX_1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22542 {"PRI_TDM_RX_1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22543 {"PRI_TDM_RX_1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22544 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_Voice Mixer"},
22545
22546 {"PRI_TDM_RX_2_Voice Mixer", "CSVoice", "CS-VOICE_DL1"},
22547 {"PRI_TDM_RX_2_Voice Mixer", "Voice2", "VOICE2_DL"},
22548 {"PRI_TDM_RX_2_Voice Mixer", "Voip", "VOIP_DL"},
22549 {"PRI_TDM_RX_2_Voice Mixer", "VoLTE", "VoLTE_DL"},
22550 {"PRI_TDM_RX_2_Voice Mixer", "VoWLAN", "VoWLAN_DL"},
22551 {"PRI_TDM_RX_2_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
22552 {"PRI_TDM_RX_2_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
22553 {"PRI_TDM_RX_2_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
22554 {"PRI_TDM_RX_2_Voice Mixer", "QCHAT", "QCHAT_DL"},
22555 {"PRI_TDM_RX_2_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22556 {"PRI_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22557 {"PRI_TDM_RX_2_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22558 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_Voice Mixer"},
22559
22560 {"PRI_TDM_RX_3_Voice Mixer", "CSVoice", "CS-VOICE_DL1"},
22561 {"PRI_TDM_RX_3_Voice Mixer", "Voice2", "VOICE2_DL"},
22562 {"PRI_TDM_RX_3_Voice Mixer", "Voip", "VOIP_DL"},
22563 {"PRI_TDM_RX_3_Voice Mixer", "VoLTE", "VoLTE_DL"},
22564 {"PRI_TDM_RX_3_Voice Mixer", "VoWLAN", "VoWLAN_DL"},
22565 {"PRI_TDM_RX_3_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
22566 {"PRI_TDM_RX_3_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
22567 {"PRI_TDM_RX_3_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
22568 {"PRI_TDM_RX_3_Voice Mixer", "QCHAT", "QCHAT_DL"},
22569 {"PRI_TDM_RX_3_Voice Mixer", "DTMF", "DTMF_DL_HL"},
22570 {"PRI_TDM_RX_3_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22571 {"PRI_TDM_RX_3_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22572 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_Voice Mixer"},
22573
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022574 {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22575 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"},
22576
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022577 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22578 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22579 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_Voice Mixer"},
22580
22581 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22582 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22583 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_Voice Mixer"},
22584
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022585 {"VOC_EXT_EC MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22586 {"VOC_EXT_EC MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22587 {"VOC_EXT_EC MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22588 {"VOC_EXT_EC MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022589 {"VOC_EXT_EC MUX", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022590 {"VOC_EXT_EC MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Karthikeyan Mania1eb9382018-07-25 10:52:58 -070022591 {"VOC_EXT_EC MUX", "SEC_TDM_TX", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022592 {"VOIP_UL", NULL, "VOC_EXT_EC MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022593 {"VOICEMMODE1_UL", NULL, "VOC_EXT_EC MUX"},
22594 {"VOICEMMODE2_UL", NULL, "VOC_EXT_EC MUX"},
22595
22596 {"AUDIO_REF_EC_UL1 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22597 {"AUDIO_REF_EC_UL1 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22598 {"AUDIO_REF_EC_UL1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22599 {"AUDIO_REF_EC_UL1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22600 {"AUDIO_REF_EC_UL1 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
22601 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22602 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
22603 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
22604 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
22605 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070022606 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
22607 {"AUDIO_REF_EC_UL1 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022608
22609 {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22610 {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22611 {"AUDIO_REF_EC_UL2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22612 {"AUDIO_REF_EC_UL2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22613
22614 {"AUDIO_REF_EC_UL3 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22615 {"AUDIO_REF_EC_UL3 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22616 {"AUDIO_REF_EC_UL3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22617 {"AUDIO_REF_EC_UL3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22618
22619 {"AUDIO_REF_EC_UL4 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22620 {"AUDIO_REF_EC_UL4 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22621 {"AUDIO_REF_EC_UL4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22622 {"AUDIO_REF_EC_UL4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22623
22624 {"AUDIO_REF_EC_UL5 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22625 {"AUDIO_REF_EC_UL5 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22626 {"AUDIO_REF_EC_UL5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22627 {"AUDIO_REF_EC_UL5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22628
22629 {"AUDIO_REF_EC_UL6 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22630 {"AUDIO_REF_EC_UL6 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22631 {"AUDIO_REF_EC_UL6 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22632 {"AUDIO_REF_EC_UL6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22633
22634 {"AUDIO_REF_EC_UL8 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22635 {"AUDIO_REF_EC_UL8 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22636 {"AUDIO_REF_EC_UL8 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22637 {"AUDIO_REF_EC_UL8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22638
22639 {"AUDIO_REF_EC_UL9 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22640 {"AUDIO_REF_EC_UL9 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22641 {"AUDIO_REF_EC_UL9 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22642 {"AUDIO_REF_EC_UL9 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22643
Laxminath Kasam38070be2017-08-17 18:21:59 +053022644 {"AUDIO_REF_EC_UL10 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22645 {"AUDIO_REF_EC_UL10 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22646 {"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22647 {"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22648 {"AUDIO_REF_EC_UL10 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
22649 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22650 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
22651 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
22652 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
22653 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070022654 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
22655 {"AUDIO_REF_EC_UL10 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Vikram Panduranga016c49f2017-09-11 15:15:56 -070022656
22657 {"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22658 {"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22659 {"AUDIO_REF_EC_UL16 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22660 {"AUDIO_REF_EC_UL16 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22661
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022662 {"AUDIO_REF_EC_UL17 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22663 {"AUDIO_REF_EC_UL17 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22664 {"AUDIO_REF_EC_UL17 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22665 {"AUDIO_REF_EC_UL17 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22666
22667 {"AUDIO_REF_EC_UL18 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22668 {"AUDIO_REF_EC_UL18 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22669 {"AUDIO_REF_EC_UL18 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22670 {"AUDIO_REF_EC_UL18 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22671
22672 {"AUDIO_REF_EC_UL19 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22673 {"AUDIO_REF_EC_UL19 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22674 {"AUDIO_REF_EC_UL19 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22675 {"AUDIO_REF_EC_UL19 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22676
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053022677 {"AUDIO_REF_EC_UL28 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22678 {"AUDIO_REF_EC_UL28 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22679 {"AUDIO_REF_EC_UL28 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22680 {"AUDIO_REF_EC_UL28 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22681
22682 {"AUDIO_REF_EC_UL29 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22683 {"AUDIO_REF_EC_UL29 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22684 {"AUDIO_REF_EC_UL29 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22685 {"AUDIO_REF_EC_UL29 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Yunfei Zhang3efc4a22017-11-07 16:30:13 +080022686
22687 {"LSM1_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22688 {"LSM2_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22689 {"LSM3_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22690 {"LSM4_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22691 {"LSM5_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22692 {"LSM6_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22693 {"LSM7_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22694 {"LSM8_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
22695
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022696 {"MM_UL1", NULL, "AUDIO_REF_EC_UL1 MUX"},
22697 {"MM_UL2", NULL, "AUDIO_REF_EC_UL2 MUX"},
22698 {"MM_UL3", NULL, "AUDIO_REF_EC_UL3 MUX"},
22699 {"MM_UL4", NULL, "AUDIO_REF_EC_UL4 MUX"},
22700 {"MM_UL5", NULL, "AUDIO_REF_EC_UL5 MUX"},
22701 {"MM_UL6", NULL, "AUDIO_REF_EC_UL6 MUX"},
22702 {"MM_UL8", NULL, "AUDIO_REF_EC_UL8 MUX"},
22703 {"MM_UL9", NULL, "AUDIO_REF_EC_UL9 MUX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053022704 {"MM_UL10", NULL, "AUDIO_REF_EC_UL10 MUX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053022705 {"MM_UL16", NULL, "AUDIO_REF_EC_UL16 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022706 {"MM_UL17", NULL, "AUDIO_REF_EC_UL17 MUX"},
22707 {"MM_UL18", NULL, "AUDIO_REF_EC_UL18 MUX"},
22708 {"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053022709 {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
22710 {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022711
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053022712 {"Voice_Tx Mixer", "PRI_TX_Voice", "PRI_I2S_TX"},
22713 {"Voice_Tx Mixer", "PRI_MI2S_TX_Voice", "PRI_MI2S_TX"},
22714 {"Voice_Tx Mixer", "MI2S_TX_Voice", "MI2S_TX"},
22715 {"Voice_Tx Mixer", "TERT_MI2S_TX_Voice", "TERT_MI2S_TX"},
22716 {"Voice_Tx Mixer", "SLIM_0_TX_Voice", "SLIMBUS_0_TX"},
22717 {"Voice_Tx Mixer", "INTERNAL_BT_SCO_TX_Voice", "INT_BT_SCO_TX"},
22718 {"Voice_Tx Mixer", "AFE_PCM_TX_Voice", "PCM_TX"},
22719 {"Voice_Tx Mixer", "AUX_PCM_TX_Voice", "AUX_PCM_TX"},
22720 {"Voice_Tx Mixer", "SEC_AUX_PCM_TX_Voice", "SEC_AUX_PCM_TX"},
22721 {"Voice_Tx Mixer", "SEC_MI2S_TX_Voice", "SEC_MI2S_TX"},
22722 {"Voice_Tx Mixer", "PRI_TDM_TX_3_Voice", "PRI_TDM_TX_3"},
22723 {"CS-VOICE_UL1", NULL, "Voice_Tx Mixer"},
22724
22725 {"Voice2_Tx Mixer", "PRI_TX_Voice2", "PRI_I2S_TX"},
22726 {"Voice2_Tx Mixer", "PRI_MI2S_TX_Voice2", "PRI_MI2S_TX"},
22727 {"Voice2_Tx Mixer", "MI2S_TX_Voice2", "MI2S_TX"},
22728 {"Voice2_Tx Mixer", "TERT_MI2S_TX_Voice2", "TERT_MI2S_TX"},
22729 {"Voice2_Tx Mixer", "SLIM_0_TX_Voice2", "SLIMBUS_0_TX"},
22730 {"Voice2_Tx Mixer", "INTERNAL_BT_SCO_TX_Voice2", "INT_BT_SCO_TX"},
22731 {"Voice2_Tx Mixer", "AFE_PCM_TX_Voice2", "PCM_TX"},
22732 {"Voice2_Tx Mixer", "AUX_PCM_TX_Voice2", "AUX_PCM_TX"},
22733 {"Voice2_Tx Mixer", "SEC_AUX_PCM_TX_Voice2", "SEC_AUX_PCM_TX"},
22734 {"Voice2_Tx Mixer", "PRI_TDM_TX_3_Voice2", "PRI_TDM_TX_3"},
22735 {"VOICE2_UL", NULL, "Voice2_Tx Mixer"},
22736
22737 {"VoLTE_Tx Mixer", "PRI_TX_VoLTE", "PRI_I2S_TX"},
22738 {"VoLTE_Tx Mixer", "SLIM_0_TX_VoLTE", "SLIMBUS_0_TX"},
22739 {"VoLTE_Tx Mixer", "INTERNAL_BT_SCO_TX_VoLTE", "INT_BT_SCO_TX"},
22740 {"VoLTE_Tx Mixer", "AFE_PCM_TX_VoLTE", "PCM_TX"},
22741 {"VoLTE_Tx Mixer", "AUX_PCM_TX_VoLTE", "AUX_PCM_TX"},
22742 {"VoLTE_Tx Mixer", "SEC_AUX_PCM_TX_VoLTE", "SEC_AUX_PCM_TX"},
22743 {"VoLTE_Tx Mixer", "MI2S_TX_VoLTE", "MI2S_TX"},
22744 {"VoLTE_Tx Mixer", "PRI_MI2S_TX_VoLTE", "PRI_MI2S_TX"},
22745 {"VoLTE_Tx Mixer", "TERT_MI2S_TX_VoLTE", "TERT_MI2S_TX"},
22746 {"VoLTE_Tx Mixer", "PRI_TDM_TX_3_VoLTE", "PRI_TDM_TX_3"},
22747 {"VoLTE_UL", NULL, "VoLTE_Tx Mixer"},
22748
22749 {"VoWLAN_Tx Mixer", "PRI_TX_VoWLAN", "PRI_I2S_TX"},
22750 {"VoWLAN_Tx Mixer", "SLIM_0_TX_VoWLAN", "SLIMBUS_0_TX"},
22751 {"VoWLAN_Tx Mixer", "INTERNAL_BT_SCO_TX_VoWLAN", "INT_BT_SCO_TX"},
22752 {"VoWLAN_Tx Mixer", "AFE_PCM_TX_VoWLAN", "PCM_TX"},
22753 {"VoWLAN_Tx Mixer", "AUX_PCM_TX_VoWLAN", "AUX_PCM_TX"},
22754 {"VoWLAN_Tx Mixer", "SEC_AUX_PCM_TX_VoWLAN", "SEC_AUX_PCM_TX"},
22755 {"VoWLAN_Tx Mixer", "MI2S_TX_VoWLAN", "MI2S_TX"},
22756 {"VoWLAN_Tx Mixer", "PRI_MI2S_TX_VoWLAN", "PRI_MI2S_TX"},
22757 {"VoWLAN_Tx Mixer", "TERT_MI2S_TX_VoWLAN", "TERT_MI2S_TX"},
22758 {"VoWLAN_Tx Mixer", "PRI_TDM_TX_3_VoWLAN", "PRI_TDM_TX_3"},
22759 {"VoWLAN_UL", NULL, "VoWLAN_Tx Mixer"},
22760
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022761 {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
22762 {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
22763 {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"},
22764 {"VoiceMMode1_Tx Mixer", "TERT_MI2S_TX_MMode1", "TERT_MI2S_TX"},
22765 {"VoiceMMode1_Tx Mixer", "INT3_MI2S_TX_MMode1", "INT3_MI2S_TX"},
22766 {"VoiceMMode1_Tx Mixer", "SLIM_0_TX_MMode1", "SLIMBUS_0_TX"},
22767 {"VoiceMMode1_Tx Mixer", "SLIM_7_TX_MMode1", "SLIMBUS_7_TX"},
22768 {"VoiceMMode1_Tx Mixer", "SLIM_8_TX_MMode1", "SLIMBUS_8_TX"},
22769 {"VoiceMMode1_Tx Mixer", "USB_AUDIO_TX_MMode1", "USB_AUDIO_TX"},
22770 {"VoiceMMode1_Tx Mixer", "INT_BT_SCO_TX_MMode1", "INT_BT_SCO_TX"},
22771 {"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
22772 {"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
22773 {"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
22774 {"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
22775 {"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022776 {"VoiceMMode1_Tx Mixer", "QUIN_AUX_PCM_TX_MMode1", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022777 {"VoiceMMode1_Tx Mixer", "QUAT_TDM_TX_0_MMode1", "QUAT_TDM_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022778 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_0_MMode1", "TX_CDC_DMA_TX_0"},
22779 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_1_MMode1", "TX_CDC_DMA_TX_1"},
22780 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_2_MMode1", "TX_CDC_DMA_TX_2"},
22781 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_3_MMode1", "TX_CDC_DMA_TX_3"},
22782 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_4_MMode1", "TX_CDC_DMA_TX_4"},
22783 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_5_MMode1", "TX_CDC_DMA_TX_5"},
Aditya Bavanari1e349b82018-02-23 16:34:40 +053022784 {"VoiceMMode1_Tx Mixer", "QUAT_MI2S_TX_MMode1", "QUAT_MI2S_TX"},
22785 {"VoiceMMode1_Tx Mixer", "QUIN_MI2S_TX_MMode1", "QUIN_MI2S_TX"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053022786 {"VoiceMMode1_Tx Mixer", "PRI_TDM_TX_3_MMode1", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022787 {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
22788
22789 {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
22790 {"VoiceMMode2_Tx Mixer", "PRI_MI2S_TX_MMode2", "PRI_MI2S_TX"},
22791 {"VoiceMMode2_Tx Mixer", "MI2S_TX_MMode2", "MI2S_TX"},
22792 {"VoiceMMode2_Tx Mixer", "TERT_MI2S_TX_MMode2", "TERT_MI2S_TX"},
22793 {"VoiceMMode2_Tx Mixer", "INT3_MI2S_TX_MMode2", "INT3_MI2S_TX"},
22794 {"VoiceMMode2_Tx Mixer", "SLIM_0_TX_MMode2", "SLIMBUS_0_TX"},
22795 {"VoiceMMode2_Tx Mixer", "SLIM_7_TX_MMode2", "SLIMBUS_7_TX"},
22796 {"VoiceMMode2_Tx Mixer", "SLIM_8_TX_MMode2", "SLIMBUS_8_TX"},
22797 {"VoiceMMode2_Tx Mixer", "USB_AUDIO_TX_MMode2", "USB_AUDIO_TX"},
22798 {"VoiceMMode2_Tx Mixer", "INT_BT_SCO_TX_MMode2", "INT_BT_SCO_TX"},
22799 {"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
22800 {"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
22801 {"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
22802 {"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
22803 {"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022804 {"VoiceMMode2_Tx Mixer", "QUIN_AUX_PCM_TX_MMode2", "QUIN_AUX_PCM_TX"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022805 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_0_MMode2", "TX_CDC_DMA_TX_0"},
22806 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_1_MMode2", "TX_CDC_DMA_TX_1"},
22807 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_2_MMode2", "TX_CDC_DMA_TX_2"},
22808 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_3_MMode2", "TX_CDC_DMA_TX_3"},
22809 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_4_MMode2", "TX_CDC_DMA_TX_4"},
22810 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_5_MMode2", "TX_CDC_DMA_TX_5"},
Aditya Bavanari1e349b82018-02-23 16:34:40 +053022811 {"VoiceMMode2_Tx Mixer", "QUAT_MI2S_TX_MMode2", "QUAT_MI2S_TX"},
22812 {"VoiceMMode2_Tx Mixer", "QUIN_MI2S_TX_MMode2", "QUIN_MI2S_TX"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053022813 {"VoiceMMode1_Tx Mixer", "PRI_TDM_TX_3_MMode2", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022814 {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
22815
22816 {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
22817 {"Voip_Tx Mixer", "MI2S_TX_Voip", "MI2S_TX"},
22818 {"Voip_Tx Mixer", "TERT_MI2S_TX_Voip", "TERT_MI2S_TX"},
22819 {"Voip_Tx Mixer", "INT3_MI2S_TX_Voip", "INT3_MI2S_TX"},
22820 {"Voip_Tx Mixer", "SLIM_0_TX_Voip", "SLIMBUS_0_TX"},
22821 {"Voip_Tx Mixer", "SLIM_7_TX_Voip", "SLIMBUS_7_TX"},
22822 {"Voip_Tx Mixer", "SLIM_8_TX_Voip", "SLIMBUS_8_TX"},
22823 {"Voip_Tx Mixer", "USB_AUDIO_TX_Voip", "USB_AUDIO_TX"},
22824 {"Voip_Tx Mixer", "INTERNAL_BT_SCO_TX_Voip", "INT_BT_SCO_TX"},
22825 {"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
22826 {"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
22827 {"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
22828 {"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
22829 {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022830 {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022831 {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053022832 {"Voip_Tx Mixer", "PRI_TDM_TX_3_Voip", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022833 {"VOIP_UL", NULL, "Voip_Tx Mixer"},
22834
22835 {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},
22836 {"SLIMBUS_0_RX", NULL, "SLIMBUS_DL_HL"},
22837 {"SLIMBUS1_DL_HL", "Switch", "SLIM1_DL_HL"},
22838 {"SLIMBUS_1_RX", NULL, "SLIMBUS1_DL_HL"},
22839 {"SLIMBUS3_DL_HL", "Switch", "SLIM3_DL_HL"},
22840 {"SLIMBUS_3_RX", NULL, "SLIMBUS3_DL_HL"},
22841 {"SLIMBUS4_DL_HL", "Switch", "SLIM4_DL_HL"},
22842 {"SLIMBUS_4_RX", NULL, "SLIMBUS4_DL_HL"},
22843 {"SLIMBUS6_DL_HL", "Switch", "SLIM0_DL_HL"},
22844 {"SLIMBUS_6_RX", NULL, "SLIMBUS6_DL_HL"},
Zhou Songcaa541d2019-02-19 18:37:47 +080022845 {"SCO_SLIM7_DL_HL", "Switch", "SLIM7_DL_HL"},
22846 {"SLIMBUS_7_RX", NULL, "SCO_SLIM7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022847 {"SLIM0_UL_HL", NULL, "SLIMBUS_0_TX"},
22848 {"SLIM1_UL_HL", NULL, "SLIMBUS_1_TX"},
22849 {"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
22850 {"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
22851 {"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053022852 {"WSA_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
22853 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_DL_HL"},
22854 {"CDC_DMA_UL_HL", NULL, "VA_CDC_DMA_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022855 {"RX_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
22856 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_DL_HL"},
22857 {"TX3_CDC_DMA_UL_HL", NULL, "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022858 {"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22859 {"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22860 {"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22861 {"LSM1 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22862 {"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22863 {"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22864 {"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22865 {"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022866 {"LSM1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22867 {"LSM1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022868 {"LSM1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022869 {"LSM1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022870 {"LSM1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022871 {"LSM1_UL_HL", NULL, "LSM1 Mixer"},
22872
22873 {"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22874 {"LSM2 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22875 {"LSM2 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22876 {"LSM2 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22877 {"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22878 {"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22879 {"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22880 {"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022881 {"LSM2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22882 {"LSM2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022883 {"LSM2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022884 {"LSM2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022885 {"LSM2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022886 {"LSM2_UL_HL", NULL, "LSM2 Mixer"},
22887
22888
22889 {"LSM3 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22890 {"LSM3 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22891 {"LSM3 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22892 {"LSM3 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22893 {"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22894 {"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22895 {"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22896 {"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022897 {"LSM3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22898 {"LSM3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022899 {"LSM3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022900 {"LSM3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022901 {"LSM3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022902 {"LSM3_UL_HL", NULL, "LSM3 Mixer"},
22903
22904
22905 {"LSM4 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22906 {"LSM4 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22907 {"LSM4 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22908 {"LSM4 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22909 {"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22910 {"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22911 {"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22912 {"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022913 {"LSM4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22914 {"LSM4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022915 {"LSM4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022916 {"LSM4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022917 {"LSM4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022918 {"LSM4_UL_HL", NULL, "LSM4 Mixer"},
22919
22920 {"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22921 {"LSM5 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22922 {"LSM5 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22923 {"LSM5 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22924 {"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22925 {"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22926 {"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22927 {"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022928 {"LSM5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22929 {"LSM5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022930 {"LSM5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022931 {"LSM5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022932 {"LSM5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022933 {"LSM5_UL_HL", NULL, "LSM5 Mixer"},
22934
22935 {"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22936 {"LSM6 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22937 {"LSM6 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22938 {"LSM6 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22939 {"LSM6 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22940 {"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022941 {"LSM6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22942 {"LSM6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022943 {"LSM6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022944 {"LSM6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022945 {"LSM6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022946 {"LSM6_UL_HL", NULL, "LSM6 Mixer"},
22947
22948 {"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22949 {"LSM7 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22950 {"LSM7 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22951 {"LSM7 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22952 {"LSM7 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22953 {"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022954 {"LSM7 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22955 {"LSM7 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022956 {"LSM7 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022957 {"LSM7 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022958 {"LSM7 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022959 {"LSM7_UL_HL", NULL, "LSM7 Mixer"},
22960
22961 {"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
22962 {"LSM8 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
22963 {"LSM8 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
22964 {"LSM8 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
22965 {"LSM8 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
22966 {"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053022967 {"LSM8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22968 {"LSM8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080022969 {"LSM8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053022970 {"LSM8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022971 {"LSM8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022972 {"LSM8_UL_HL", NULL, "LSM8 Mixer"},
22973
22974
22975 {"CPE_LSM_UL_HL", NULL, "BE_IN"},
22976 {"QCHAT_Tx Mixer", "PRI_TX_QCHAT", "PRI_I2S_TX"},
22977 {"QCHAT_Tx Mixer", "SLIM_0_TX_QCHAT", "SLIMBUS_0_TX"},
22978 {"QCHAT_Tx Mixer", "SLIM_7_TX_QCHAT", "SLIMBUS_7_TX"},
22979 {"QCHAT_Tx Mixer", "SLIM_8_TX_QCHAT", "SLIMBUS_8_TX"},
22980 {"QCHAT_Tx Mixer", "INTERNAL_BT_SCO_TX_QCHAT", "INT_BT_SCO_TX"},
22981 {"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
22982 {"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
22983 {"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
22984 {"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
22985 {"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022986 {"QCHAT_Tx Mixer", "QUIN_AUX_PCM_TX_QCHAT", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022987 {"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
22988 {"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
22989 {"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
22990 {"QCHAT_Tx Mixer", "INT3_MI2S_TX_QCHAT", "INT3_MI2S_TX"},
22991 {"QCHAT_Tx Mixer", "USB_AUDIO_TX_QCHAT", "USB_AUDIO_TX"},
22992 {"QCHAT_UL", NULL, "QCHAT_Tx Mixer"},
22993
22994 {"INT_FM_RX", NULL, "INTFM_DL_HL"},
22995 {"INTFM_UL_HL", NULL, "INT_FM_TX"},
22996 {"INTHFP_UL_HL", NULL, "HFP_PRI_AUX_UL_HL"},
22997 {"HFP_PRI_AUX_UL_HL", "Switch", "AUX_PCM_TX"},
22998 {"INTHFP_UL_HL", NULL, "HFP_AUX_UL_HL"},
22999 {"HFP_AUX_UL_HL", "Switch", "SEC_AUX_PCM_TX"},
23000 {"INTHFP_UL_HL", NULL, "HFP_INT_UL_HL"},
23001 {"HFP_INT_UL_HL", "Switch", "INT_BT_SCO_TX"},
23002 {"SLIM7_UL_HL", NULL, "HFP_SLIM7_UL_HL"},
23003 {"HFP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
23004 {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"},
23005 {"AUX_PCM_RX", NULL, "INTHFP_DL_HL"},
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080023006 {"SLIM7_UL_HL", NULL, "A2DP_SLIM7_UL_HL"},
23007 {"A2DP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080023008 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023009 {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080023010 {"SEC_AUXPCM_UL_HL", NULL, "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023011 {"MI2S_RX", NULL, "MI2S_DL_HL"},
23012 {"MI2S_UL_HL", NULL, "MI2S_TX"},
23013 {"PCM_RX_DL_HL", "Switch", "SLIM0_DL_HL"},
23014 {"PCM_RX", NULL, "PCM_RX_DL_HL"},
23015
23016 /* connect to INT4_MI2S_DL_HL since same pcm_id */
23017 {"INT0_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
23018 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_DL_HL"},
23019 {"INT4_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
23020 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_DL_HL"},
23021 {"PRI_MI2S_RX_DL_HL", "Switch", "PRI_MI2S_DL_HL"},
23022 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_DL_HL"},
23023 {"SEC_MI2S_RX_DL_HL", "Switch", "SEC_MI2S_DL_HL"},
23024 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_DL_HL"},
23025 {"TERT_MI2S_RX_DL_HL", "Switch", "TERT_MI2S_DL_HL"},
23026 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_DL_HL"},
23027
23028 {"QUAT_MI2S_RX_DL_HL", "Switch", "QUAT_MI2S_DL_HL"},
23029 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053023030 {"QUIN_MI2S_RX_DL_HL", "Switch", "QUIN_MI2S_DL_HL"},
23031 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023032 {"MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
23033 {"INT3_MI2S_UL_HL", NULL, "INT3_MI2S_TX"},
23034 {"TERT_MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
23035 {"SEC_I2S_RX", NULL, "SEC_I2S_DL_HL"},
23036 {"PRI_MI2S_UL_HL", NULL, "PRI_MI2S_TX"},
23037 {"SEC_MI2S_UL_HL", NULL, "SEC_MI2S_TX"},
23038 {"SEC_MI2S_RX", NULL, "SEC_MI2S_DL_HL"},
23039 {"PRI_MI2S_RX", NULL, "PRI_MI2S_DL_HL"},
23040 {"TERT_MI2S_RX", NULL, "TERT_MI2S_DL_HL"},
23041 {"QUAT_MI2S_UL_HL", NULL, "QUAT_MI2S_TX"},
23042
23043 {"PRI_TDM_TX_0_UL_HL", NULL, "PRI_TDM_TX_0"},
23044 {"PRI_TDM_TX_1_UL_HL", NULL, "PRI_TDM_TX_1"},
23045 {"PRI_TDM_TX_2_UL_HL", NULL, "PRI_TDM_TX_2"},
23046 {"PRI_TDM_TX_3_UL_HL", NULL, "PRI_TDM_TX_3"},
23047 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_DL_HL"},
23048 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_DL_HL"},
23049 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_DL_HL"},
23050 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_DL_HL"},
23051 {"SEC_TDM_TX_0_UL_HL", NULL, "SEC_TDM_TX_0"},
23052 {"SEC_TDM_TX_1_UL_HL", NULL, "SEC_TDM_TX_1"},
23053 {"SEC_TDM_TX_2_UL_HL", NULL, "SEC_TDM_TX_2"},
23054 {"SEC_TDM_TX_3_UL_HL", NULL, "SEC_TDM_TX_3"},
23055 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0_DL_HL"},
23056 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
23057 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
23058 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
Derek Chenfdcc0982018-10-02 15:14:03 -070023059 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023060 {"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
23061 {"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
23062 {"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
23063 {"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070023064 {"TERT_TDM_TX_7_UL_HL", NULL, "TERT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023065 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
23066 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
23067 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
23068 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3_DL_HL"},
23069 {"QUAT_TDM_TX_0_UL_HL", NULL, "QUAT_TDM_TX_0"},
23070 {"QUAT_TDM_TX_1_UL_HL", NULL, "QUAT_TDM_TX_1"},
23071 {"QUAT_TDM_TX_2_UL_HL", NULL, "QUAT_TDM_TX_2"},
23072 {"QUAT_TDM_TX_3_UL_HL", NULL, "QUAT_TDM_TX_3"},
Derek Chenb9048cb2019-03-07 14:54:13 -050023073 {"QUAT_TDM_TX_7_UL_HL", NULL, "QUAT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023074 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0_DL_HL"},
23075 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1_DL_HL"},
23076 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_DL_HL"},
23077 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3_DL_HL"},
Derek Chenb9048cb2019-03-07 14:54:13 -050023078 {"QUAT_TDM_RX_7", NULL, "QUAT_TDM_RX_7_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053023079 {"QUIN_TDM_TX_0_UL_HL", NULL, "QUIN_TDM_TX_0"},
23080 {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"},
23081 {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"},
23082 {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"},
23083 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"},
23084 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"},
23085 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"},
23086 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023087
23088 {"PRI_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23089 {"PRI_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23090 {"PRI_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23091 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23092 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23093 {"PRI_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23094 {"PRI_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23095 {"PRI_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23096 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
23097 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
23098 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
23099 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
23100 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23101 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23102 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23103 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023104 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23105 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23106 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23107 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023108 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Port Mixer"},
23109
23110 {"PRI_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23111 {"PRI_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23112 {"PRI_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23113 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23114 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23115 {"PRI_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23116 {"PRI_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23117 {"PRI_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23118 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
23119 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
23120 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
23121 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
23122 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23123 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23124 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23125 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023126 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23127 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23128 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23129 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023130 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Port Mixer"},
23131
23132 {"PRI_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23133 {"PRI_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23134 {"PRI_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23135 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23136 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23137 {"PRI_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23138 {"PRI_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23139 {"PRI_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23140 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
23141 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
23142 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
23143 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
23144 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23145 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23146 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23147 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023148 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23149 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23150 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23151 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023152 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Port Mixer"},
23153
23154 {"PRI_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23155 {"PRI_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23156 {"PRI_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23157 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23158 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23159 {"PRI_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23160 {"PRI_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23161 {"PRI_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23162 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
23163 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
23164 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
23165 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
23166 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23167 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23168 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23169 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023170 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23171 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23172 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23173 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023174 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Port Mixer"},
23175
23176 {"SEC_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23177 {"SEC_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23178 {"SEC_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23179 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23180 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23181 {"SEC_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23182 {"SEC_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23183 {"SEC_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23184 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
23185 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
23186 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
23187 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
23188 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23189 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23190 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23191 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023192 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23193 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23194 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23195 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023196 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Port Mixer"},
23197
23198 {"SEC_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23199 {"SEC_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23200 {"SEC_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23201 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23202 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23203 {"SEC_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23204 {"SEC_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23205 {"SEC_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23206 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
23207 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
23208 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
23209 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
23210 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23211 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23212 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23213 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023214 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23215 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23216 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23217 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023218 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Port Mixer"},
23219
23220 {"SEC_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23221 {"SEC_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23222 {"SEC_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23223 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23224 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23225 {"SEC_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23226 {"SEC_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23227 {"SEC_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23228 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
23229 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
23230 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
23231 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
23232 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23233 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23234 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23235 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023236 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23237 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23238 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23239 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023240 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Port Mixer"},
23241
23242 {"SEC_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23243 {"SEC_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23244 {"SEC_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23245 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23246 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23247 {"SEC_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23248 {"SEC_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23249 {"SEC_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23250 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
23251 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
23252 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
23253 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
23254 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23255 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23256 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23257 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023258 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23259 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23260 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23261 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023262 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
23263
Derek Chenfdcc0982018-10-02 15:14:03 -070023264 {"SEC_TDM_RX_7 Port Mixer", "TERT_TDM_TX_7", "TERT_TDM_TX_7"},
23265 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7 Port Mixer"},
23266
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023267 {"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23268 {"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23269 {"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23270 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23271 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23272 {"TERT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23273 {"TERT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23274 {"TERT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23275 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23276 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23277 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23278 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23279 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23280 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23281 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23282 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023283 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23284 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23285 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23286 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023287 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Port Mixer"},
23288
23289 {"TERT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23290 {"TERT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23291 {"TERT_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23292 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23293 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23294 {"TERT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23295 {"TERT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23296 {"TERT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23297 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23298 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23299 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23300 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23301 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23302 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23303 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23304 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023305 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23306 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23307 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23308 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023309 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Port Mixer"},
23310
23311 {"TERT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23312 {"TERT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23313 {"TERT_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23314 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23315 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23316 {"TERT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23317 {"TERT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23318 {"TERT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23319 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23320 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23321 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23322 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23323 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23324 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23325 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23326 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023327 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23328 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23329 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23330 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023331 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Port Mixer"},
23332
23333 {"TERT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23334 {"TERT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23335 {"TERT_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23336 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23337 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23338 {"TERT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23339 {"TERT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23340 {"TERT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23341 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23342 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23343 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23344 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23345 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23346 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23347 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23348 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023349 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23350 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23351 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23352 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023353 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Port Mixer"},
23354
23355 {"QUAT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23356 {"QUAT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23357 {"QUAT_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23358 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23359 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23360 {"QUAT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23361 {"QUAT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23362 {"QUAT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23363 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23364 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23365 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23366 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23367 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23368 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23369 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23370 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023371 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23372 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23373 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23374 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023375 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Port Mixer"},
23376
23377 {"QUAT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23378 {"QUAT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23379 {"QUAT_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23380 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23381 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23382 {"QUAT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23383 {"QUAT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23384 {"QUAT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23385 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23386 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23387 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23388 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23389 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23390 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23391 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23392 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023393 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23394 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23395 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23396 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023397 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Port Mixer"},
23398
23399 {"QUAT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23400 {"QUAT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23401 {"QUAT_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23402 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23403 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23404 {"QUAT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23405 {"QUAT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23406 {"QUAT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23407 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23408 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23409 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23410 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23411 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23412 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23413 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23414 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023415 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23416 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23417 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23418 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023419 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Port Mixer"},
23420
23421 {"QUAT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23422 {"QUAT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23423 {"QUAT_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23424 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23425 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23426 {"QUAT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23427 {"QUAT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23428 {"QUAT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23429 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23430 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23431 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23432 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23433 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23434 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23435 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23436 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053023437 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23438 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23439 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23440 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023441 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Port Mixer"},
23442
Derek Chenb9048cb2019-03-07 14:54:13 -050023443 {"QUAT_TDM_RX_7 Port Mixer", "QUAT_TDM_TX_7", "QUAT_TDM_TX_7"},
23444 {"QUAT_TDM_RX_7", NULL, "QUAT_TDM_RX_7 Port Mixer"},
23445
Rohit Kumara5077932017-09-10 22:05:05 +053023446 {"QUIN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23447 {"QUIN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23448 {"QUIN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23449 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23450 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23451 {"QUIN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23452 {"QUIN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23453 {"QUIN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23454 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23455 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23456 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23457 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23458 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23459 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23460 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23461 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
23462 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23463 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23464 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23465 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053023466 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053023467
23468 {"QUIN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23469 {"QUIN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23470 {"QUIN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23471 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23472 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23473 {"QUIN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23474 {"QUIN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23475 {"QUIN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23476 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23477 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23478 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23479 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23480 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23481 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23482 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23483 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
23484 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23485 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23486 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23487 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053023488 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053023489
23490 {"QUIN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23491 {"QUIN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23492 {"QUIN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23493 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23494 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23495 {"QUIN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23496 {"QUIN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23497 {"QUIN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23498 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23499 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23500 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23501 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23502 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23503 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23504 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23505 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
23506 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23507 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23508 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23509 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053023510 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053023511
23512 {"QUIN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23513 {"QUIN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23514 {"QUIN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23515 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23516 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23517 {"QUIN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23518 {"QUIN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23519 {"QUIN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23520 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
23521 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
23522 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
23523 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
23524 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
23525 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
23526 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
23527 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
23528 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
23529 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
23530 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
23531 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053023532 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053023533
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023534 {"INT0_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23535 {"INT0_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23536 {"INT0_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23537 {"INT0_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023538 {"INT0_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023539 {"INT0_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
23540 {"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23541 {"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23542 {"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023543 {"INT0_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023544 {"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23545 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
23546
23547 {"INT4_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23548 {"INT4_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23549 {"INT4_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23550 {"INT4_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023551 {"INT4_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023552 {"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
23553 {"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23554 {"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023555 {"INT4_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023556 {"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23557 {"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23558 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
23559
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053023560 {"WSA_CDC_DMA_RX_0 Port Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
23561 {"WSA_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080023562 {"WSA_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080023563 {"WSA_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Meng Wangbbf77922019-03-01 13:24:14 +080023564 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Port Mixer"},
23565
23566 {"RX_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
23567 {"RX_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080023568 {"RX_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Meng Wangbbf77922019-03-01 13:24:14 +080023569 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Port Mixer"},
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053023570
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023571 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23572 {"SLIMBUS_0_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23573 {"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23574 {"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23575 {"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023576 {"SLIMBUS_0_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023577 {"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23578 {"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23579 {"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
23580 {"SLIMBUS_0_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023581 {"SLIMBUS_0_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023582 {"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23583 {"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23584 {"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23585 {"SLIMBUS_0_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23586 {"SLIMBUS_0_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023587 {"SLIMBUS_0_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023588 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23589 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
23590 {"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23591 {"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23592 {"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
23593 {"USB_AUDIO_RX Port Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
23594 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Port Mixer"},
23595 {"USB_DL_HL", "Switch", "USBAUDIO_DL_HL"},
23596 {"USB_AUDIO_RX", NULL, "USB_DL_HL"},
23597 {"USBAUDIO_UL_HL", NULL, "USB_AUDIO_TX"},
23598
23599
23600 {"AUX_PCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23601 {"AUX_PCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23602 {"AUX_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23603 {"AUX_PCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23604 {"AUX_PCM_RX Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080023605 {"AUX_PCM_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023606 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Port Mixer"},
23607
23608 {"SEC_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23609 {"SEC_AUXPCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23610 {"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080023611 {"SEC_AUXPCM_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023612 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
23613
23614 {"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23615 {"TERT_AUXPCM_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
23616 {"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23617 {"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
23618
23619 {"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23620 {"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
23621 {"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23622 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
23623
Rohit Kumara5077932017-09-10 22:05:05 +053023624 {"QUIN_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23625 {"QUIN_AUXPCM_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
23626 {"QUIN_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23627 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUXPCM_RX Port Mixer"},
23628
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023629 {"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
23630 {"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23631 {"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23632 {"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
23633 {"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23634 {"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23635 {"Voice Stub Tx Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
23636 {"Voice Stub Tx Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023637 {"Voice Stub Tx Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023638 {"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
23639 {"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23640 {"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23641 {"Voice Stub Tx Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
23642 {"Voice Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23643 {"Voice Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23644 {"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
23645 {"Voice Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23646 {"Voice Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23647 {"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
23648 {"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
23649
23650 {"VoLTE Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
23651 {"VoLTE Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23652 {"VoLTE Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
23653 {"VoLTE Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23654 {"VoLTE Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23655 {"VoLTE Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
23656 {"VoLTE Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23657 {"VoLTE Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23658 {"VoLTE Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
23659 {"VoLTE Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23660 {"VoLTE Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Josh Kirsch9d769302018-04-10 17:25:42 -070023661 {"VoLTE Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023662 {"VOLTE_STUB_UL", NULL, "VoLTE Stub Tx Mixer"},
23663
23664 {"Voice2 Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
23665 {"Voice2 Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23666 {"Voice2 Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
23667 {"Voice2 Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23668 {"Voice2 Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23669 {"Voice2 Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
23670 {"Voice2 Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23671 {"Voice2 Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23672 {"Voice2 Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
23673 {"Voice2 Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23674 {"Voice2 Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Josh Kirsch9d769302018-04-10 17:25:42 -070023675 {"Voice2 Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023676 {"VOICE2_STUB_UL", NULL, "Voice2 Stub Tx Mixer"},
23677
kunleizdf5a00a2017-11-27 15:27:36 +080023678 {"STUB_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
23679 {"STUB_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023680 {"STUB_RX", NULL, "STUB_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080023681
23682 {"SLIMBUS_1_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
23683 {"SLIMBUS_1_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023684 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080023685
23686 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
23687 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023688 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
23689
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023690 {"SLIM_7_RX_Voice Mixer", "Voip", "VOIP_DL"},
23691 {"SLIM_7_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023692 {"SLIM_7_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
23693 {"SLIM_7_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
23694 {"SLIM_7_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
23695 {"SLIMBUS_7_RX", NULL, "SLIM_7_RX_Voice Mixer"},
23696
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023697 {"SLIM_8_RX_Voice Mixer", "Voip", "VOIP_DL"},
23698 {"SLIM_8_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023699 {"SLIM_8_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
23700 {"SLIM_8_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
23701 {"SLIM_8_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
23702 {"SLIMBUS_8_RX", NULL, "SLIM_8_RX_Voice Mixer"},
23703
23704 {"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23705 {"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
23706 {"SLIMBUS_1_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23707 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
23708 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23709 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23710 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
23711 {"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
23712 {"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23713 {"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
23714 {"SLIMBUS_3_RX Port Mixer", "AUX_PCM_RX", "AUX_PCM_RX"},
23715 {"SLIMBUS_3_RX Port Mixer", "SLIM_0_RX", "SLIMBUS_0_RX"},
23716 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
23717
23718 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23719 {"SLIMBUS_6_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23720 {"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23721 {"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
23722 {"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023723 {"SLIMBUS_6_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023724 {"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23725 {"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
23726 {"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23727 {"SLIMBUS_6_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23728 {"SLIMBUS_6_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23729 {"SLIMBUS_6_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23730 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23731 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Port Mixer"},
23732
23733 {"HDMI_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23734 {"HDMI", NULL, "HDMI_RX Port Mixer"},
23735
23736 {"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23737 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
23738
Karthikeyan Mani57550082018-05-03 18:43:58 -070023739 {"DISPLAY_PORT_RX1 Port Mixer", "MI2S_TX", "MI2S_TX"},
23740 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1 Port Mixer"},
23741
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023742 {"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23743 {"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
23744
23745 {"MI2S_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
23746 {"MI2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
23747 {"MI2S_RX", NULL, "MI2S_RX Port Mixer"},
23748
23749 {"PRI_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23750 {"PRI_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23751 {"PRI_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23752 {"PRI_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023753 {"PRI_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023754 {"PRI_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23755 {"PRI_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23756 {"PRI_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
23757 {"PRI_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080023758 {"PRI_MI2S_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023759 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Port Mixer"},
23760
23761 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23762 {"SEC_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23763 {"SEC_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23764 {"SEC_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023765 {"SEC_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023766 {"SEC_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23767 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23768 {"SEC_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080023769 {"SEC_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023770 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Port Mixer"},
23771
23772 {"TERT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23773 {"TERT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23774 {"TERT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23775 {"TERT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023776 {"TERT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023777 {"TERT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23778 {"TERT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23779 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Port Mixer"},
23780
23781 {"QUAT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23782 {"QUAT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23783 {"QUAT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23784 {"QUAT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023785 {"QUAT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023786 {"QUAT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23787 {"QUAT_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
23788 {"QUAT_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
23789 {"QUAT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23790 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Port Mixer"},
23791
Rohit Kumara5077932017-09-10 22:05:05 +053023792 {"QUIN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
23793 {"QUIN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
23794 {"QUIN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
23795 {"QUIN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
23796 {"QUIN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
23797 {"QUIN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
23798 {"QUIN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
23799 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Port Mixer"},
23800
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023801 /* Backend Enablement */
23802
23803 {"BE_OUT", NULL, "PRI_I2S_RX"},
23804 {"BE_OUT", NULL, "SEC_I2S_RX"},
23805 {"BE_OUT", NULL, "SLIMBUS_0_RX"},
23806 {"BE_OUT", NULL, "SLIMBUS_1_RX"},
23807 {"BE_OUT", NULL, "SLIMBUS_2_RX"},
23808 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
23809 {"BE_OUT", NULL, "SLIMBUS_4_RX"},
23810 {"BE_OUT", NULL, "SLIMBUS_5_RX"},
23811 {"BE_OUT", NULL, "SLIMBUS_6_RX"},
23812 {"BE_OUT", NULL, "SLIMBUS_7_RX"},
23813 {"BE_OUT", NULL, "SLIMBUS_8_RX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053023814 {"BE_OUT", NULL, "SLIMBUS_9_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023815 {"BE_OUT", NULL, "USB_AUDIO_RX"},
23816 {"BE_OUT", NULL, "HDMI"},
23817 {"BE_OUT", NULL, "DISPLAY_PORT"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070023818 {"BE_OUT", NULL, "DISPLAY_PORT1"},
Ralf Herzc8701f72018-06-20 11:37:35 +020023819 {"BE_OUT", NULL, "PRI_SPDIF_RX"},
23820 {"BE_OUT", NULL, "SEC_SPDIF_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023821 {"BE_OUT", NULL, "MI2S_RX"},
23822 {"BE_OUT", NULL, "QUAT_MI2S_RX"},
23823 {"BE_OUT", NULL, "QUIN_MI2S_RX"},
23824 {"BE_OUT", NULL, "TERT_MI2S_RX"},
23825 {"BE_OUT", NULL, "SEC_MI2S_RX"},
23826 {"BE_OUT", NULL, "SEC_MI2S_RX_SD1"},
23827 {"BE_OUT", NULL, "PRI_MI2S_RX"},
23828 {"BE_OUT", NULL, "INT0_MI2S_RX"},
23829 {"BE_OUT", NULL, "INT4_MI2S_RX"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023830 {"BE_OUT", NULL, "INT2_MI2S_RX"},
23831 {"BE_OUT", NULL, "INT3_MI2S_RX"},
23832 {"BE_OUT", NULL, "INT5_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023833 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
23834 {"BE_OUT", NULL, "INT_BT_A2DP_RX"},
23835 {"BE_OUT", NULL, "INT_FM_RX"},
23836 {"BE_OUT", NULL, "PCM_RX"},
23837 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
23838 {"BE_OUT", NULL, "AUX_PCM_RX"},
23839 {"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
23840 {"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
23841 {"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
Rohit Kumara5077932017-09-10 22:05:05 +053023842 {"BE_OUT", NULL, "QUIN_AUX_PCM_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023843 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
23844 {"BE_OUT", NULL, "INT_FM_RX"},
23845 {"BE_OUT", NULL, "PCM_RX"},
23846 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
23847 {"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
23848 {"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
23849 {"BE_OUT", NULL, "PRI_TDM_RX_0"},
23850 {"BE_OUT", NULL, "PRI_TDM_RX_1"},
23851 {"BE_OUT", NULL, "PRI_TDM_RX_2"},
23852 {"BE_OUT", NULL, "PRI_TDM_RX_3"},
23853 {"BE_OUT", NULL, "SEC_TDM_RX_0"},
23854 {"BE_OUT", NULL, "SEC_TDM_RX_1"},
23855 {"BE_OUT", NULL, "SEC_TDM_RX_2"},
23856 {"BE_OUT", NULL, "SEC_TDM_RX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070023857 {"BE_OUT", NULL, "SEC_TDM_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023858 {"BE_OUT", NULL, "TERT_TDM_RX_0"},
23859 {"BE_OUT", NULL, "TERT_TDM_RX_1"},
23860 {"BE_OUT", NULL, "TERT_TDM_RX_2"},
23861 {"BE_OUT", NULL, "TERT_TDM_RX_3"},
23862 {"BE_OUT", NULL, "TERT_TDM_RX_4"},
23863 {"BE_OUT", NULL, "QUAT_TDM_RX_0"},
23864 {"BE_OUT", NULL, "QUAT_TDM_RX_1"},
23865 {"BE_OUT", NULL, "QUAT_TDM_RX_2"},
23866 {"BE_OUT", NULL, "QUAT_TDM_RX_3"},
Derek Chenb9048cb2019-03-07 14:54:13 -050023867 {"BE_OUT", NULL, "QUAT_TDM_RX_7"},
Rohit Kumara5077932017-09-10 22:05:05 +053023868 {"BE_OUT", NULL, "QUIN_TDM_RX_0"},
23869 {"BE_OUT", NULL, "QUIN_TDM_RX_1"},
23870 {"BE_OUT", NULL, "QUIN_TDM_RX_2"},
23871 {"BE_OUT", NULL, "QUIN_TDM_RX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023872 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_0"},
23873 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023874 {"BE_OUT", NULL, "RX_CDC_DMA_RX_0"},
23875 {"BE_OUT", NULL, "RX_CDC_DMA_RX_1"},
23876 {"BE_OUT", NULL, "RX_CDC_DMA_RX_2"},
23877 {"BE_OUT", NULL, "RX_CDC_DMA_RX_3"},
23878 {"BE_OUT", NULL, "RX_CDC_DMA_RX_4"},
23879 {"BE_OUT", NULL, "RX_CDC_DMA_RX_5"},
23880 {"BE_OUT", NULL, "RX_CDC_DMA_RX_6"},
23881 {"BE_OUT", NULL, "RX_CDC_DMA_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023882
23883 {"PRI_I2S_TX", NULL, "BE_IN"},
23884 {"MI2S_TX", NULL, "BE_IN"},
23885 {"QUAT_MI2S_TX", NULL, "BE_IN"},
23886 {"QUIN_MI2S_TX", NULL, "BE_IN"},
23887 {"PRI_MI2S_TX", NULL, "BE_IN"},
23888 {"TERT_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023889 {"INT0_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023890 {"INT2_MI2S_TX", NULL, "BE_IN"},
23891 {"INT3_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023892 {"INT4_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023893 {"INT5_MI2S_TX", NULL, "BE_IN"},
23894 {"SEC_MI2S_TX", NULL, "BE_IN"},
23895 {"SENARY_MI2S_TX", NULL, "BE_IN" },
23896 {"SLIMBUS_0_TX", NULL, "BE_IN" },
23897 {"SLIMBUS_1_TX", NULL, "BE_IN" },
23898 {"SLIMBUS_3_TX", NULL, "BE_IN" },
23899 {"SLIMBUS_4_TX", NULL, "BE_IN" },
23900 {"SLIMBUS_5_TX", NULL, "BE_IN" },
23901 {"SLIMBUS_6_TX", NULL, "BE_IN" },
23902 {"SLIMBUS_7_TX", NULL, "BE_IN" },
23903 {"SLIMBUS_8_TX", NULL, "BE_IN" },
Surendar Karka3ef3d812018-09-28 18:52:35 +053023904 {"SLIMBUS_9_TX", NULL, "BE_IN" },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023905 {"USB_AUDIO_TX", NULL, "BE_IN" },
23906 {"INT_BT_SCO_TX", NULL, "BE_IN"},
23907 {"INT_FM_TX", NULL, "BE_IN"},
23908 {"PCM_TX", NULL, "BE_IN"},
23909 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
23910 {"BE_OUT", NULL, "STUB_RX"},
23911 {"STUB_TX", NULL, "BE_IN"},
23912 {"STUB_1_TX", NULL, "BE_IN"},
23913 {"BE_OUT", NULL, "AUX_PCM_RX"},
23914 {"AUX_PCM_TX", NULL, "BE_IN"},
23915 {"SEC_AUX_PCM_TX", NULL, "BE_IN"},
23916 {"TERT_AUX_PCM_TX", NULL, "BE_IN"},
23917 {"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053023918 {"QUIN_AUX_PCM_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023919 {"INCALL_RECORD_TX", NULL, "BE_IN"},
23920 {"INCALL_RECORD_RX", NULL, "BE_IN"},
23921 {"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
23922 {"SLIM0_RX_VI_FB_RCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023923 {"WSA_RX_0_VI_FB_LCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
23924 {"WSA_RX_0_VI_FB_RCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023925 {"PRI_MI2S_RX_VI_FB_MUX", "SENARY_TX", "SENARY_TX"},
23926 {"INT4_MI2S_RX_VI_FB_MONO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
23927 {"INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
23928 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_LCH_MUX"},
23929 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_RCH_MUX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023930 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_LCH_MUX"},
23931 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_RCH_MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023932 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_VI_FB_MUX"},
23933 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_MONO_CH_MUX"},
23934 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_STEREO_CH_MUX"},
23935 {"PRI_TDM_TX_0", NULL, "BE_IN"},
23936 {"PRI_TDM_TX_1", NULL, "BE_IN"},
23937 {"PRI_TDM_TX_2", NULL, "BE_IN"},
23938 {"PRI_TDM_TX_3", NULL, "BE_IN"},
23939 {"SEC_TDM_TX_0", NULL, "BE_IN"},
23940 {"SEC_TDM_TX_1", NULL, "BE_IN"},
23941 {"SEC_TDM_TX_2", NULL, "BE_IN"},
23942 {"SEC_TDM_TX_3", NULL, "BE_IN"},
23943 {"TERT_TDM_TX_0", NULL, "BE_IN"},
23944 {"TERT_TDM_TX_1", NULL, "BE_IN"},
23945 {"TERT_TDM_TX_2", NULL, "BE_IN"},
23946 {"TERT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenfdcc0982018-10-02 15:14:03 -070023947 {"TERT_TDM_TX_7", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023948 {"QUAT_TDM_TX_0", NULL, "BE_IN"},
23949 {"QUAT_TDM_TX_1", NULL, "BE_IN"},
23950 {"QUAT_TDM_TX_2", NULL, "BE_IN"},
23951 {"QUAT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenb9048cb2019-03-07 14:54:13 -050023952 {"QUAT_TDM_TX_7", NULL, "BE_IN"},
Surendar Karkad47fda42018-05-20 19:21:10 +053023953 {"AFE_LOOPBACK_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053023954 {"QUIN_TDM_TX_0", NULL, "BE_IN"},
23955 {"QUIN_TDM_TX_1", NULL, "BE_IN"},
23956 {"QUIN_TDM_TX_2", NULL, "BE_IN"},
23957 {"QUIN_TDM_TX_3", NULL, "BE_IN"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023958 {"WSA_CDC_DMA_TX_0", NULL, "BE_IN"},
23959 {"WSA_CDC_DMA_TX_1", NULL, "BE_IN"},
23960 {"WSA_CDC_DMA_TX_2", NULL, "BE_IN"},
23961 {"VA_CDC_DMA_TX_0", NULL, "BE_IN"},
23962 {"VA_CDC_DMA_TX_1", NULL, "BE_IN"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080023963 {"VA_CDC_DMA_TX_2", NULL, "BE_IN"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023964 {"TX_CDC_DMA_TX_0", NULL, "BE_IN"},
23965 {"TX_CDC_DMA_TX_1", NULL, "BE_IN"},
23966 {"TX_CDC_DMA_TX_2", NULL, "BE_IN"},
23967 {"TX_CDC_DMA_TX_3", NULL, "BE_IN"},
23968 {"TX_CDC_DMA_TX_4", NULL, "BE_IN"},
23969 {"TX_CDC_DMA_TX_5", NULL, "BE_IN"},
Ralf Herzc8701f72018-06-20 11:37:35 +020023970 {"PRI_SPDIF_TX", NULL, "BE_IN"},
23971 {"SEC_SPDIF_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023972};
23973
23974static int msm_pcm_routing_hw_params(struct snd_pcm_substream *substream,
23975 struct snd_pcm_hw_params *params)
23976{
23977 struct snd_soc_pcm_runtime *rtd = substream->private_data;
23978 unsigned int be_id = rtd->dai_link->id;
23979
23980 if (be_id >= MSM_BACKEND_DAI_MAX) {
23981 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
23982 return -EINVAL;
23983 }
23984
23985 mutex_lock(&routing_lock);
23986 msm_bedais[be_id].sample_rate = params_rate(params);
23987 msm_bedais[be_id].channel = params_channels(params);
23988 msm_bedais[be_id].format = params_format(params);
23989 pr_debug("%s: BE Sample Rate (%d) format (%d) BE id %d\n",
23990 __func__, msm_bedais[be_id].sample_rate,
23991 msm_bedais[be_id].format, be_id);
23992 mutex_unlock(&routing_lock);
23993 return 0;
23994}
23995
23996static int msm_pcm_routing_close(struct snd_pcm_substream *substream)
23997{
23998 struct snd_soc_pcm_runtime *rtd = substream->private_data;
23999 unsigned int be_id = rtd->dai_link->id;
24000 int i, session_type, path_type, topology;
24001 struct msm_pcm_routing_bdai_data *bedai;
24002 struct msm_pcm_routing_fdai_data *fdai;
24003
24004 pr_debug("%s: substream->pcm->id:%s\n",
24005 __func__, substream->pcm->id);
24006
24007 if (be_id >= MSM_BACKEND_DAI_MAX) {
24008 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
24009 return -EINVAL;
24010 }
24011
24012 bedai = &msm_bedais[be_id];
24013 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
24014 0 : 1);
24015 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
24016 path_type = ADM_PATH_PLAYBACK;
24017 else
24018 path_type = ADM_PATH_LIVE_REC;
24019
24020 mutex_lock(&routing_lock);
24021 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
24022 if (!is_mm_lsm_fe_id(i))
24023 continue;
24024 fdai = &fe_dai_map[i][session_type];
24025 if (fdai->strm_id != INVALID_SESSION) {
24026 int idx;
24027 int port_id;
24028 unsigned long copp =
24029 session_copp_map[i][session_type][be_id];
24030 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
24031 if (test_bit(idx, &copp))
24032 break;
Vignesh Kulothungane59d3152018-10-10 14:19:59 -070024033
24034 if (idx >= MAX_COPPS_PER_PORT) {
24035 pr_debug("%s: copp idx is invalid, exiting\n",
24036 __func__);
24037 continue;
24038 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024039 fdai->be_srate = bedai->sample_rate;
Surendar Karkae7507512018-07-20 15:46:54 +053024040 port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024041 topology = adm_get_topology_for_port_copp_idx(port_id,
24042 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070024043 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +053024044 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024045 pr_debug("%s: copp:%ld,idx bit fe:%d, type:%d,be:%d topology=0x%x\n",
24046 __func__, copp, i, session_type, be_id,
24047 topology);
24048 clear_bit(idx,
24049 &session_copp_map[i][session_type][be_id]);
24050 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053024051 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053024052 msm_pcm_routing_deinit_pp(port_id,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024053 topology);
24054 }
24055 }
24056
24057 bedai->active = 0;
24058 bedai->sample_rate = 0;
24059 bedai->channel = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024060 mutex_unlock(&routing_lock);
24061
24062 return 0;
24063}
24064
24065static int msm_pcm_routing_prepare(struct snd_pcm_substream *substream)
24066{
24067 struct snd_soc_pcm_runtime *rtd = substream->private_data;
24068 unsigned int be_id = rtd->dai_link->id;
24069 int i, path_type, topology;
24070 int session_type = INVALID_SESSION;
24071 struct msm_pcm_routing_bdai_data *bedai;
24072 u32 channels, sample_rate;
24073 uint16_t bits_per_sample = 16, voc_path_type;
24074 struct msm_pcm_routing_fdai_data *fdai;
24075 u32 session_id;
24076 struct media_format_info voc_be_media_format;
24077 bool is_lsm;
24078
24079 pr_debug("%s: substream->pcm->id:%s\n",
24080 __func__, substream->pcm->id);
24081
24082 if (be_id >= MSM_BACKEND_DAI_MAX) {
24083 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
24084 return -EINVAL;
24085 }
24086
24087 bedai = &msm_bedais[be_id];
24088
24089 mutex_lock(&routing_lock);
24090 if (bedai->active == 1)
24091 goto done; /* Ignore prepare if back-end already active */
24092
24093 /* AFE port is not active at this point. However, still
24094 * go ahead setting active flag under the notion that
24095 * QDSP6 is able to handle ADM starting before AFE port
24096 * is started.
24097 */
24098 bedai->active = 1;
24099
24100 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
24101 if (!(is_mm_lsm_fe_id(i) &&
24102 route_check_fe_id_adm_support(i)))
24103 continue;
24104
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053024105 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
24106 SESSION_TYPE_RX : SESSION_TYPE_TX;
24107 fdai = &fe_dai_map[i][session_type];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024108 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053024109 if (fdai->passthr_mode != LEGACY_PCM)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024110 path_type = ADM_PATH_COMPRESSED_RX;
24111 else
24112 path_type = ADM_PATH_PLAYBACK;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024113 } else {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053024114 if ((fdai->passthr_mode != LEGACY_PCM) &&
24115 (fdai->passthr_mode != LISTEN))
Ralf Herzc8701f72018-06-20 11:37:35 +020024116 path_type = ADM_PATH_COMPRESSED_TX;
24117 else
24118 path_type = ADM_PATH_LIVE_REC;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024119 }
24120
24121 is_lsm = (i >= MSM_FRONTEND_DAI_LSM1) &&
24122 (i <= MSM_FRONTEND_DAI_LSM8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024123 if (fdai->strm_id != INVALID_SESSION) {
24124 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +053024125 int port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024126
24127 if (session_type == SESSION_TYPE_TX &&
24128 fdai->be_srate &&
24129 (fdai->be_srate != bedai->sample_rate)) {
24130 pr_debug("%s: flush strm %d diff BE rates\n",
24131 __func__,
24132 fdai->strm_id);
24133
24134 if (fdai->event_info.event_func)
24135 fdai->event_info.event_func(
24136 MSM_PCM_RT_EVT_BUF_RECFG,
24137 fdai->event_info.priv_data);
24138 fdai->be_srate = 0; /* might not need it */
24139 }
24140 bits_per_sample = msm_routing_get_bit_width(
24141 bedai->format);
24142
24143 app_type =
24144 fe_dai_app_type_cfg[i][session_type][be_id].app_type;
24145 if (app_type && is_lsm) {
24146 app_type_idx =
24147 msm_pcm_routing_get_lsm_app_type_idx(app_type);
24148 sample_rate =
24149 fe_dai_app_type_cfg[i][session_type][be_id]
24150 .sample_rate;
24151 bits_per_sample =
24152 lsm_app_type_cfg[app_type_idx].bit_width;
24153 } else if (app_type) {
24154 app_type_idx =
24155 msm_pcm_routing_get_app_type_idx(app_type);
24156 sample_rate =
24157 fe_dai_app_type_cfg[i][session_type]
24158 [be_id].sample_rate;
24159 bits_per_sample =
24160 app_type_cfg[app_type_idx].bit_width;
24161 } else
24162 sample_rate = bedai->sample_rate;
24163 /*
24164 * check if ADM needs to be configured with different
24165 * channel mapping than backend
24166 */
24167 if (!bedai->adm_override_ch)
24168 channels = bedai->channel;
24169 else
24170 channels = bedai->adm_override_ch;
24171 acdb_dev_id =
24172 fe_dai_app_type_cfg[i][session_type][be_id].acdb_dev_id;
24173 topology = msm_routing_get_adm_topology(i, session_type,
24174 be_id);
Ralf Herzc8701f72018-06-20 11:37:35 +020024175
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053024176 if ((fdai->passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
24177 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_GEN)
24178 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_IEC61937))
Ralf Herzc8701f72018-06-20 11:37:35 +020024179 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
24180
Surendar Karkae7507512018-07-20 15:46:54 +053024181 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024182 sample_rate, channels, topology,
24183 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +053024184 app_type, acdb_dev_id,
24185 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024186 if ((copp_idx < 0) ||
24187 (copp_idx >= MAX_COPPS_PER_PORT)) {
24188 pr_err("%s: adm open failed\n", __func__);
24189 mutex_unlock(&routing_lock);
24190 return -EINVAL;
24191 }
24192 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
24193 __func__, i, session_type, be_id);
24194 set_bit(copp_idx,
24195 &session_copp_map[i][session_type][be_id]);
24196
24197 if (msm_is_resample_needed(
24198 sample_rate,
24199 bedai->sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +053024200 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024201 bedai->sample_rate);
24202
24203 msm_pcm_routing_build_matrix(i, session_type, path_type,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053024204 fdai->perf_mode, fdai->passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024205 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053024206 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053024207 msm_pcm_routing_cfg_pp(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024208 topology, channels);
24209 }
24210 }
24211
24212 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
24213 session_id = msm_pcm_routing_get_voc_sessionid(i);
24214 if (session_id) {
24215 pr_debug("%s voice session_id: 0x%x\n", __func__,
24216 session_id);
24217
24218 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
24219 voc_path_type = RX_PATH;
24220 else
24221 voc_path_type = TX_PATH;
24222
24223 voc_set_route_flag(session_id, voc_path_type, 1);
24224
24225 memset(&voc_be_media_format, 0,
24226 sizeof(struct media_format_info));
24227
24228 voc_be_media_format.port_id = bedai->port_id;
24229 voc_be_media_format.num_channels = bedai->channel;
24230 voc_be_media_format.sample_rate = bedai->sample_rate;
24231 voc_be_media_format.bits_per_sample = bedai->format;
24232 /* Defaulting this to 1 for voice call usecases */
24233 voc_be_media_format.channel_mapping[0] = 1;
24234
24235 voc_set_device_config(session_id, voc_path_type,
24236 &voc_be_media_format);
24237
24238 if (voc_get_route_flag(session_id, RX_PATH) &&
24239 voc_get_route_flag(session_id, TX_PATH))
24240 voc_enable_device(session_id);
24241 }
24242 }
24243
24244 /* Check if backend is an external ec ref port and set as needed */
24245 if (unlikely(bedai->port_id == voc_get_ext_ec_ref_port_id())) {
24246
24247 memset(&voc_be_media_format, 0,
24248 sizeof(struct media_format_info));
24249
24250 /* Get format info for ec ref port from msm_bedais[] */
24251 voc_be_media_format.port_id = bedai->port_id;
24252 voc_be_media_format.num_channels = bedai->channel;
24253 voc_be_media_format.bits_per_sample = bedai->format;
24254 voc_be_media_format.sample_rate = bedai->sample_rate;
24255 /* Defaulting this to 1 for voice call usecases */
24256 voc_be_media_format.channel_mapping[0] = 1;
24257 voc_set_ext_ec_ref_media_fmt_info(&voc_be_media_format);
24258 pr_debug("%s: EC Ref media format info set to port_id=%d, num_channels=%d, bits_per_sample=%d, sample_rate=%d\n",
24259 __func__, voc_be_media_format.port_id,
24260 voc_be_media_format.num_channels,
24261 voc_be_media_format.bits_per_sample,
24262 voc_be_media_format.sample_rate);
24263 }
24264
24265done:
24266 mutex_unlock(&routing_lock);
24267
24268 return 0;
24269}
24270
24271static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
24272 int fe_id)
24273{
24274 int index, topo_id, be_idx;
24275 unsigned long pp_config = 0;
24276 bool mute_on;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053024277 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024278 bool compr_passthr_mode = true;
24279
24280 pr_debug("%s: port_id %d, copp_idx %d\n", __func__, port_id, copp_idx);
24281
24282 if (port_id != HDMI_RX && port_id != DISPLAY_PORT_RX) {
24283 pr_err("%s: Device pp params on invalid port %d\n",
24284 __func__, port_id);
24285 return -EINVAL;
24286 }
24287
24288 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
24289 if (port_id == msm_bedais[be_idx].port_id)
24290 break;
24291 }
24292
24293 if (be_idx >= MSM_BACKEND_DAI_MAX) {
24294 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
24295 return -EINVAL;
24296 }
24297
24298 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
24299 if (msm_bedais_pp_params[index].port_id == port_id)
24300 break;
24301 }
24302 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
24303 pr_err("%s: Invalid backend pp params index %d\n",
24304 __func__, index);
24305 return -EINVAL;
24306 }
24307
24308 topo_id = adm_get_topology_for_port_copp_idx(port_id, copp_idx);
24309 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY) {
24310 pr_err("%s: Invalid passthrough topology 0x%x\n",
24311 __func__, topo_id);
24312 return -EINVAL;
24313 }
24314
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053024315 session_type =
24316 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
24317 SESSION_TYPE_RX : SESSION_TYPE_TX;
24318
24319 if ((fe_dai_map[fe_id][session_type].passthr_mode == LEGACY_PCM) ||
24320 (fe_dai_map[fe_id][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024321 compr_passthr_mode = false;
24322
24323 pp_config = msm_bedais_pp_params[index].pp_params_config;
24324 if (test_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config)) {
24325 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
24326 clear_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config);
24327 mute_on = msm_bedais_pp_params[index].mute_on;
24328 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
24329 adm_send_compressed_device_mute(port_id,
24330 copp_idx,
24331 mute_on);
24332 }
24333 if (test_bit(ADM_PP_PARAM_LATENCY_BIT, &pp_config)) {
24334 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
24335 clear_bit(ADM_PP_PARAM_LATENCY_BIT,
24336 &pp_config);
24337 latency = msm_bedais_pp_params[index].latency;
24338 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
24339 adm_send_compressed_device_latency(port_id,
24340 copp_idx,
24341 latency);
24342 }
24343 return 0;
24344}
24345
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070024346static uint32_t msm_routing_get_topology(size_t data_size, void *data)
24347{
24348 uint32_t topology = NULL_COPP_TOPOLOGY;
24349 void *cal_info = NULL;
24350 uint32_t size = 0;
24351
24352 /* Retrieve cal_info size from cal data*/
Aditya Bavanariaf708a82019-03-08 19:17:57 +053024353 if (data_size < sizeof(struct audio_cal_type_basic) +
24354 sizeof(struct audio_cal_info_adm_top)) {
24355 pr_err("%s: Invalid data size: %zd\n", __func__, data_size);
24356 goto done;
24357 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070024358 size = data_size - sizeof(struct audio_cal_type_basic);
24359 cal_info = kzalloc(size, GFP_KERNEL);
24360
24361 if (!cal_info)
24362 goto done;
24363
24364 memcpy(cal_info,
24365 ((uint8_t *)data + sizeof(struct audio_cal_type_basic)), size);
24366
24367 topology = ((struct audio_cal_info_adm_top *)cal_info)->topology;
24368 kfree(cal_info);
24369 cal_info = NULL;
24370
24371done:
24372 pr_debug("%s: Using topology %d\n", __func__, topology);
24373
24374 return topology;
24375}
24376
24377static void msm_routing_load_topology(size_t data_size, void *data)
24378{
24379 uint32_t topology_id;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053024380 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070024381
24382 topology_id = msm_routing_get_topology(data_size, data);
24383 if (topology_id != NULL_COPP_TOPOLOGY)
24384 ret = q6core_load_unload_topo_modules(topology_id,
24385 CORE_LOAD_TOPOLOGY);
24386 if (ret < 0)
24387 pr_debug("%s %d load topology failed\n",
24388 __func__, topology_id);
24389
24390}
24391
24392static void msm_routing_unload_topology(uint32_t topology_id)
24393{
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053024394 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070024395
24396 if (topology_id != NULL_COPP_TOPOLOGY)
24397 ret = q6core_load_unload_topo_modules(topology_id,
24398 CORE_UNLOAD_TOPOLOGY);
24399 if (ret < 0)
24400 pr_debug("%s %d unload topology failed\n",
24401 __func__, topology_id);
24402
24403}
24404
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024405static int msm_routing_put_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
24406 struct snd_ctl_elem_value *ucontrol)
24407{
24408 int pp_id = ucontrol->value.integer.value[0];
24409 int port_id = 0;
24410 int index, be_idx, i, topo_id, idx;
24411 bool mute;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053024412 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024413 bool compr_passthr_mode = true;
24414
24415 pr_debug("%s: pp_id: 0x%x\n", __func__, pp_id);
24416
24417 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
24418 port_id = msm_bedais[be_idx].port_id;
24419 if (port_id == HDMI_RX || port_id == DISPLAY_PORT_RX)
24420 break;
24421 }
24422
24423 if (be_idx >= MSM_BACKEND_DAI_MAX) {
24424 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
24425 return -EINVAL;
24426 }
24427
24428 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
24429 if (msm_bedais_pp_params[index].port_id == port_id)
24430 break;
24431 }
24432 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
24433 pr_err("%s: Invalid pp params backend index %d\n",
24434 __func__, index);
24435 return -EINVAL;
24436 }
24437
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053024438 session_type =
24439 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
24440 SESSION_TYPE_RX : SESSION_TYPE_TX;
24441
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024442 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
24443 MSM_FRONTEND_DAI_MM_SIZE) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053024444 if ((fe_dai_map[i][session_type].passthr_mode == LEGACY_PCM) ||
24445 (fe_dai_map[i][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024446 compr_passthr_mode = false;
24447
24448 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
24449 unsigned long copp =
24450 session_copp_map[i]
24451 [SESSION_TYPE_RX][be_idx];
24452 if (!test_bit(idx, &copp))
24453 continue;
24454 topo_id = adm_get_topology_for_port_copp_idx(port_id,
24455 idx);
24456 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY)
24457 continue;
24458 pr_debug("%s: port: 0x%x, copp %ld, be active: %d, passt: %d\n",
24459 __func__, port_id, copp, msm_bedais[be_idx].active,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053024460 fe_dai_map[i][session_type].passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024461 switch (pp_id) {
24462 case ADM_PP_PARAM_MUTE_ID:
24463 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
24464 mute = ucontrol->value.integer.value[1] ? true : false;
24465 msm_bedais_pp_params[index].mute_on = mute;
24466 set_bit(ADM_PP_PARAM_MUTE_BIT,
24467 &msm_bedais_pp_params[index].pp_params_config);
24468 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
24469 adm_send_compressed_device_mute(port_id,
24470 idx, mute);
24471 break;
24472 case ADM_PP_PARAM_LATENCY_ID:
24473 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
24474 msm_bedais_pp_params[index].latency =
24475 ucontrol->value.integer.value[1];
24476 set_bit(ADM_PP_PARAM_LATENCY_BIT,
24477 &msm_bedais_pp_params[index].pp_params_config);
24478 latency = msm_bedais_pp_params[index].latency =
24479 ucontrol->value.integer.value[1];
24480 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
24481 adm_send_compressed_device_latency(port_id,
24482 idx, latency);
24483 break;
24484 default:
24485 pr_info("%s, device pp param %d not supported\n",
24486 __func__, pp_id);
24487 break;
24488 }
24489 }
24490 }
24491 return 0;
24492}
24493
24494static int msm_routing_get_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
24495 struct snd_ctl_elem_value *ucontrol)
24496{
24497 pr_debug("%s:msm_routing_get_device_pp_params_mixer", __func__);
24498 return 0;
24499}
24500
24501static const struct snd_kcontrol_new device_pp_params_mixer_controls[] = {
24502 SOC_SINGLE_MULTI_EXT("Device PP Params", SND_SOC_NOPM, 0, 0xFFFFFFFF,
24503 0, 3, msm_routing_get_device_pp_params_mixer,
24504 msm_routing_put_device_pp_params_mixer),
24505};
24506
24507static int msm_aptx_dec_license_control_get(struct snd_kcontrol *kcontrol,
24508 struct snd_ctl_elem_value *ucontrol)
24509{
24510 ucontrol->value.integer.value[0] =
24511 core_get_license_status(ASM_MEDIA_FMT_APTX);
24512 pr_debug("%s: status %ld\n", __func__,
24513 ucontrol->value.integer.value[0]);
24514 return 0;
24515}
24516
24517static int msm_aptx_dec_license_control_put(struct snd_kcontrol *kcontrol,
24518 struct snd_ctl_elem_value *ucontrol)
24519{
24520 int32_t status = 0;
24521
24522 status = core_set_license(ucontrol->value.integer.value[0],
24523 APTX_CLASSIC_DEC_LICENSE_ID);
24524 pr_debug("%s: status %d\n", __func__, status);
24525 return status;
24526}
24527
24528static const struct snd_kcontrol_new aptx_dec_license_controls[] = {
24529 SOC_SINGLE_EXT("APTX Dec License", SND_SOC_NOPM, 0,
24530 0xFFFF, 0, msm_aptx_dec_license_control_get,
24531 msm_aptx_dec_license_control_put),
24532};
24533
24534static int msm_routing_be_dai_name_table_info(struct snd_kcontrol *kcontrol,
24535 struct snd_ctl_elem_info *uinfo)
24536{
24537 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
24538 uinfo->count = sizeof(be_dai_name_table);
24539 return 0;
24540}
24541
24542static int msm_routing_be_dai_name_table_tlv_get(struct snd_kcontrol *kcontrol,
24543 unsigned int __user *bytes,
24544 unsigned int size)
24545{
24546 int i;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053024547 int ret = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024548
24549 if (size < sizeof(be_dai_name_table)) {
24550 pr_err("%s: invalid size %d requested, returning\n",
24551 __func__, size);
24552 ret = -EINVAL;
24553 goto done;
24554 }
24555
24556 /*
24557 * Fill be_dai_name_table from msm_bedais table to reduce code changes
24558 * needed when adding new backends
24559 */
24560 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
24561 be_dai_name_table[i].be_id = i;
24562 strlcpy(be_dai_name_table[i].be_name,
24563 msm_bedais[i].name,
24564 LPASS_BE_NAME_MAX_LENGTH);
24565 }
24566
24567 ret = copy_to_user(bytes, &be_dai_name_table,
24568 sizeof(be_dai_name_table));
24569 if (ret) {
24570 pr_err("%s: failed to copy be_dai_name_table\n", __func__);
24571 ret = -EFAULT;
24572 }
24573
24574done:
24575 return ret;
24576}
24577
24578static const struct snd_kcontrol_new
24579 msm_routing_be_dai_name_table_mixer_controls[] = {
24580 {
24581 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
24582 SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
24583 .info = msm_routing_be_dai_name_table_info,
24584 .name = "Backend DAI Name Table",
24585 .tlv.c = snd_soc_bytes_tlv_callback,
24586 .private_value = (unsigned long) &(struct soc_bytes_ext) {
24587 .max = sizeof(be_dai_name_table),
24588 .get = msm_routing_be_dai_name_table_tlv_get,
24589 }
24590 },
24591};
24592
24593static int msm_routing_stereo_channel_reverse_control_get(
24594 struct snd_kcontrol *kcontrol,
24595 struct snd_ctl_elem_value *ucontrol)
24596{
24597 ucontrol->value.integer.value[0] = swap_ch;
24598 pr_debug("%s: Swap channel value: %ld\n", __func__,
24599 ucontrol->value.integer.value[0]);
24600 return 0;
24601}
24602
24603static int msm_routing_stereo_channel_reverse_control_put(
24604 struct snd_kcontrol *kcontrol,
24605 struct snd_ctl_elem_value *ucontrol)
24606{
24607 int i, idx, be_index, port_id;
24608 int ret = 0;
24609 unsigned long copp;
24610
24611 pr_debug("%s Swap channel value:%ld\n", __func__,
24612 ucontrol->value.integer.value[0]);
24613
24614 swap_ch = ucontrol->value.integer.value[0];
24615
24616 mutex_lock(&routing_lock);
24617 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
24618 port_id = msm_bedais[be_index].port_id;
24619 if (!msm_bedais[be_index].active)
24620 continue;
24621
24622 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
24623 MSM_FRONTEND_DAI_MM_SIZE) {
24624 copp = session_copp_map[i][SESSION_TYPE_RX][be_index];
24625 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
24626 if (!test_bit(idx, &copp))
24627 continue;
24628
24629 pr_debug("%s: swap channel control of portid:%d, coppid:%d\n",
24630 __func__, port_id, idx);
24631 ret = adm_swap_speaker_channels(
24632 port_id, idx,
24633 msm_bedais[be_index].sample_rate,
24634 swap_ch);
24635 if (ret) {
24636 pr_err("%s:Swap_channel failed, err=%d\n",
24637 __func__, ret);
24638 goto done;
24639 }
24640 }
24641 }
24642 }
24643done:
24644 mutex_unlock(&routing_lock);
24645 return ret;
24646}
24647
24648static const struct snd_kcontrol_new stereo_channel_reverse_control[] = {
24649 SOC_SINGLE_EXT("Swap channel", SND_SOC_NOPM, 0,
24650 1, 0, msm_routing_stereo_channel_reverse_control_get,
24651 msm_routing_stereo_channel_reverse_control_put),
24652};
24653
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080024654static int msm_routing_instance_id_support_info(struct snd_kcontrol *kcontrol,
24655 struct snd_ctl_elem_info *uinfo)
24656{
24657 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
24658 uinfo->count = 1;
24659 return 0;
24660}
24661
24662static int msm_routing_instance_id_support_put(
24663 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
24664{
24665 bool supported = ucontrol->value.integer.value[0] ? true : false;
24666
24667 q6common_update_instance_id_support(supported);
24668 return 0;
24669}
24670
24671static int msm_routing_instance_id_support_get(
24672 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
24673{
24674 bool supported = false;
24675
24676 supported = q6common_is_instance_id_supported();
24677 ucontrol->value.integer.value[0] = supported ? 1 : 0;
24678
24679 return 0;
24680}
24681
24682static const struct snd_kcontrol_new
24683 msm_routing_feature_support_mixer_controls[] = {
24684 {
24685 .access = SNDRV_CTL_ELEM_ACCESS_READ |
24686 SNDRV_CTL_ELEM_ACCESS_WRITE,
24687 .info = msm_routing_instance_id_support_info,
24688 .name = "Instance ID Support",
24689 .put = msm_routing_instance_id_support_put,
24690 .get = msm_routing_instance_id_support_get,
24691 },
24692};
24693
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024694static const struct snd_pcm_ops msm_routing_pcm_ops = {
24695 .hw_params = msm_pcm_routing_hw_params,
24696 .close = msm_pcm_routing_close,
24697 .prepare = msm_pcm_routing_prepare,
24698};
24699
24700/* Not used but frame seems to require it */
Meng Wangee084a02018-09-04 16:11:58 +080024701static int msm_routing_probe(struct snd_soc_component *component)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024702{
Meng Wangee084a02018-09-04 16:11:58 +080024703 snd_soc_dapm_new_controls(&component->dapm, msm_qdsp6_widgets,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024704 ARRAY_SIZE(msm_qdsp6_widgets));
Meng Wangee084a02018-09-04 16:11:58 +080024705 snd_soc_dapm_add_routes(&component->dapm, intercon,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024706 ARRAY_SIZE(intercon));
24707
Meng Wangee084a02018-09-04 16:11:58 +080024708 snd_soc_dapm_new_widgets(component->dapm.card);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024709
Meng Wangee084a02018-09-04 16:11:58 +080024710 snd_soc_add_component_controls(component, lsm_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024711 ARRAY_SIZE(lsm_controls));
24712
Meng Wangee084a02018-09-04 16:11:58 +080024713 snd_soc_add_component_controls(component, aanc_slim_0_rx_mux,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024714 ARRAY_SIZE(aanc_slim_0_rx_mux));
24715
Meng Wangee084a02018-09-04 16:11:58 +080024716 snd_soc_add_component_controls(component, aanc_noise_level,
Sudheer Papothic07b37a2018-05-04 05:56:47 +053024717 ARRAY_SIZE(aanc_noise_level));
24718
Meng Wangee084a02018-09-04 16:11:58 +080024719 snd_soc_add_component_controls(component, msm_voc_session_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024720 ARRAY_SIZE(msm_voc_session_controls));
24721
Meng Wangee084a02018-09-04 16:11:58 +080024722 snd_soc_add_component_controls(component, app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024723 ARRAY_SIZE(app_type_cfg_controls));
24724
Meng Wangee084a02018-09-04 16:11:58 +080024725 snd_soc_add_component_controls(component, lsm_app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024726 ARRAY_SIZE(lsm_app_type_cfg_controls));
24727
Meng Wangee084a02018-09-04 16:11:58 +080024728 snd_soc_add_component_controls(component, module_cfg_controls,
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070024729 ARRAY_SIZE(module_cfg_controls));
24730
Meng Wangee084a02018-09-04 16:11:58 +080024731 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024732 stereo_to_custom_stereo_controls,
24733 ARRAY_SIZE(stereo_to_custom_stereo_controls));
24734
Meng Wangee084a02018-09-04 16:11:58 +080024735 snd_soc_add_component_controls(component, ec_ref_param_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024736 ARRAY_SIZE(ec_ref_param_controls));
24737
Meng Wangee084a02018-09-04 16:11:58 +080024738 snd_soc_add_component_controls(component, channel_mixer_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024739 ARRAY_SIZE(channel_mixer_controls));
24740
Meng Wangee084a02018-09-04 16:11:58 +080024741 msm_qti_pp_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024742
Meng Wangee084a02018-09-04 16:11:58 +080024743 msm_dts_srs_tm_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024744
Meng Wangee084a02018-09-04 16:11:58 +080024745 msm_dolby_dap_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024746
Meng Wangee084a02018-09-04 16:11:58 +080024747 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024748 use_ds1_or_ds2_controls,
24749 ARRAY_SIZE(use_ds1_or_ds2_controls));
24750
Meng Wangee084a02018-09-04 16:11:58 +080024751 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024752 device_pp_params_mixer_controls,
24753 ARRAY_SIZE(device_pp_params_mixer_controls));
24754
Meng Wangee084a02018-09-04 16:11:58 +080024755 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024756 msm_routing_be_dai_name_table_mixer_controls,
24757 ARRAY_SIZE(msm_routing_be_dai_name_table_mixer_controls));
24758
Meng Wangee084a02018-09-04 16:11:58 +080024759 snd_soc_add_component_controls(component, msm_source_tracking_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024760 ARRAY_SIZE(msm_source_tracking_controls));
Meng Wangee084a02018-09-04 16:11:58 +080024761 snd_soc_add_component_controls(component, adm_channel_config_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024762 ARRAY_SIZE(adm_channel_config_controls));
24763
Meng Wangee084a02018-09-04 16:11:58 +080024764 snd_soc_add_component_controls(component, aptx_dec_license_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024765 ARRAY_SIZE(aptx_dec_license_controls));
Meng Wangee084a02018-09-04 16:11:58 +080024766 snd_soc_add_component_controls(component,
24767 stereo_channel_reverse_control,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024768 ARRAY_SIZE(stereo_channel_reverse_control));
Meng Wangee084a02018-09-04 16:11:58 +080024769 snd_soc_add_component_controls(
24770 component, msm_routing_feature_support_mixer_controls,
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080024771 ARRAY_SIZE(msm_routing_feature_support_mixer_controls));
24772
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024773 return 0;
24774}
24775
24776int msm_routing_pcm_new(struct snd_soc_pcm_runtime *runtime)
24777{
24778 return msm_pcm_routing_hwdep_new(runtime, msm_bedais);
24779}
24780
24781void msm_routing_pcm_free(struct snd_pcm *pcm)
24782{
24783 msm_pcm_routing_hwdep_free(pcm);
24784}
24785
Meng Wangee084a02018-09-04 16:11:58 +080024786static struct snd_soc_component_driver msm_soc_routing_component = {
24787 .name = DRV_NAME,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024788 .ops = &msm_routing_pcm_ops,
24789 .probe = msm_routing_probe,
24790 .pcm_new = msm_routing_pcm_new,
24791 .pcm_free = msm_routing_pcm_free,
24792};
24793
24794static int msm_routing_pcm_probe(struct platform_device *pdev)
24795{
24796
24797 dev_dbg(&pdev->dev, "dev name %s\n", dev_name(&pdev->dev));
Meng Wangee084a02018-09-04 16:11:58 +080024798 return snd_soc_register_component(&pdev->dev,
24799 &msm_soc_routing_component,
24800 NULL, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024801}
24802
24803static int msm_routing_pcm_remove(struct platform_device *pdev)
24804{
Meng Wangee084a02018-09-04 16:11:58 +080024805 snd_soc_unregister_component(&pdev->dev);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024806 return 0;
24807}
24808
24809static const struct of_device_id msm_pcm_routing_dt_match[] = {
24810 {.compatible = "qcom,msm-pcm-routing"},
24811 {}
24812};
24813MODULE_DEVICE_TABLE(of, msm_pcm_routing_dt_match);
24814
24815static struct platform_driver msm_routing_pcm_driver = {
24816 .driver = {
24817 .name = "msm-pcm-routing",
24818 .owner = THIS_MODULE,
24819 .of_match_table = msm_pcm_routing_dt_match,
Xiaojun Sang53cd13a2018-06-29 15:14:37 +080024820 .suppress_bind_attrs = true,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024821 },
24822 .probe = msm_routing_pcm_probe,
24823 .remove = msm_routing_pcm_remove,
24824};
24825
24826int msm_routing_check_backend_enabled(int fedai_id)
24827{
24828 int i;
24829
24830 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
24831 /* bad ID assigned in machine driver */
24832 pr_err("%s: bad MM ID\n", __func__);
24833 return 0;
24834 }
24835 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
24836 if (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))
24837 return msm_bedais[i].active;
24838 }
24839 return 0;
24840}
24841
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024842static int get_cal_type_index(int32_t cal_type)
24843{
24844 int ret = -EINVAL;
24845
24846 switch (cal_type) {
24847 case ADM_TOPOLOGY_CAL_TYPE:
24848 ret = ADM_TOPOLOGY_CAL_TYPE_IDX;
24849 break;
24850 case ADM_LSM_TOPOLOGY_CAL_TYPE:
24851 ret = ADM_LSM_TOPOLOGY_CAL_TYPE_IDX;
24852 break;
24853 default:
24854 pr_err("%s: Invalid cal type %d\n", __func__, cal_type);
24855 }
24856 return ret;
24857}
24858
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024859static int msm_routing_set_cal(int32_t cal_type,
24860 size_t data_size, void *data)
24861{
24862 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024863 int cal_index;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024864 pr_debug("%s\n", __func__);
24865
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024866 cal_index = get_cal_type_index(cal_type);
24867 if (cal_index < 0) {
24868 pr_err("%s: Could not get cal index %d\n",
24869 __func__, cal_index);
24870 ret = -EINVAL;
24871 goto done;
24872 }
24873
24874 ret = cal_utils_set_cal(data_size, data, cal_data[cal_index], 0, NULL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024875 if (ret < 0) {
24876 pr_err("%s: cal_utils_set_cal failed, ret = %d, cal type = %d!\n",
24877 __func__, ret, cal_type);
24878 ret = -EINVAL;
24879 goto done;
24880 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070024881 /* Pre-load if it is ADM topology */
24882 if ((cal_index == ADM_TOPOLOGY_CAL_TYPE_IDX) ||
24883 (cal_index == ADM_LSM_TOPOLOGY_CAL_TYPE_IDX)) {
24884 msm_routing_load_topology(data_size, data);
24885 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024886done:
24887 return ret;
24888}
24889
24890static void msm_routing_delete_cal_data(void)
24891{
24892 pr_debug("%s\n", __func__);
24893
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024894 cal_utils_destroy_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024895}
24896
24897static int msm_routing_init_cal_data(void)
24898{
24899 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024900 struct cal_type_info cal_type_info[] = {
24901 {{ADM_TOPOLOGY_CAL_TYPE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024902 {NULL, NULL, NULL,
24903 msm_routing_set_cal, NULL, NULL} },
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024904 {NULL, NULL, cal_utils_match_buf_num} },
24905
24906 {{ADM_LSM_TOPOLOGY_CAL_TYPE,
24907 {NULL, NULL, NULL,
24908 msm_routing_set_cal, NULL, NULL} },
24909 {NULL, NULL, cal_utils_match_buf_num} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024910 };
24911 pr_debug("%s\n", __func__);
24912
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053024913 ret = cal_utils_create_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0],
24914 &cal_type_info[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024915 if (ret < 0) {
24916 pr_err("%s: could not create cal type!\n",
24917 __func__);
24918 ret = -EINVAL;
24919 goto err;
24920 }
24921
24922 return ret;
24923err:
24924 msm_routing_delete_cal_data();
24925 return ret;
24926}
24927
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053024928int __init msm_soc_routing_platform_init(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024929{
24930 mutex_init(&routing_lock);
24931 if (msm_routing_init_cal_data())
24932 pr_err("%s: could not init cal data!\n", __func__);
24933
24934 afe_set_routing_callback(
24935 (routing_cb)msm_pcm_get_dev_acdb_id_by_port_id);
24936
24937 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
24938 memset(&last_be_id_configured, 0, sizeof(last_be_id_configured));
24939
24940 return platform_driver_register(&msm_routing_pcm_driver);
24941}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024942
Asish Bhattacharya5faacb32017-12-04 17:23:15 +053024943void msm_soc_routing_platform_exit(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024944{
24945 msm_routing_delete_cal_data();
24946 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
24947 mutex_destroy(&routing_lock);
24948 platform_driver_unregister(&msm_routing_pcm_driver);
24949}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024950
24951MODULE_DESCRIPTION("MSM routing platform driver");
24952MODULE_LICENSE("GPL v2");