blob: 921bca2315b805ff5ab0745ee1b510821e2060da [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;
Karthikeyan Manic3700752019-03-11 18:33:53 -070068static int sen_mi2s_switch_enable;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053069static int fm_pcmrx_switch_enable;
70static int usb_switch_enable;
71static int lsm_port_index;
72static int slim0_rx_aanc_fb_port;
73static int msm_route_ec_ref_rx;
74static int msm_ec_ref_ch = 4;
Dhananjay Kumar242b5b02019-01-16 22:45:12 +053075static int msm_ec_ref_ch_downmixed = 4;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053076static int msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
77static int msm_ec_ref_sampling_rate = 48000;
78static uint32_t voc_session_id = ALL_SESSION_VSID;
79static int msm_route_ext_ec_ref;
80static bool is_custom_stereo_on;
81static bool is_ds2_on;
82static bool swap_ch;
Ramlal Karrab6ef9e02019-08-14 17:53:29 +053083static bool hifi_filter_enabled;
Sudheer Papothic07b37a2018-05-04 05:56:47 +053084static int aanc_level;
Meng Wangadbca4f2018-10-29 14:30:13 +080085static int num_app_cfg_types;
Surendar Karkae7507512018-07-20 15:46:54 +053086static int msm_ec_ref_port_id;
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +053087static int afe_loopback_tx_port_index;
88static int afe_loopback_tx_port_id = -1;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053089
90#define WEIGHT_0_DB 0x4000
91/* all the FEs which can support channel mixer */
92static struct msm_pcm_channel_mixer channel_mixer[MSM_FRONTEND_DAI_MM_SIZE];
Dhananjay Kumar807f7e92018-12-11 18:10:08 +053093
94/* all the FES which can support channel mixer for bidirection */
95static struct msm_pcm_channel_mixer
96 channel_mixer_v2[MSM_FRONTEND_DAI_MM_SIZE][2];
97
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053098/* input BE for each FE */
99static int channel_input[MSM_FRONTEND_DAI_MM_SIZE][ADM_MAX_CHANNELS];
100
101enum {
102 MADNONE,
103 MADAUDIO,
104 MADBEACON,
105 MADULTRASOUND,
106 MADSWAUDIO,
107};
108
109#define ADM_LSM_PORT_INDEX 9
110
111#define SLIMBUS_0_TX_TEXT "SLIMBUS_0_TX"
112#define SLIMBUS_1_TX_TEXT "SLIMBUS_1_TX"
113#define SLIMBUS_2_TX_TEXT "SLIMBUS_2_TX"
114#define SLIMBUS_3_TX_TEXT "SLIMBUS_3_TX"
115#define SLIMBUS_4_TX_TEXT "SLIMBUS_4_TX"
116#define SLIMBUS_5_TX_TEXT "SLIMBUS_5_TX"
117#define TERT_MI2S_TX_TEXT "TERT_MI2S_TX"
118#define QUAT_MI2S_TX_TEXT "QUAT_MI2S_TX"
119#define ADM_LSM_TX_TEXT "ADM_LSM_TX"
120#define INT3_MI2S_TX_TEXT "INT3_MI2S_TX"
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +0530121#define VA_CDC_DMA_TX_0_TEXT "VA_CDC_DMA_TX_0"
122#define VA_CDC_DMA_TX_1_TEXT "VA_CDC_DMA_TX_1"
Xiaoyu Yef439aed2019-01-02 16:40:01 -0800123#define VA_CDC_DMA_TX_2_TEXT "VA_CDC_DMA_TX_2"
Aditya Bavanarie9454c62018-08-23 23:45:20 +0530124#define TX_CDC_DMA_TX_3_TEXT "TX_CDC_DMA_TX_3"
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +0530125#define QUIN_TDM_TX_TEXT "QUIN_TDM_TX_0"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530126
127#define LSM_FUNCTION_TEXT "LSM Function"
128static const char * const lsm_port_text[] = {
129 "None",
130 SLIMBUS_0_TX_TEXT, SLIMBUS_1_TX_TEXT, SLIMBUS_2_TX_TEXT,
131 SLIMBUS_3_TX_TEXT, SLIMBUS_4_TX_TEXT, SLIMBUS_5_TX_TEXT,
132 TERT_MI2S_TX_TEXT, QUAT_MI2S_TX_TEXT, ADM_LSM_TX_TEXT,
Aditya Bavanarie9454c62018-08-23 23:45:20 +0530133 INT3_MI2S_TX_TEXT, VA_CDC_DMA_TX_0_TEXT, VA_CDC_DMA_TX_1_TEXT,
Xiaoyu Yef439aed2019-01-02 16:40:01 -0800134 VA_CDC_DMA_TX_2_TEXT, TX_CDC_DMA_TX_3_TEXT, QUIN_TDM_TX_TEXT
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530135};
136
137struct msm_pcm_route_bdai_pp_params {
138 u16 port_id; /* AFE port ID */
139 unsigned long pp_params_config;
140 bool mute_on;
141 int latency;
142};
143
144static struct msm_pcm_route_bdai_pp_params
145 msm_bedais_pp_params[MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX] = {
146 {HDMI_RX, 0, 0, 0},
147 {DISPLAY_PORT_RX, 0, 0, 0},
148};
149
150/*
151 * The be_dai_name_table is passed to HAL so that it can specify the
152 * BE ID for the BE it wants to enable based on the name. Thus there
153 * is a matching table and structure in HAL that need to be updated
154 * if any changes to these are made.
155 */
156struct msm_pcm_route_bdai_name {
157 unsigned int be_id;
158 char be_name[LPASS_BE_NAME_MAX_LENGTH];
159};
160static struct msm_pcm_route_bdai_name be_dai_name_table[MSM_BACKEND_DAI_MAX];
161
162static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
163 int fe_id);
164
Vikram Panduranga6e55ad82018-03-14 13:56:18 -0700165static void msm_routing_load_topology(size_t data_size, void *data);
166static void msm_routing_unload_topology(uint32_t topology_id);
167
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530168static int msm_routing_get_bit_width(unsigned int format)
169{
170 int bit_width;
171
172 switch (format) {
173 case SNDRV_PCM_FORMAT_S32_LE:
174 bit_width = 32;
175 break;
176 case SNDRV_PCM_FORMAT_S24_LE:
177 case SNDRV_PCM_FORMAT_S24_3LE:
178 bit_width = 24;
179 break;
180 case SNDRV_PCM_FORMAT_S16_LE:
181 default:
182 bit_width = 16;
183 }
184 return bit_width;
185}
186
187static bool msm_is_resample_needed(int input_sr, int output_sr)
188{
189 bool rc = false;
190
191 if (input_sr != output_sr)
192 rc = true;
193
194 pr_debug("perform resampling (%s) for copp rate (%d)afe rate (%d)",
195 (rc ? "oh yes" : "not really"),
196 input_sr, output_sr);
197
198 return rc;
199}
200
201static void msm_pcm_routing_cfg_pp(int port_id, int copp_idx, int topology,
202 int channels)
203{
204 int rc = 0;
205
206 switch (topology) {
207 case SRS_TRUMEDIA_TOPOLOGY_ID:
208 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
209 msm_dts_srs_tm_init(port_id, copp_idx);
210 break;
211 case DS2_ADM_COPP_TOPOLOGY_ID:
212 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY %d\n",
213 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
214 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
215 is_custom_stereo_on);
216 if (rc < 0)
217 pr_err("%s: DS2 topo_id 0x%x, port %d, CS %d rc %d\n",
218 __func__, topology, port_id,
219 is_custom_stereo_on, rc);
220 break;
221 case DOLBY_ADM_COPP_TOPOLOGY_ID:
222 if (is_ds2_on) {
223 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY\n", __func__);
224 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
225 is_custom_stereo_on);
226 if (rc < 0)
227 pr_err("%s:DS2 topo_id 0x%x, port %d, rc %d\n",
228 __func__, topology, port_id, rc);
229 } else {
230 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
231 rc = msm_dolby_dap_init(port_id, copp_idx, channels,
232 is_custom_stereo_on);
233 if (rc < 0)
234 pr_err("%s: DS1 topo_id 0x%x, port %d, rc %d\n",
235 __func__, topology, port_id, rc);
236 }
237 break;
238 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
239 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
240 rc = msm_qti_pp_asphere_init(port_id, copp_idx);
241 if (rc < 0)
242 pr_err("%s: topo_id 0x%x, port %d, copp %d, rc %d\n",
243 __func__, topology, port_id, copp_idx, rc);
244 break;
245 default:
246 /* custom topology specific feature param handlers */
247 break;
248 }
249}
250
251static void msm_pcm_routing_deinit_pp(int port_id, int topology)
252{
253 switch (topology) {
254 case SRS_TRUMEDIA_TOPOLOGY_ID:
255 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
256 msm_dts_srs_tm_deinit(port_id);
257 break;
258 case DS2_ADM_COPP_TOPOLOGY_ID:
259 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID %d\n",
260 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
261 msm_ds2_dap_deinit(port_id);
262 break;
263 case DOLBY_ADM_COPP_TOPOLOGY_ID:
264 if (is_ds2_on) {
265 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID\n", __func__);
266 msm_ds2_dap_deinit(port_id);
267 } else {
268 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
269 msm_dolby_dap_deinit(port_id);
270 }
271 break;
272 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
273 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
274 msm_qti_pp_asphere_deinit(port_id);
275 break;
276 default:
277 /* custom topology specific feature deinit handlers */
278 break;
279 }
280}
281
282static void msm_pcm_routng_cfg_matrix_map_pp(struct route_payload payload,
283 int path_type, int perf_mode)
284{
285 int itr = 0, rc = 0;
286
287 if ((path_type == ADM_PATH_PLAYBACK) &&
288 (perf_mode == LEGACY_PCM_MODE) &&
289 is_custom_stereo_on) {
290 for (itr = 0; itr < payload.num_copps; itr++) {
291 if ((payload.port_id[itr] != SLIMBUS_0_RX) &&
292 (payload.port_id[itr] != RT_PROXY_PORT_001_RX)) {
293 continue;
294 }
295
296 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd(
297 payload.port_id[itr],
298 payload.copp_idx[itr],
299 payload.session_id,
300 Q14_GAIN_ZERO_POINT_FIVE,
301 Q14_GAIN_ZERO_POINT_FIVE,
302 Q14_GAIN_ZERO_POINT_FIVE,
303 Q14_GAIN_ZERO_POINT_FIVE);
304 if (rc < 0)
305 pr_err("%s: err setting custom stereo\n",
306 __func__);
307 }
308 }
309}
310
311#define SLIMBUS_EXTPROC_RX AFE_PORT_INVALID
312struct msm_pcm_routing_bdai_data msm_bedais[MSM_BACKEND_DAI_MAX] = {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530313 { PRIMARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_PRI_I2S_RX},
314 { PRIMARY_I2S_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_PRI_I2S_TX},
315 { SLIMBUS_0_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_0_RX},
316 { SLIMBUS_0_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_0_TX},
317 { HDMI_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_HDMI},
318 { INT_BT_SCO_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_BT_SCO_RX},
319 { INT_BT_SCO_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_BT_SCO_TX},
320 { INT_FM_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_FM_RX},
321 { INT_FM_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_FM_TX},
322 { RT_PROXY_PORT_001_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530323 LPASS_BE_AFE_PCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530324 { RT_PROXY_PORT_001_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530325 LPASS_BE_AFE_PCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530326 { AFE_PORT_ID_PRIMARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530327 LPASS_BE_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530328 { AFE_PORT_ID_PRIMARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530329 LPASS_BE_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530330 { VOICE_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530331 LPASS_BE_VOICE_PLAYBACK_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530332 { VOICE2_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530333 LPASS_BE_VOICE2_PLAYBACK_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530334 { VOICE_RECORD_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530335 LPASS_BE_INCALL_RECORD_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530336 { VOICE_RECORD_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530337 LPASS_BE_INCALL_RECORD_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530338 { MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_MI2S_RX},
339 { MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_MI2S_TX},
340 { SECONDARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SEC_I2S_RX},
341 { SLIMBUS_1_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_1_RX},
342 { SLIMBUS_1_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_1_TX},
343 { SLIMBUS_2_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_2_RX},
344 { SLIMBUS_2_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_2_TX},
345 { SLIMBUS_3_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_3_RX},
346 { SLIMBUS_3_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_3_TX},
347 { SLIMBUS_4_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_4_RX},
348 { SLIMBUS_4_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_4_TX},
349 { SLIMBUS_5_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_5_RX},
350 { SLIMBUS_5_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_5_TX},
351 { SLIMBUS_6_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_6_RX},
352 { SLIMBUS_6_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_6_TX},
353 { SLIMBUS_7_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_7_RX},
354 { SLIMBUS_7_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_7_TX},
355 { SLIMBUS_8_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_8_RX},
356 { SLIMBUS_8_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_8_TX},
357 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_RX},
358 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_TX},
359 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_1_TX},
360 { AFE_PORT_ID_QUATERNARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530361 LPASS_BE_QUAT_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530362 { AFE_PORT_ID_QUATERNARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530363 LPASS_BE_QUAT_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530364 { AFE_PORT_ID_SECONDARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530365 LPASS_BE_SEC_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530366 { AFE_PORT_ID_SECONDARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530367 LPASS_BE_SEC_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530368 { AFE_PORT_ID_PRIMARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530369 LPASS_BE_PRI_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530370 { AFE_PORT_ID_PRIMARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530371 LPASS_BE_PRI_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530372 { AFE_PORT_ID_TERTIARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530373 LPASS_BE_TERT_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530374 { AFE_PORT_ID_TERTIARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530375 LPASS_BE_TERT_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530376 { AUDIO_PORT_ID_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530377 LPASS_BE_AUDIO_I2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530378 { AFE_PORT_ID_SECONDARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530379 LPASS_BE_SEC_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530380 { AFE_PORT_ID_SECONDARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530381 LPASS_BE_SEC_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530382 { AFE_PORT_ID_PRIMARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200383 LPASS_BE_PRI_SPDIF_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530384 { AFE_PORT_ID_SECONDARY_MI2S_RX_SD1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530385 LPASS_BE_SEC_MI2S_RX_SD1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530386 { AFE_PORT_ID_QUINARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530387 LPASS_BE_QUIN_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530388 { AFE_PORT_ID_QUINARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530389 LPASS_BE_QUIN_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530390 { AFE_PORT_ID_SENARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530391 LPASS_BE_SENARY_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530392 { AFE_PORT_ID_PRIMARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530393 LPASS_BE_PRI_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530394 { AFE_PORT_ID_PRIMARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530395 LPASS_BE_PRI_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530396 { AFE_PORT_ID_PRIMARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530397 LPASS_BE_PRI_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530398 { AFE_PORT_ID_PRIMARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530399 LPASS_BE_PRI_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530400 { AFE_PORT_ID_PRIMARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530401 LPASS_BE_PRI_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530402 { AFE_PORT_ID_PRIMARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530403 LPASS_BE_PRI_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530404 { AFE_PORT_ID_PRIMARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530405 LPASS_BE_PRI_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530406 { AFE_PORT_ID_PRIMARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530407 LPASS_BE_PRI_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530408 { AFE_PORT_ID_PRIMARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530409 LPASS_BE_PRI_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530410 { AFE_PORT_ID_PRIMARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530411 LPASS_BE_PRI_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530412 { AFE_PORT_ID_PRIMARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530413 LPASS_BE_PRI_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530414 { AFE_PORT_ID_PRIMARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530415 LPASS_BE_PRI_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530416 { AFE_PORT_ID_PRIMARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530417 LPASS_BE_PRI_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530418 { AFE_PORT_ID_PRIMARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530419 LPASS_BE_PRI_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530420 { AFE_PORT_ID_PRIMARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530421 LPASS_BE_PRI_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530422 { AFE_PORT_ID_PRIMARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530423 LPASS_BE_PRI_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530424 { AFE_PORT_ID_SECONDARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530425 LPASS_BE_SEC_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530426 { AFE_PORT_ID_SECONDARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530427 LPASS_BE_SEC_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530428 { AFE_PORT_ID_SECONDARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530429 LPASS_BE_SEC_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530430 { AFE_PORT_ID_SECONDARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530431 LPASS_BE_SEC_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530432 { AFE_PORT_ID_SECONDARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530433 LPASS_BE_SEC_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530434 { AFE_PORT_ID_SECONDARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530435 LPASS_BE_SEC_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530436 { AFE_PORT_ID_SECONDARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530437 LPASS_BE_SEC_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530438 { AFE_PORT_ID_SECONDARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530439 LPASS_BE_SEC_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530440 { AFE_PORT_ID_SECONDARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530441 LPASS_BE_SEC_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530442 { AFE_PORT_ID_SECONDARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530443 LPASS_BE_SEC_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530444 { AFE_PORT_ID_SECONDARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530445 LPASS_BE_SEC_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530446 { AFE_PORT_ID_SECONDARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530447 LPASS_BE_SEC_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530448 { AFE_PORT_ID_SECONDARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530449 LPASS_BE_SEC_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530450 { AFE_PORT_ID_SECONDARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530451 LPASS_BE_SEC_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530452 { AFE_PORT_ID_SECONDARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530453 LPASS_BE_SEC_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530454 { AFE_PORT_ID_SECONDARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530455 LPASS_BE_SEC_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530456 { AFE_PORT_ID_TERTIARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530457 LPASS_BE_TERT_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530458 { AFE_PORT_ID_TERTIARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530459 LPASS_BE_TERT_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530460 { AFE_PORT_ID_TERTIARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530461 LPASS_BE_TERT_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530462 { AFE_PORT_ID_TERTIARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530463 LPASS_BE_TERT_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530464 { AFE_PORT_ID_TERTIARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530465 LPASS_BE_TERT_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530466 { AFE_PORT_ID_TERTIARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530467 LPASS_BE_TERT_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530468 { AFE_PORT_ID_TERTIARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530469 LPASS_BE_TERT_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530470 { AFE_PORT_ID_TERTIARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530471 LPASS_BE_TERT_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530472 { AFE_PORT_ID_TERTIARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530473 LPASS_BE_TERT_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530474 { AFE_PORT_ID_TERTIARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530475 LPASS_BE_TERT_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530476 { AFE_PORT_ID_TERTIARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530477 LPASS_BE_TERT_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530478 { AFE_PORT_ID_TERTIARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530479 LPASS_BE_TERT_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530480 { AFE_PORT_ID_TERTIARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530481 LPASS_BE_TERT_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530482 { AFE_PORT_ID_TERTIARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530483 LPASS_BE_TERT_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530484 { AFE_PORT_ID_TERTIARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530485 LPASS_BE_TERT_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530486 { AFE_PORT_ID_TERTIARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530487 LPASS_BE_TERT_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530488 { AFE_PORT_ID_QUATERNARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530489 LPASS_BE_QUAT_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530490 { AFE_PORT_ID_QUATERNARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530491 LPASS_BE_QUAT_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530492 { AFE_PORT_ID_QUATERNARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530493 LPASS_BE_QUAT_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530494 { AFE_PORT_ID_QUATERNARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530495 LPASS_BE_QUAT_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530496 { AFE_PORT_ID_QUATERNARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530497 LPASS_BE_QUAT_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530498 { AFE_PORT_ID_QUATERNARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530499 LPASS_BE_QUAT_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530500 { AFE_PORT_ID_QUATERNARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530501 LPASS_BE_QUAT_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530502 { AFE_PORT_ID_QUATERNARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530503 LPASS_BE_QUAT_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530504 { AFE_PORT_ID_QUATERNARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530505 LPASS_BE_QUAT_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530506 { AFE_PORT_ID_QUATERNARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530507 LPASS_BE_QUAT_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530508 { AFE_PORT_ID_QUATERNARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530509 LPASS_BE_QUAT_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530510 { AFE_PORT_ID_QUATERNARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530511 LPASS_BE_QUAT_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530512 { AFE_PORT_ID_QUATERNARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530513 LPASS_BE_QUAT_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530514 { AFE_PORT_ID_QUATERNARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530515 LPASS_BE_QUAT_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530516 { AFE_PORT_ID_QUATERNARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530517 LPASS_BE_QUAT_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530518 { AFE_PORT_ID_QUATERNARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530519 LPASS_BE_QUAT_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530520 { AFE_PORT_ID_QUINARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530521 LPASS_BE_QUIN_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530522 { AFE_PORT_ID_QUINARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530523 LPASS_BE_QUIN_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530524 { AFE_PORT_ID_QUINARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530525 LPASS_BE_QUIN_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530526 { AFE_PORT_ID_QUINARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530527 LPASS_BE_QUIN_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530528 { AFE_PORT_ID_QUINARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530529 LPASS_BE_QUIN_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530530 { AFE_PORT_ID_QUINARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530531 LPASS_BE_QUIN_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530532 { AFE_PORT_ID_QUINARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530533 LPASS_BE_QUIN_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530534 { AFE_PORT_ID_QUINARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530535 LPASS_BE_QUIN_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530536 { AFE_PORT_ID_QUINARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530537 LPASS_BE_QUIN_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530538 { AFE_PORT_ID_QUINARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530539 LPASS_BE_QUIN_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530540 { AFE_PORT_ID_QUINARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530541 LPASS_BE_QUIN_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530542 { AFE_PORT_ID_QUINARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530543 LPASS_BE_QUIN_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530544 { AFE_PORT_ID_QUINARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530545 LPASS_BE_QUIN_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530546 { AFE_PORT_ID_QUINARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530547 LPASS_BE_QUIN_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530548 { AFE_PORT_ID_QUINARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530549 LPASS_BE_QUIN_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530550 { AFE_PORT_ID_QUINARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530551 LPASS_BE_QUIN_TDM_TX_7},
Karthikeyan Manic3700752019-03-11 18:33:53 -0700552 { AFE_PORT_ID_SENARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
553 LPASS_BE_SEN_TDM_RX_0},
554 { AFE_PORT_ID_SENARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
555 LPASS_BE_SEN_TDM_TX_0},
556 { AFE_PORT_ID_SENARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
557 LPASS_BE_SEN_TDM_RX_1},
558 { AFE_PORT_ID_SENARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
559 LPASS_BE_SEN_TDM_TX_1},
560 { AFE_PORT_ID_SENARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
561 LPASS_BE_SEN_TDM_RX_2},
562 { AFE_PORT_ID_SENARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
563 LPASS_BE_SEN_TDM_TX_2},
564 { AFE_PORT_ID_SENARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
565 LPASS_BE_SEN_TDM_RX_3},
566 { AFE_PORT_ID_SENARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
567 LPASS_BE_SEN_TDM_TX_3},
568 { AFE_PORT_ID_SENARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
569 LPASS_BE_SEN_TDM_RX_4},
570 { AFE_PORT_ID_SENARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
571 LPASS_BE_SEN_TDM_TX_4},
572 { AFE_PORT_ID_SENARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
573 LPASS_BE_SEN_TDM_RX_5},
574 { AFE_PORT_ID_SENARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
575 LPASS_BE_SEN_TDM_TX_5},
576 { AFE_PORT_ID_SENARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
577 LPASS_BE_SEN_TDM_RX_6},
578 { AFE_PORT_ID_SENARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
579 LPASS_BE_SEN_TDM_TX_6},
580 { AFE_PORT_ID_SENARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
581 LPASS_BE_SEN_TDM_RX_7},
582 { AFE_PORT_ID_SENARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
583 LPASS_BE_SEN_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530584 { INT_BT_A2DP_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530585 LPASS_BE_INT_BT_A2DP_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530586 { AFE_PORT_ID_USB_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530587 LPASS_BE_USB_AUDIO_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530588 { AFE_PORT_ID_USB_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530589 LPASS_BE_USB_AUDIO_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530590 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530591 LPASS_BE_DISPLAY_PORT},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530592 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0,
Karthikeyan Mani57550082018-05-03 18:43:58 -0700593 LPASS_BE_DISPLAY_PORT1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530594 { AFE_PORT_ID_TERTIARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530595 LPASS_BE_TERT_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530596 { AFE_PORT_ID_TERTIARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530597 LPASS_BE_TERT_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530598 { AFE_PORT_ID_QUATERNARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530599 LPASS_BE_QUAT_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530600 { AFE_PORT_ID_QUATERNARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530601 LPASS_BE_QUAT_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530602 { AFE_PORT_ID_QUINARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530603 LPASS_BE_QUIN_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530604 { AFE_PORT_ID_QUINARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530605 LPASS_BE_QUIN_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530606 { AFE_PORT_ID_INT0_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530607 LPASS_BE_INT0_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530608 { AFE_PORT_ID_INT0_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530609 LPASS_BE_INT0_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530610 { AFE_PORT_ID_INT1_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530611 LPASS_BE_INT1_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530612 { AFE_PORT_ID_INT1_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530613 LPASS_BE_INT1_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530614 { AFE_PORT_ID_INT2_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530615 LPASS_BE_INT2_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530616 { AFE_PORT_ID_INT2_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530617 LPASS_BE_INT2_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530618 { AFE_PORT_ID_INT3_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530619 LPASS_BE_INT3_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530620 { AFE_PORT_ID_INT3_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530621 LPASS_BE_INT3_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530622 { AFE_PORT_ID_INT4_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530623 LPASS_BE_INT4_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530624 { AFE_PORT_ID_INT4_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530625 LPASS_BE_INT4_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530626 { AFE_PORT_ID_INT5_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530627 LPASS_BE_INT5_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530628 { AFE_PORT_ID_INT5_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530629 LPASS_BE_INT5_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530630 { AFE_PORT_ID_INT6_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530631 LPASS_BE_INT6_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530632 { AFE_PORT_ID_INT6_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530633 LPASS_BE_INT6_MI2S_TX},
Dieter Luecking70668fc2018-09-28 15:03:01 +0200634 { AFE_PORT_ID_SENARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
635 LPASS_BE_SEN_AUXPCM_RX},
636 { AFE_PORT_ID_SENARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
637 LPASS_BE_SEN_AUXPCM_TX},
638 { AFE_PORT_ID_SENARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
639 LPASS_BE_SENARY_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530640 { AFE_PORT_ID_WSA_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530641 LPASS_BE_WSA_CDC_DMA_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530642 { AFE_PORT_ID_WSA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530643 LPASS_BE_WSA_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530644 { AFE_PORT_ID_WSA_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530645 LPASS_BE_WSA_CDC_DMA_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530646 { AFE_PORT_ID_WSA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530647 LPASS_BE_WSA_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530648 { AFE_PORT_ID_WSA_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530649 LPASS_BE_WSA_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530650 { AFE_PORT_ID_VA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530651 LPASS_BE_VA_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530652 { AFE_PORT_ID_VA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530653 LPASS_BE_VA_CDC_DMA_TX_1},
Xiaoyu Yef439aed2019-01-02 16:40:01 -0800654 { AFE_PORT_ID_VA_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
655 LPASS_BE_VA_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530656 { AFE_PORT_ID_RX_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530657 LPASS_BE_RX_CDC_DMA_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530658 { AFE_PORT_ID_TX_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530659 LPASS_BE_TX_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530660 { AFE_PORT_ID_RX_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530661 LPASS_BE_RX_CDC_DMA_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530662 { AFE_PORT_ID_TX_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530663 LPASS_BE_TX_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530664 { AFE_PORT_ID_RX_CODEC_DMA_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530665 LPASS_BE_RX_CDC_DMA_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530666 { AFE_PORT_ID_TX_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530667 LPASS_BE_TX_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530668 { AFE_PORT_ID_RX_CODEC_DMA_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530669 LPASS_BE_RX_CDC_DMA_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530670 { AFE_PORT_ID_TX_CODEC_DMA_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530671 LPASS_BE_TX_CDC_DMA_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530672 { AFE_PORT_ID_RX_CODEC_DMA_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530673 LPASS_BE_RX_CDC_DMA_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530674 { AFE_PORT_ID_TX_CODEC_DMA_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530675 LPASS_BE_TX_CDC_DMA_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530676 { AFE_PORT_ID_RX_CODEC_DMA_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530677 LPASS_BE_RX_CDC_DMA_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530678 { AFE_PORT_ID_TX_CODEC_DMA_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530679 LPASS_BE_TX_CDC_DMA_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530680 { AFE_PORT_ID_RX_CODEC_DMA_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530681 LPASS_BE_RX_CDC_DMA_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530682 { AFE_PORT_ID_RX_CODEC_DMA_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530683 LPASS_BE_RX_CDC_DMA_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530684 { AFE_PORT_ID_PRIMARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200685 LPASS_BE_PRI_SPDIF_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530686 { AFE_PORT_ID_SECONDARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200687 LPASS_BE_SEC_SPDIF_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530688 { AFE_PORT_ID_SECONDARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200689 LPASS_BE_SEC_SPDIF_TX},
Surendar Karka3ef3d812018-09-28 18:52:35 +0530690 { SLIMBUS_9_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_9_RX},
691 { SLIMBUS_9_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_9_TX},
Surendar Karkad47fda42018-05-20 19:21:10 +0530692 { AFE_LOOPBACK_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_AFE_LOOPBACK_TX},
Ralf Herz29e07132019-07-26 15:15:21 +0200693 { AFE_PORT_ID_PRIMARY_META_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
694 LPASS_BE_PRI_META_MI2S_RX},
695 { AFE_PORT_ID_SECONDARY_META_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
696 LPASS_BE_SEC_META_MI2S_RX},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530697};
698
699/* Track ASM playback & capture sessions of DAI
700 * Track LSM listen sessions
701 */
702static struct msm_pcm_routing_fdai_data
703 fe_dai_map[MSM_FRONTEND_DAI_MAX][2] = {
704 /* MULTIMEDIA1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530705 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
706 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530707 /* MULTIMEDIA2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530708 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
709 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530710 /* MULTIMEDIA3 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530711 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
712 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530713 /* MULTIMEDIA4 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530714 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
715 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530716 /* MULTIMEDIA5 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530717 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
718 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530719 /* MULTIMEDIA6 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530720 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
721 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530722 /* MULTIMEDIA7*/
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530723 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
724 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530725 /* MULTIMEDIA8 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530726 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
727 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530728 /* MULTIMEDIA9 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530729 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
730 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530731 /* MULTIMEDIA10 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530732 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
733 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530734 /* MULTIMEDIA11 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530735 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
736 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530737 /* MULTIMEDIA12 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530738 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
739 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530740 /* MULTIMEDIA13 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530741 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
742 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530743 /* MULTIMEDIA14 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530744 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
745 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530746 /* MULTIMEDIA15 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530747 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
748 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530749 /* MULTIMEDIA16 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530750 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
751 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530752 /* MULTIMEDIA17 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530753 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
754 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530755 /* MULTIMEDIA18 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530756 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
757 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530758 /* MULTIMEDIA19 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530759 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
760 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530761 /* MULTIMEDIA20 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530762 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
763 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Derek Chen07c6d1c2018-07-05 10:39:25 -0700764 /* MULTIMEDIA21 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530765 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
766 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Derek Chenb097d922019-07-31 17:28:02 -0700767 /* MULTIMEDIA22 */
768 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
769 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Surendar Karkac1cde372018-08-14 18:56:24 +0530770 /* MULTIMEDIA26 */
771 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
772 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
773 /* MULTIMEDIA27 */
774 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
775 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530776 /* MULTIMEDIA28 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530777 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
778 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530779 /* MULTIMEDIA29 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530780 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
781 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +0530782 /* MULTIMEDIA30 */
783 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
784 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530785 /* VOIP */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530786 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
787 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530788 /* AFE_RX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530789 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
790 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530791 /* AFE_TX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530792 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
793 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530794 /* VOICE_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530795 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
796 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530797 /* DTMF_RX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530798 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
799 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530800 /* QCHAT */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530801 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
802 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530803 /* VOLTE_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530804 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
805 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530806 /* LSM1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530807 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
808 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530809 /* LSM2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530810 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
811 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530812 /* LSM3 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530813 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
814 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530815 /* LSM4 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530816 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
817 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530818 /* LSM5 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530819 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
820 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530821 /* LSM6 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530822 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
823 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530824 /* LSM7 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530825 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
826 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530827 /* LSM8 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530828 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
829 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530830 /* VOICE2_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530831 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
832 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530833 /* VOICEMMODE1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530834 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
835 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530836 /* VOICEMMODE2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530837 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
838 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530839};
840
841static unsigned long session_copp_map[MSM_FRONTEND_DAI_MAX][2]
842 [MSM_BACKEND_DAI_MAX];
843static struct msm_pcm_routing_app_type_data app_type_cfg[MAX_APP_TYPES];
844static struct msm_pcm_routing_app_type_data lsm_app_type_cfg[MAX_APP_TYPES];
845static struct msm_pcm_stream_app_type_cfg
846 fe_dai_app_type_cfg[MSM_FRONTEND_DAI_MAX][2][MSM_BACKEND_DAI_MAX];
847
848static int last_be_id_configured[MSM_FRONTEND_DAI_MAX][MAX_SESSION_TYPES];
849
Florian Pfister522073c2018-09-26 15:39:15 +0200850/* The caller of this should acquire routing lock */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530851void msm_pcm_routing_get_bedai_info(int be_idx,
852 struct msm_pcm_routing_bdai_data *be_dai)
853{
854 if (be_idx >= 0 && be_idx < MSM_BACKEND_DAI_MAX)
855 memcpy(be_dai, &msm_bedais[be_idx],
856 sizeof(struct msm_pcm_routing_bdai_data));
857}
858
Florian Pfister522073c2018-09-26 15:39:15 +0200859/* The caller of this should acquire routing lock */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530860void msm_pcm_routing_get_fedai_info(int fe_idx, int sess_type,
861 struct msm_pcm_routing_fdai_data *fe_dai)
862{
863 if ((sess_type == SESSION_TYPE_TX) || (sess_type == SESSION_TYPE_RX))
864 memcpy(fe_dai, &fe_dai_map[fe_idx][sess_type],
865 sizeof(struct msm_pcm_routing_fdai_data));
866}
867
868void msm_pcm_routing_acquire_lock(void)
869{
870 mutex_lock(&routing_lock);
871}
872
873void msm_pcm_routing_release_lock(void)
874{
875 mutex_unlock(&routing_lock);
876}
877
878static int msm_pcm_routing_get_app_type_idx(int app_type)
879{
880 int idx;
881
882 pr_debug("%s: app_type: %d\n", __func__, app_type);
883 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
884 if (app_type_cfg[idx].app_type == app_type)
885 return idx;
886 }
887 pr_info("%s: App type not available, fallback to default\n", __func__);
888 return 0;
889}
890
891static int msm_pcm_routing_get_lsm_app_type_idx(int app_type)
892{
893 int idx;
894
895 pr_debug("%s: app_type: %d\n", __func__, app_type);
896 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
897 if (lsm_app_type_cfg[idx].app_type == app_type)
898 return idx;
899 }
900 pr_debug("%s: App type not available, fallback to default\n", __func__);
901 return 0;
902}
903
Surendar Karkae7507512018-07-20 15:46:54 +0530904static int get_port_id(int port_id)
905{
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +0530906 int ret = port_id;
907
908 if (port_id == AFE_LOOPBACK_TX) {
909 /*
910 * Return afe_loopback_tx_port_id if set. Else return
911 * msm_ec_ref_port_id to maintain backward compatibility.
912 */
913 if (afe_loopback_tx_port_id != -1)
914 ret = afe_loopback_tx_port_id;
915 else
916 ret = msm_ec_ref_port_id;
917 }
918
919 return ret;
Surendar Karkae7507512018-07-20 15:46:54 +0530920}
921
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530922static bool is_mm_lsm_fe_id(int fe_id)
923{
924 bool rc = true;
925
926 if (fe_id > MSM_FRONTEND_DAI_MM_MAX_ID &&
927 ((fe_id < MSM_FRONTEND_DAI_LSM1) ||
928 (fe_id > MSM_FRONTEND_DAI_LSM8))) {
929 rc = false;
930 }
931 return rc;
932}
933
Bhalchandra Gajareeed46bd2018-05-15 16:48:07 -0700934/*
935 * msm_pcm_routing_send_chmix_cfg:
936 * send the channel mixer command to mix the input channels
937 * into output channels.
938 *
939 * @fe_id: front end id
940 * @ip_channel_cnt: input channel count
941 * @op_channel_cnt: output channel count
942 * @ch_wght_coeff: channel weight co-efficients for channel mixing
943 * @session_type: indicates session is of type TX or RX
944 * @stream_type: indicates either Audio or Listen stream type
945 */
946int msm_pcm_routing_send_chmix_cfg(int fe_id, int ip_channel_cnt,
947 int op_channel_cnt, int *ch_wght_coeff,
948 int session_type, int stream_type)
949{
950
951 int rc = 0, idx = 0;
952 int be_index = 0, port_id;
953 unsigned int session_id = 0;
954
955 pr_debug("%s:fe_id[%d] ip_ch[%d] op_ch[%d] sess_type [%d], stream_type[%d]",
956 __func__, fe_id, ip_channel_cnt, op_channel_cnt, session_type,
957 stream_type);
958 if (!is_mm_lsm_fe_id(fe_id)) {
959 /* bad ID assigned in machine driver */
960 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
961 return -EINVAL;
962 }
963
964 if (ch_wght_coeff == NULL) {
965 pr_err("%s: Null channel weightage coefficients passed\n",
966 __func__);
967 return -EINVAL;
968 }
969
970 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
971 port_id = msm_bedais[be_index].port_id;
972 if (!msm_bedais[be_index].active ||
973 !test_bit(fe_id, &msm_bedais[be_index].fe_sessions[0]))
974 continue;
975
976 session_id = fe_dai_map[fe_id][session_type].strm_id;
977
978 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
979 unsigned long copp =
980 session_copp_map[fe_id][session_type][be_index];
981 if (!test_bit(idx, &copp))
982 continue;
983 msm_qti_pp_send_chmix_cfg_cmd(port_id, idx,
984 session_id, ip_channel_cnt,
985 op_channel_cnt, ch_wght_coeff,
986 session_type, stream_type);
987 if (rc < 0)
988 pr_err("%s: err setting channel mix config\n",
989 __func__);
990 }
991 }
992
993 return 0;
994}
995EXPORT_SYMBOL(msm_pcm_routing_send_chmix_cfg);
996
Dhananjay Kumar807f7e92018-12-11 18:10:08 +0530997/**
998 * msm_pcm_routing_set_channel_mixer_cfg - cache channel mixer
999 * setting before use case start.
1000 *
1001 * @fe_id: frontend idx
1002 * @type: stream direction type
1003 * @params: parameters of channel mixer setting
1004 *
1005 * Return 0 for success
1006 */
1007int msm_pcm_routing_set_channel_mixer_cfg(
1008 int fe_id, int type,
1009 struct msm_pcm_channel_mixer *params)
1010{
1011 int i, j = 0;
1012
1013 channel_mixer_v2[fe_id][type].enable = params->enable;
1014 channel_mixer_v2[fe_id][type].rule = params->rule;
1015 channel_mixer_v2[fe_id][type].input_channel =
1016 params->input_channel;
1017 channel_mixer_v2[fe_id][type].output_channel =
1018 params->output_channel;
1019 channel_mixer_v2[fe_id][type].port_idx = params->port_idx;
1020
1021 for (i = 0; i < ADM_MAX_CHANNELS; i++)
1022 channel_mixer_v2[fe_id][type].in_ch_map[i] =
1023 params->in_ch_map[i];
1024 for (i = 0; i < ADM_MAX_CHANNELS; i++)
1025 channel_mixer_v2[fe_id][type].out_ch_map[i] =
1026 params->out_ch_map[i];
1027
1028 for (i = 0; i < ADM_MAX_CHANNELS; i++)
1029 for (j = 0; j < ADM_MAX_CHANNELS; j++)
1030 channel_mixer_v2[fe_id][type].channel_weight[i][j] =
1031 params->channel_weight[i][j];
1032
1033 channel_mixer_v2[fe_id][type].override_in_ch_map =
1034 params->override_in_ch_map;
1035 channel_mixer_v2[fe_id][type].override_out_ch_map =
1036 params->override_out_ch_map;
1037
1038 return 0;
1039}
1040EXPORT_SYMBOL(msm_pcm_routing_set_channel_mixer_cfg);
1041
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301042int msm_pcm_routing_reg_stream_app_type_cfg(
1043 int fedai_id, int session_type, int be_id,
1044 struct msm_pcm_stream_app_type_cfg *cfg_data)
1045{
1046 int ret = 0;
1047
1048 if (cfg_data == NULL) {
1049 pr_err("%s: Received NULL pointer for cfg_data\n", __func__);
1050 ret = -EINVAL;
1051 goto done;
1052 }
1053
1054 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
1055 __func__, fedai_id, session_type, be_id,
1056 cfg_data->app_type, cfg_data->acdb_dev_id,
1057 cfg_data->sample_rate);
1058
1059 if (!is_mm_lsm_fe_id(fedai_id)) {
1060 pr_err("%s: Invalid machine driver ID %d\n",
1061 __func__, fedai_id);
1062 ret = -EINVAL;
1063 goto done;
1064 }
1065 if (session_type != SESSION_TYPE_RX &&
1066 session_type != SESSION_TYPE_TX) {
1067 pr_err("%s: Invalid session type %d\n",
1068 __func__, session_type);
1069 ret = -EINVAL;
1070 goto done;
1071 }
1072 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1073 pr_err("%s: Received out of bounds be_id %d\n",
1074 __func__, be_id);
1075 ret = -EINVAL;
1076 goto done;
1077 }
1078
1079 fe_dai_app_type_cfg[fedai_id][session_type][be_id] = *cfg_data;
1080
1081 /*
1082 * Store the BE ID of the configuration information set as the latest so
1083 * the get mixer control knows what to return.
1084 */
1085 last_be_id_configured[fedai_id][session_type] = be_id;
1086
1087done:
1088 return ret;
1089}
1090EXPORT_SYMBOL(msm_pcm_routing_reg_stream_app_type_cfg);
1091
1092/**
1093 * msm_pcm_routing_get_stream_app_type_cfg
1094 *
1095 * Receives fedai_id, session_type, be_id, and populates app_type,
1096 * acdb_dev_id, & sample rate. Returns 0 on success. On failure returns
1097 * -EINVAL and does not alter passed values.
1098 *
1099 * fedai_id - Passed value, front end ID for which app type config is wanted
1100 * session_type - Passed value, session type for which app type config
1101 * is wanted
1102 * be_id - Returned value, back end device id the app type config data is for
1103 * cfg_data - Returned value, configuration data used by app type config
1104 */
1105int msm_pcm_routing_get_stream_app_type_cfg(
1106 int fedai_id, int session_type, int *bedai_id,
1107 struct msm_pcm_stream_app_type_cfg *cfg_data)
1108{
1109 int be_id;
1110 int ret = 0;
1111
1112 if (bedai_id == NULL) {
1113 pr_err("%s: Received NULL pointer for backend ID\n", __func__);
1114 ret = -EINVAL;
1115 goto done;
1116 } else if (cfg_data == NULL) {
1117 pr_err("%s: NULL pointer sent for cfg_data\n", __func__);
1118 ret = -EINVAL;
1119 goto done;
1120 } else if (!is_mm_lsm_fe_id(fedai_id)) {
1121 pr_err("%s: Invalid FE ID %d\n", __func__, fedai_id);
1122 ret = -EINVAL;
1123 goto done;
1124 } else if (session_type != SESSION_TYPE_RX &&
1125 session_type != SESSION_TYPE_TX) {
1126 pr_err("%s: Invalid session type %d\n", __func__, session_type);
1127 ret = -EINVAL;
1128 goto done;
1129 }
1130
1131 be_id = last_be_id_configured[fedai_id][session_type];
1132 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1133 pr_err("%s: Invalid BE ID %d\n", __func__, be_id);
1134 ret = -EINVAL;
1135 goto done;
1136 }
1137
1138 *bedai_id = be_id;
1139 *cfg_data = fe_dai_app_type_cfg[fedai_id][session_type][be_id];
1140 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
1141 __func__, fedai_id, session_type, *bedai_id,
1142 cfg_data->app_type, cfg_data->acdb_dev_id,
1143 cfg_data->sample_rate);
1144done:
1145 return ret;
1146}
1147EXPORT_SYMBOL(msm_pcm_routing_get_stream_app_type_cfg);
1148
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301149static struct cal_block_data *msm_routing_find_topology_by_path(int path,
1150 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301151{
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301152 struct list_head *ptr, *next;
1153 struct cal_block_data *cal_block = NULL;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301154 pr_debug("%s\n", __func__);
1155
1156 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301157 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301158
1159 cal_block = list_entry(ptr,
1160 struct cal_block_data, list);
1161
Vikram Panduranga770b8382017-09-27 12:17:36 -07001162 if (cal_utils_is_cal_stale(cal_block))
1163 continue;
1164
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301165 if (((struct audio_cal_info_adm_top *)cal_block
1166 ->cal_info)->path == path) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301167 return cal_block;
1168 }
1169 }
1170 pr_debug("%s: Can't find topology for path %d\n", __func__, path);
1171 return NULL;
1172}
1173
1174static struct cal_block_data *msm_routing_find_topology(int path,
1175 int app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301176 int acdb_id,
Haynes Mathew George4728d6b2018-06-08 17:26:24 -07001177 int cal_index,
1178 bool exact)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301179{
1180 struct list_head *ptr, *next;
1181 struct cal_block_data *cal_block = NULL;
1182 struct audio_cal_info_adm_top *cal_info;
1183
1184 pr_debug("%s\n", __func__);
1185
1186 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301187 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301188
1189 cal_block = list_entry(ptr,
1190 struct cal_block_data, list);
1191
Vikram Panduranga770b8382017-09-27 12:17:36 -07001192 if (cal_utils_is_cal_stale(cal_block))
1193 continue;
1194
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301195 cal_info = (struct audio_cal_info_adm_top *)
1196 cal_block->cal_info;
1197 if ((cal_info->path == path) &&
1198 (cal_info->app_type == app_type) &&
1199 (cal_info->acdb_id == acdb_id)) {
1200 return cal_block;
1201 }
1202 }
Haynes Mathew George4728d6b2018-06-08 17:26:24 -07001203 pr_debug("%s: Can't find topology for path %d, app %d, "
1204 "acdb_id %d %s\n", __func__, path, app_type, acdb_id,
1205 exact ? "fail" : "defaulting to search by path");
1206 return exact ? NULL : msm_routing_find_topology_by_path(path,
1207 cal_index);
1208}
1209
1210static int msm_routing_find_topology_on_index(int session_type, int app_type,
1211 int acdb_dev_id, int idx,
1212 bool exact)
1213{
1214 int topology = -EINVAL;
1215 struct cal_block_data *cal_block = NULL;
1216
1217 mutex_lock(&cal_data[idx]->lock);
1218 cal_block = msm_routing_find_topology(session_type, app_type,
1219 acdb_dev_id, idx, exact);
1220 if (cal_block != NULL) {
1221 topology = ((struct audio_cal_info_adm_top *)
1222 cal_block->cal_info)->topology;
1223 }
1224 mutex_unlock(&cal_data[idx]->lock);
1225 return topology;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301226}
1227
Vikram Panduranga770b8382017-09-27 12:17:36 -07001228/*
1229 * Retrieving cal_block will mark cal_block as stale.
1230 * Hence it cannot be reused or resent unless the flag
1231 * is reset.
1232 */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301233static int msm_routing_get_adm_topology(int fedai_id, int session_type,
1234 int be_id)
1235{
1236 int topology = NULL_COPP_TOPOLOGY;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301237 int app_type = 0, acdb_dev_id = 0;
1238
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301239 pr_debug("%s: fedai_id %d, session_type %d, be_id %d\n",
1240 __func__, fedai_id, session_type, be_id);
1241
1242 if (cal_data == NULL)
1243 goto done;
1244
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301245 app_type = fe_dai_app_type_cfg[fedai_id][session_type][be_id].app_type;
1246 acdb_dev_id =
1247 fe_dai_app_type_cfg[fedai_id][session_type][be_id].acdb_dev_id;
1248
Haynes Mathew George4728d6b2018-06-08 17:26:24 -07001249 pr_debug("%s: Check for exact LSM topology\n", __func__);
1250 topology = msm_routing_find_topology_on_index(session_type,
1251 app_type,
1252 acdb_dev_id,
1253 ADM_LSM_TOPOLOGY_CAL_TYPE_IDX,
1254 true /*exact*/);
1255 if (topology < 0) {
1256 pr_debug("%s: Check for compatible topology\n", __func__);
1257 topology = msm_routing_find_topology_on_index(session_type,
1258 app_type,
1259 acdb_dev_id,
1260 ADM_TOPOLOGY_CAL_TYPE_IDX,
1261 false /*exact*/);
1262 if (topology < 0)
1263 topology = NULL_COPP_TOPOLOGY;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301264 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301265done:
1266 pr_debug("%s: Using topology %d\n", __func__, topology);
1267 return topology;
1268}
1269
1270static uint8_t is_be_dai_extproc(int be_dai)
1271{
1272 if (be_dai == MSM_BACKEND_DAI_EXTPROC_RX ||
1273 be_dai == MSM_BACKEND_DAI_EXTPROC_TX ||
1274 be_dai == MSM_BACKEND_DAI_EXTPROC_EC_TX)
1275 return 1;
1276 else
1277 return 0;
1278}
1279
1280static void msm_pcm_routing_build_matrix(int fedai_id, int sess_type,
1281 int path_type, int perf_mode,
1282 uint32_t passthr_mode)
1283{
1284 int i, port_type, j, num_copps = 0;
1285 struct route_payload payload;
1286
1287 port_type = ((path_type == ADM_PATH_PLAYBACK ||
1288 path_type == ADM_PATH_COMPRESSED_RX) ?
1289 MSM_AFE_PORT_TYPE_RX : MSM_AFE_PORT_TYPE_TX);
1290
1291 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1292 if (!is_be_dai_extproc(i) &&
1293 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1294 (msm_bedais[i].active) &&
1295 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
Surendar Karkae7507512018-07-20 15:46:54 +05301296 int port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301297 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1298 unsigned long copp =
1299 session_copp_map[fedai_id][sess_type][i];
1300 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301301 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301302 payload.copp_idx[num_copps] = j;
1303 payload.app_type[num_copps] =
1304 fe_dai_app_type_cfg
1305 [fedai_id][sess_type][i]
1306 .app_type;
1307 payload.acdb_dev_id[num_copps] =
1308 fe_dai_app_type_cfg
1309 [fedai_id][sess_type][i]
1310 .acdb_dev_id;
1311 payload.sample_rate[num_copps] =
1312 fe_dai_app_type_cfg
1313 [fedai_id][sess_type][i]
1314 .sample_rate;
1315 num_copps++;
1316 }
1317 }
1318 }
1319 }
1320
1321 if (num_copps) {
1322 payload.num_copps = num_copps;
1323 payload.session_id = fe_dai_map[fedai_id][sess_type].strm_id;
1324 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1325 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1326 }
1327}
1328
1329void msm_pcm_routing_reg_psthr_stream(int fedai_id, int dspst_id,
1330 int stream_type)
1331{
1332 int i, session_type, path_type, port_type;
1333 u32 mode = 0;
1334
1335 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1336 /* bad ID assigned in machine driver */
1337 pr_err("%s: bad MM ID\n", __func__);
1338 return;
1339 }
1340
1341 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1342 session_type = SESSION_TYPE_RX;
1343 path_type = ADM_PATH_PLAYBACK;
1344 port_type = MSM_AFE_PORT_TYPE_RX;
1345 } else {
1346 session_type = SESSION_TYPE_TX;
1347 path_type = ADM_PATH_LIVE_REC;
1348 port_type = MSM_AFE_PORT_TYPE_TX;
1349 }
1350
1351 mutex_lock(&routing_lock);
1352
1353 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1354 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1355 if (!is_be_dai_extproc(i) &&
1356 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1357 (msm_bedais[i].active) &&
1358 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1359 mode = afe_get_port_type(msm_bedais[i].port_id);
1360 adm_connect_afe_port(mode, dspst_id,
1361 msm_bedais[i].port_id);
1362 break;
1363 }
1364 }
1365 mutex_unlock(&routing_lock);
1366}
1367
1368static bool route_check_fe_id_adm_support(int fe_id)
1369{
1370 bool rc = true;
1371
1372 if ((fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1373 (fe_id <= MSM_FRONTEND_DAI_LSM8)) {
1374 /* fe id is listen while port is set to afe */
1375 if (lsm_port_index != ADM_LSM_PORT_INDEX) {
1376 pr_debug("%s: fe_id %d, lsm mux slim port %d\n",
1377 __func__, fe_id, lsm_port_index);
1378 rc = false;
1379 }
1380 }
1381
1382 return rc;
1383}
1384
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001385/*
1386 * msm_pcm_routing_get_pp_ch_cnt:
1387 * Read the processed channel count
1388 *
1389 * @fe_id: Front end ID
1390 * @session_type: Inidicates RX or TX session type
1391 */
1392int msm_pcm_routing_get_pp_ch_cnt(int fe_id, int session_type)
1393{
1394 struct msm_pcm_stream_app_type_cfg cfg_data;
1395 int be_id = 0, app_type_idx = 0, app_type = 0;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +05301396 int ret = -EINVAL;
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001397
1398 memset(&cfg_data, 0, sizeof(cfg_data));
1399
1400 if (!is_mm_lsm_fe_id(fe_id)) {
1401 pr_err("%s: bad MM ID\n", __func__);
1402 return -EINVAL;
1403 }
1404
1405 ret = msm_pcm_routing_get_stream_app_type_cfg(fe_id, session_type,
1406 &be_id, &cfg_data);
1407 if (ret) {
Mangesh Kunchamwardaf02b02018-06-28 19:42:24 +05301408 pr_err("%s: cannot get stream app type cfg\n", __func__);
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001409 return ret;
1410 }
1411
1412 app_type = cfg_data.app_type;
1413 app_type_idx = msm_pcm_routing_get_lsm_app_type_idx(app_type);
1414 return lsm_app_type_cfg[app_type_idx].num_out_channels;
1415}
1416EXPORT_SYMBOL(msm_pcm_routing_get_pp_ch_cnt);
1417
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301418int msm_pcm_routing_reg_phy_compr_stream(int fe_id, int perf_mode,
1419 int dspst_id, int stream_type,
1420 uint32_t passthr_mode)
1421{
1422 int i, j, session_type, path_type, port_type, topology;
1423 int num_copps = 0;
1424 struct route_payload payload;
1425 u32 channels, sample_rate;
1426 u16 bit_width = 16;
1427 bool is_lsm;
1428
1429 pr_debug("%s:fe_id[%d] perf_mode[%d] id[%d] stream_type[%d] passt[%d]",
1430 __func__, fe_id, perf_mode, dspst_id,
1431 stream_type, passthr_mode);
1432 if (!is_mm_lsm_fe_id(fe_id)) {
1433 /* bad ID assigned in machine driver */
1434 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
1435 return -EINVAL;
1436 }
1437
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301438 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1439 session_type = SESSION_TYPE_RX;
1440 if (passthr_mode != LEGACY_PCM)
1441 path_type = ADM_PATH_COMPRESSED_RX;
1442 else
1443 path_type = ADM_PATH_PLAYBACK;
1444 port_type = MSM_AFE_PORT_TYPE_RX;
1445 } else if (stream_type == SNDRV_PCM_STREAM_CAPTURE) {
1446 session_type = SESSION_TYPE_TX;
Laxminath Kasam38070be2017-08-17 18:21:59 +05301447 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301448 path_type = ADM_PATH_COMPRESSED_TX;
1449 else
1450 path_type = ADM_PATH_LIVE_REC;
1451 port_type = MSM_AFE_PORT_TYPE_TX;
1452 } else {
1453 pr_err("%s: invalid stream type %d\n", __func__, stream_type);
1454 return -EINVAL;
1455 }
1456
1457 is_lsm = (fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1458 (fe_id <= MSM_FRONTEND_DAI_LSM8);
1459 mutex_lock(&routing_lock);
1460
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301461 fe_dai_map[fe_id][session_type].strm_id = dspst_id;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301462 fe_dai_map[fe_id][session_type].perf_mode = perf_mode;
1463 fe_dai_map[fe_id][session_type].passthr_mode = passthr_mode;
1464 if (!route_check_fe_id_adm_support(fe_id)) {
1465 /* ignore adm open if not supported for fe_id */
1466 pr_debug("%s: No ADM support for fe id %d\n", __func__, fe_id);
1467 mutex_unlock(&routing_lock);
1468 return 0;
1469 }
1470
1471 payload.num_copps = 0; /* only RX needs to use payload */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301472 /* re-enable EQ if active */
1473 msm_qti_pp_send_eq_values(fe_id);
1474 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301475 if (!is_be_dai_extproc(i) &&
1476 (afe_get_port_type(msm_bedais[i].port_id) ==
1477 port_type) &&
1478 (msm_bedais[i].active) &&
1479 (test_bit(fe_id, &msm_bedais[i].fe_sessions[0]))) {
1480 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301481 int port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301482
1483 /*
1484 * check if ADM needs to be configured with different
1485 * channel mapping than backend
1486 */
1487 if (!msm_bedais[i].adm_override_ch)
1488 channels = msm_bedais[i].channel;
1489 else
1490 channels = msm_bedais[i].adm_override_ch;
1491
1492 bit_width = msm_routing_get_bit_width(
1493 msm_bedais[i].format);
1494 app_type =
1495 fe_dai_app_type_cfg[fe_id][session_type][i].app_type;
1496 if (app_type && is_lsm) {
1497 app_type_idx =
1498 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1499 sample_rate =
1500 fe_dai_app_type_cfg[fe_id][session_type][i]
1501 .sample_rate;
1502 bit_width =
1503 lsm_app_type_cfg[app_type_idx].bit_width;
1504 } else if (app_type) {
1505 app_type_idx =
1506 msm_pcm_routing_get_app_type_idx(
1507 app_type);
1508 sample_rate =
1509 fe_dai_app_type_cfg[fe_id][session_type][i].sample_rate;
1510 bit_width =
1511 app_type_cfg[app_type_idx].bit_width;
1512 } else {
1513 sample_rate = msm_bedais[i].sample_rate;
1514 }
1515 acdb_dev_id =
1516 fe_dai_app_type_cfg[fe_id][session_type][i].acdb_dev_id;
1517 topology = msm_routing_get_adm_topology(fe_id,
1518 session_type,
1519 i);
1520 if ((passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
1521 || (passthr_mode ==
Ralf Herzc8701f72018-06-20 11:37:35 +02001522 COMPRESSED_PASSTHROUGH_GEN)
1523 || (passthr_mode ==
1524 COMPRESSED_PASSTHROUGH_IEC61937))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301525 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
1526 pr_debug("%s: Before adm open topology %d\n", __func__,
1527 topology);
Ramlal Karrab6ef9e02019-08-14 17:53:29 +05301528 if (hifi_filter_enabled)
1529 bit_width = msm_routing_get_bit_width(
1530 SNDRV_PCM_FORMAT_S32_LE);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301531
1532 copp_idx =
Surendar Karkae7507512018-07-20 15:46:54 +05301533 adm_open(port_id, path_type, sample_rate,
1534 channels, topology, perf_mode,
1535 bit_width, app_type, acdb_dev_id,
1536 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301537 if ((copp_idx < 0) ||
1538 (copp_idx >= MAX_COPPS_PER_PORT)) {
1539 pr_err("%s:adm open failed coppid:%d\n",
1540 __func__, copp_idx);
1541 mutex_unlock(&routing_lock);
1542 return -EINVAL;
1543 }
1544 pr_debug("%s: set idx bit of fe:%d, type: %d, be:%d\n",
1545 __func__, fe_id, session_type, i);
1546 set_bit(copp_idx,
1547 &session_copp_map[fe_id][session_type][i]);
1548
1549 if (msm_is_resample_needed(
1550 sample_rate,
1551 msm_bedais[i].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05301552 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301553 msm_bedais[i].sample_rate);
1554
1555 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1556 unsigned long copp =
1557 session_copp_map[fe_id][session_type][i];
1558 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301559 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301560 payload.copp_idx[num_copps] = j;
1561 payload.app_type[num_copps] =
1562 fe_dai_app_type_cfg
1563 [fe_id][session_type][i]
1564 .app_type;
1565 payload.acdb_dev_id[num_copps] =
1566 fe_dai_app_type_cfg
1567 [fe_id][session_type][i]
1568 .acdb_dev_id;
1569 payload.sample_rate[num_copps] =
1570 fe_dai_app_type_cfg
1571 [fe_id][session_type][i]
1572 .sample_rate;
1573 num_copps++;
1574 }
1575 }
1576 if (passthr_mode != COMPRESSED_PASSTHROUGH_DSD
Ralf Herzc8701f72018-06-20 11:37:35 +02001577 && passthr_mode != COMPRESSED_PASSTHROUGH_GEN
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301578 && passthr_mode != COMPRESSED_PASSTHROUGH_IEC61937)
Surendar Karkae7507512018-07-20 15:46:54 +05301579 msm_routing_send_device_pp_params(port_id,
1580 copp_idx, fe_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301581 }
1582 }
1583 if (num_copps) {
1584 payload.num_copps = num_copps;
1585 payload.session_id = fe_dai_map[fe_id][session_type].strm_id;
1586 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1587 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1588 }
1589 mutex_unlock(&routing_lock);
1590 return 0;
1591}
1592
1593static u32 msm_pcm_routing_get_voc_sessionid(u16 val)
1594{
1595 u32 session_id;
1596
1597 switch (val) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301598 case MSM_FRONTEND_DAI_QCHAT:
1599 session_id = voc_get_session_id(QCHAT_SESSION_NAME);
1600 break;
1601 case MSM_FRONTEND_DAI_VOIP:
1602 session_id = voc_get_session_id(VOIP_SESSION_NAME);
1603 break;
1604 case MSM_FRONTEND_DAI_VOICEMMODE1:
1605 session_id = voc_get_session_id(VOICEMMODE1_NAME);
1606 break;
1607 case MSM_FRONTEND_DAI_VOICEMMODE2:
1608 session_id = voc_get_session_id(VOICEMMODE2_NAME);
1609 break;
1610 default:
1611 session_id = 0;
1612 }
1613
1614 pr_debug("%s session_id 0x%x", __func__, session_id);
1615 return session_id;
1616}
1617
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301618static int msm_pcm_routing_channel_mixer_v2(int fe_id, bool perf_mode,
1619 int dspst_id, int stream_type)
1620{
1621 int copp_idx = 0;
1622 int sess_type = 0;
1623 int j = 0, be_id = 0;
1624 int ret = 0;
1625
1626 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 (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1632 sess_type = SESSION_TYPE_RX;
1633 else
1634 sess_type = SESSION_TYPE_TX;
1635
1636 if (!(channel_mixer_v2[fe_id][sess_type].enable)) {
1637 pr_debug("%s: channel mixer not enabled for FE %d direction %d\n",
1638 __func__, fe_id, sess_type);
1639 return 0;
1640 }
1641
1642 be_id = channel_mixer_v2[fe_id][sess_type].port_idx - 1;
1643 channel_mixer_v2[fe_id][sess_type].input_channels[0] =
1644 channel_mixer_v2[fe_id][sess_type].input_channel;
1645
1646 pr_debug("%s sess type %d,fe_id %d,override in:%d out:%d,be active %d\n",
1647 __func__, sess_type, fe_id,
1648 channel_mixer_v2[fe_id][sess_type].override_in_ch_map,
1649 channel_mixer_v2[fe_id][sess_type].override_out_ch_map,
1650 msm_bedais[be_id].active);
1651
1652 if ((msm_bedais[be_id].active) &&
1653 test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0])) {
1654 unsigned long copp =
1655 session_copp_map[fe_id][sess_type][be_id];
1656 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1657 if (test_bit(j, &copp)) {
1658 copp_idx = j;
1659 break;
1660 }
1661 }
1662
1663 ret = adm_programable_channel_mixer(
1664 msm_bedais[be_id].port_id,
1665 copp_idx, dspst_id, sess_type,
1666 &channel_mixer_v2[fe_id][sess_type], 0);
1667 }
1668
1669 return ret;
1670}
1671
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301672static int msm_pcm_routing_channel_mixer(int fe_id, bool perf_mode,
1673 int dspst_id, int stream_type)
1674{
1675 int copp_idx = 0;
1676 int sess_type = 0;
1677 int i = 0, j = 0, be_id;
1678 int ret = 0;
1679
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301680 ret = msm_pcm_routing_channel_mixer_v2(fe_id, perf_mode,
1681 dspst_id, stream_type);
1682 if (ret) {
1683 pr_err("%s channel mixer v2 cmd set failure%d\n", __func__,
1684 fe_id);
1685 return ret;
1686 }
1687
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301688 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1689 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1690 return 0;
1691 }
1692
1693 if (!(channel_mixer[fe_id].enable)) {
1694 pr_debug("%s: channel mixer not enabled for FE %d\n",
1695 __func__, fe_id);
1696 return 0;
1697 }
1698
1699 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1700 sess_type = SESSION_TYPE_RX;
1701 else
1702 sess_type = SESSION_TYPE_TX;
1703
1704 for (i = 0; i < ADM_MAX_CHANNELS && channel_input[fe_id][i] > 0;
1705 ++i) {
1706 be_id = channel_input[fe_id][i] - 1;
1707 channel_mixer[fe_id].input_channels[i] =
1708 msm_bedais[be_id].channel;
1709
1710 if ((msm_bedais[be_id].active) &&
1711 test_bit(fe_id,
1712 &msm_bedais[be_id].fe_sessions[0])) {
1713 unsigned long copp =
1714 session_copp_map[fe_id][sess_type][be_id];
1715 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1716 if (test_bit(j, &copp)) {
1717 copp_idx = j;
1718 break;
1719 }
1720 }
1721
1722 pr_debug("%s: fe %d, be %d, channel %d, copp %d\n",
1723 __func__,
1724 fe_id, be_id, msm_bedais[be_id].channel,
1725 copp_idx);
1726 ret = adm_programable_channel_mixer(
Meng Wangf016d302019-01-21 10:35:53 +08001727 get_port_id(msm_bedais[be_id].port_id),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301728 copp_idx, dspst_id, sess_type,
1729 channel_mixer + fe_id, i);
1730 }
1731 }
1732
1733 return ret;
1734}
1735
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301736/**
1737 * msm_pcm_routing_set_channel_mixer_runtime - apply channel mixer
1738 * setting during runtime.
1739 *
1740 * @be_id: backend index
1741 * @session_id: session index
1742 * @session_type: session type
1743 * @params: parameters for channel mixer
1744 *
1745 * Retuen: 0 for success, else error
1746 */
1747int msm_pcm_routing_set_channel_mixer_runtime(int be_id, int session_id,
1748 int session_type,
1749 struct msm_pcm_channel_mixer *params)
1750{
1751 int rc = 0;
1752 int port_id, copp_idx = 0;
1753
1754 be_id--;
1755 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1756 pr_err("%s: invalid backend id %d\n", __func__,
1757 be_id);
1758 return -EINVAL;
1759 }
1760
1761 port_id = msm_bedais[be_id].port_id;
1762 copp_idx = adm_get_default_copp_idx(port_id);
1763 pr_debug("%s: port_id - %d, copp_idx %d session id - %d\n",
1764 __func__, port_id, copp_idx, session_id);
1765
1766 if ((params->input_channel < 0) ||
1767 (params->input_channel > ADM_MAX_CHANNELS)) {
1768 pr_err("%s: invalid input channel %d\n", __func__,
1769 params->input_channel);
1770 return -EINVAL;
1771 }
1772
1773 if ((params->output_channel < 0) ||
1774 (params->output_channel > ADM_MAX_CHANNELS)) {
1775 pr_err("%s: invalid output channel %d\n", __func__,
1776 params->output_channel);
1777 return -EINVAL;
1778 }
1779
1780 params->input_channels[0] = params->input_channel;
1781
1782 pr_debug("%s sess type %d,override in:%d out:%d,be active %d\n",
1783 __func__, session_type,
1784 params->override_in_ch_map,
1785 params->override_out_ch_map,
1786 msm_bedais[be_id].active);
1787
1788 rc = adm_programable_channel_mixer(port_id,
1789 copp_idx,
1790 session_id,
1791 session_type,
1792 params,
1793 0);
1794 if (rc) {
1795 pr_err("%s: send params failed rc=%d\n", __func__, rc);
1796 rc = -EINVAL;
1797 }
1798 return rc;
1799}
1800EXPORT_SYMBOL(msm_pcm_routing_set_channel_mixer_runtime);
1801
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301802int msm_pcm_routing_reg_phy_stream(int fedai_id, int perf_mode,
1803 int dspst_id, int stream_type)
1804{
1805 int i, j, session_type, path_type, port_type, topology, num_copps = 0;
1806 struct route_payload payload;
1807 u32 channels, sample_rate;
1808 uint16_t bits_per_sample = 16;
1809 uint32_t passthr_mode = LEGACY_PCM;
1810 int ret = 0;
1811
1812 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1813 /* bad ID assigned in machine driver */
1814 pr_err("%s: bad MM ID %d\n", __func__, fedai_id);
1815 return -EINVAL;
1816 }
1817
1818 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1819 session_type = SESSION_TYPE_RX;
1820 path_type = ADM_PATH_PLAYBACK;
1821 port_type = MSM_AFE_PORT_TYPE_RX;
1822 } else {
1823 session_type = SESSION_TYPE_TX;
1824 path_type = ADM_PATH_LIVE_REC;
1825 port_type = MSM_AFE_PORT_TYPE_TX;
1826 }
1827
1828 mutex_lock(&routing_lock);
1829
1830 payload.num_copps = 0; /* only RX needs to use payload */
1831 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1832 fe_dai_map[fedai_id][session_type].perf_mode = perf_mode;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301833 fe_dai_map[fedai_id][session_type].passthr_mode = LEGACY_PCM;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301834
1835 /* re-enable EQ if active */
1836 msm_qti_pp_send_eq_values(fedai_id);
1837 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1838 if (!is_be_dai_extproc(i) &&
1839 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1840 (msm_bedais[i].active) &&
1841 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1842 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301843 int port_id = get_port_id(msm_bedais[i].port_id);
1844
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301845 /*
1846 * check if ADM needs to be configured with different
1847 * channel mapping than backend
1848 */
1849 if (!msm_bedais[i].adm_override_ch)
1850 channels = msm_bedais[i].channel;
1851 else
1852 channels = msm_bedais[i].adm_override_ch;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301853
1854 bits_per_sample = msm_routing_get_bit_width(
1855 msm_bedais[i].format);
1856
1857 app_type =
1858 fe_dai_app_type_cfg[fedai_id][session_type][i].app_type;
1859 if (app_type) {
1860 app_type_idx =
1861 msm_pcm_routing_get_app_type_idx(app_type);
1862 sample_rate =
1863 fe_dai_app_type_cfg[fedai_id][session_type][i]
1864 .sample_rate;
1865 bits_per_sample =
1866 app_type_cfg[app_type_idx].bit_width;
1867 } else
1868 sample_rate = msm_bedais[i].sample_rate;
1869
1870 acdb_dev_id =
1871 fe_dai_app_type_cfg[fedai_id][session_type][i]
1872 .acdb_dev_id;
1873 topology = msm_routing_get_adm_topology(fedai_id,
1874 session_type,
1875 i);
Ramlal Karrab6ef9e02019-08-14 17:53:29 +05301876 if (hifi_filter_enabled)
1877 bits_per_sample = msm_routing_get_bit_width(
1878 SNDRV_PCM_FORMAT_S32_LE);
Surendar Karkae7507512018-07-20 15:46:54 +05301879 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301880 sample_rate, channels, topology,
1881 perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +05301882 app_type, acdb_dev_id,
1883 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301884 if ((copp_idx < 0) ||
1885 (copp_idx >= MAX_COPPS_PER_PORT)) {
1886 pr_err("%s: adm open failed copp_idx:%d\n",
Vikram Panduranga770b8382017-09-27 12:17:36 -07001887 __func__, copp_idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301888 mutex_unlock(&routing_lock);
1889 return -EINVAL;
1890 }
1891 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1892 __func__, fedai_id, session_type, i);
1893 set_bit(copp_idx,
1894 &session_copp_map[fedai_id][session_type][i]);
1895
1896 if (msm_is_resample_needed(
1897 sample_rate,
1898 msm_bedais[i].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05301899 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301900 msm_bedais[i].sample_rate);
1901
1902 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1903 unsigned long copp =
1904 session_copp_map[fedai_id][session_type][i];
1905 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301906 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301907 payload.copp_idx[num_copps] = j;
1908 payload.app_type[num_copps] =
1909 fe_dai_app_type_cfg
1910 [fedai_id][session_type]
1911 [i].app_type;
1912 payload.acdb_dev_id[num_copps] =
1913 fe_dai_app_type_cfg
1914 [fedai_id][session_type]
1915 [i].acdb_dev_id;
1916 payload.sample_rate[num_copps] =
1917 fe_dai_app_type_cfg
1918 [fedai_id][session_type]
1919 [i].sample_rate;
1920 num_copps++;
1921 }
1922 }
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301923 if (perf_mode == LEGACY_PCM_MODE)
Surendar Karkae7507512018-07-20 15:46:54 +05301924 msm_pcm_routing_cfg_pp(port_id, copp_idx,
1925 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301926 }
1927 }
1928 if (num_copps) {
1929 payload.num_copps = num_copps;
1930 payload.session_id = fe_dai_map[fedai_id][session_type].strm_id;
1931 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1932 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1933 }
1934
1935 ret = msm_pcm_routing_channel_mixer(fedai_id, perf_mode,
1936 dspst_id, stream_type);
1937 mutex_unlock(&routing_lock);
1938 return ret;
1939}
1940
1941int msm_pcm_routing_reg_phy_stream_v2(int fedai_id, int perf_mode,
1942 int dspst_id, int stream_type,
1943 struct msm_pcm_routing_evt event_info)
1944{
1945 if (msm_pcm_routing_reg_phy_stream(fedai_id, perf_mode, dspst_id,
1946 stream_type)) {
1947 pr_err("%s: failed to reg phy stream\n", __func__);
1948 return -EINVAL;
1949 }
1950
1951 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1952 fe_dai_map[fedai_id][SESSION_TYPE_RX].event_info = event_info;
1953 else
1954 fe_dai_map[fedai_id][SESSION_TYPE_TX].event_info = event_info;
1955 return 0;
1956}
1957
1958void msm_pcm_routing_dereg_phy_stream(int fedai_id, int stream_type)
1959{
Surendar Karkae7507512018-07-20 15:46:54 +05301960 int i, port_type, session_type, path_type, topology, port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301961 struct msm_pcm_routing_fdai_data *fdai;
1962
1963 if (!is_mm_lsm_fe_id(fedai_id)) {
1964 /* bad ID assigned in machine driver */
1965 pr_err("%s: bad MM ID\n", __func__);
1966 return;
1967 }
1968
1969 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1970 port_type = MSM_AFE_PORT_TYPE_RX;
1971 session_type = SESSION_TYPE_RX;
1972 path_type = ADM_PATH_PLAYBACK;
1973 } else {
1974 port_type = MSM_AFE_PORT_TYPE_TX;
1975 session_type = SESSION_TYPE_TX;
1976 path_type = ADM_PATH_LIVE_REC;
1977 }
1978
1979 mutex_lock(&routing_lock);
1980 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1981 if (!is_be_dai_extproc(i) &&
1982 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1983 (msm_bedais[i].active) &&
1984 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1985 int idx;
1986 unsigned long copp =
1987 session_copp_map[fedai_id][session_type][i];
1988 fdai = &fe_dai_map[fedai_id][session_type];
1989
1990 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1991 if (test_bit(idx, &copp))
1992 break;
1993
1994 if (idx >= MAX_COPPS_PER_PORT || idx < 0) {
1995 pr_debug("%s: copp idx is invalid, exiting\n",
1996 __func__);
1997 continue;
1998 }
Surendar Karkae7507512018-07-20 15:46:54 +05301999 port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302000 topology = adm_get_topology_for_port_copp_idx(
Surendar Karkae7507512018-07-20 15:46:54 +05302001 port_id, idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07002002 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +05302003 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302004 pr_debug("%s:copp:%ld,idx bit fe:%d,type:%d,be:%d\n",
2005 __func__, copp, fedai_id, session_type, i);
2006 clear_bit(idx,
2007 &session_copp_map[fedai_id][session_type][i]);
2008 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
2009 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
2010 (fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05302011 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05302012 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302013 }
2014 }
2015
2016 fe_dai_map[fedai_id][session_type].strm_id = INVALID_SESSION;
2017 fe_dai_map[fedai_id][session_type].be_srate = 0;
2018 mutex_unlock(&routing_lock);
2019}
2020
2021/* Check if FE/BE route is set */
2022static bool msm_pcm_routing_route_is_set(u16 be_id, u16 fe_id)
2023{
2024 bool rc = false;
2025
2026 if (!is_mm_lsm_fe_id(fe_id)) {
2027 /* recheck FE ID in the mixer control defined in this file */
2028 pr_err("%s: bad MM ID\n", __func__);
2029 return rc;
2030 }
2031
2032 if (test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0]))
2033 rc = true;
2034
2035 return rc;
2036}
2037
2038static void msm_pcm_routing_process_audio(u16 reg, u16 val, int set)
2039{
2040 int session_type, path_type, topology;
2041 u32 channels, sample_rate;
2042 uint16_t bits_per_sample = 16;
2043 struct msm_pcm_routing_fdai_data *fdai;
2044 uint32_t passthr_mode;
2045 bool is_lsm;
2046
2047 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
2048
2049 if (!is_mm_lsm_fe_id(val)) {
2050 /* recheck FE ID in the mixer control defined in this file */
2051 pr_err("%s: bad MM ID\n", __func__);
2052 return;
2053 }
2054
2055 if (!route_check_fe_id_adm_support(val)) {
2056 /* ignore adm open if not supported for fe_id */
2057 pr_debug("%s: No ADM support for fe id %d\n", __func__, val);
Meng Wang6d8ecdd2019-04-11 11:06:47 +08002058 if (set)
2059 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2060 else
2061 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302062 return;
2063 }
2064
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05302065 session_type =
2066 (afe_get_port_type(msm_bedais[reg].port_id) == MSM_AFE_PORT_TYPE_RX) ?
2067 SESSION_TYPE_RX : SESSION_TYPE_TX;
2068 fdai = &fe_dai_map[val][session_type];
2069 passthr_mode = fdai->passthr_mode;
2070 if (session_type == SESSION_TYPE_RX) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302071 if (passthr_mode != LEGACY_PCM)
2072 path_type = ADM_PATH_COMPRESSED_RX;
2073 else
2074 path_type = ADM_PATH_PLAYBACK;
2075 } else {
Ralf Herzc8701f72018-06-20 11:37:35 +02002076 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302077 path_type = ADM_PATH_COMPRESSED_TX;
2078 else
2079 path_type = ADM_PATH_LIVE_REC;
2080 }
2081 is_lsm = (val >= MSM_FRONTEND_DAI_LSM1) &&
2082 (val <= MSM_FRONTEND_DAI_LSM8);
2083
2084 mutex_lock(&routing_lock);
2085 if (set) {
2086 if (!test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
2087 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
2088 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
2089 voc_start_playback(set, msm_bedais[reg].port_id);
2090
2091 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302092 if (msm_bedais[reg].active && fdai->strm_id !=
2093 INVALID_SESSION) {
2094 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05302095 int port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302096 /*
2097 * check if ADM needs to be configured with different
2098 * channel mapping than backend
2099 */
2100 if (!msm_bedais[reg].adm_override_ch)
2101 channels = msm_bedais[reg].channel;
2102 else
2103 channels = msm_bedais[reg].adm_override_ch;
2104 if (session_type == SESSION_TYPE_TX &&
2105 fdai->be_srate &&
2106 (fdai->be_srate != msm_bedais[reg].sample_rate)) {
2107 pr_debug("%s: flush strm %d diff BE rates\n",
2108 __func__, fdai->strm_id);
2109
2110 if (fdai->event_info.event_func)
2111 fdai->event_info.event_func(
2112 MSM_PCM_RT_EVT_BUF_RECFG,
2113 fdai->event_info.priv_data);
2114 fdai->be_srate = 0; /* might not need it */
2115 }
2116
2117 bits_per_sample = msm_routing_get_bit_width(
2118 msm_bedais[reg].format);
2119
2120 app_type =
2121 fe_dai_app_type_cfg[val][session_type][reg].app_type;
2122 if (app_type && is_lsm) {
2123 app_type_idx =
2124 msm_pcm_routing_get_lsm_app_type_idx(app_type);
2125 sample_rate =
2126 fe_dai_app_type_cfg[val][session_type][reg]
2127 .sample_rate;
2128 bits_per_sample =
2129 lsm_app_type_cfg[app_type_idx].bit_width;
2130 } else if (app_type) {
2131 app_type_idx =
2132 msm_pcm_routing_get_app_type_idx(app_type);
2133 sample_rate =
2134 fe_dai_app_type_cfg[val][session_type][reg]
2135 .sample_rate;
2136 bits_per_sample =
2137 app_type_cfg[app_type_idx].bit_width;
2138 } else
2139 sample_rate = msm_bedais[reg].sample_rate;
2140
2141 topology = msm_routing_get_adm_topology(val,
2142 session_type,
2143 reg);
2144 acdb_dev_id =
2145 fe_dai_app_type_cfg[val][session_type][reg].acdb_dev_id;
Ramlal Karrab6ef9e02019-08-14 17:53:29 +05302146 if (hifi_filter_enabled)
2147 bits_per_sample = msm_routing_get_bit_width(
2148 SNDRV_PCM_FORMAT_S32_LE);
Surendar Karkae7507512018-07-20 15:46:54 +05302149 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302150 sample_rate, channels, topology,
2151 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +05302152 app_type, acdb_dev_id,
2153 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302154 if ((copp_idx < 0) ||
2155 (copp_idx >= MAX_COPPS_PER_PORT)) {
2156 pr_err("%s: adm open failed\n", __func__);
2157 mutex_unlock(&routing_lock);
2158 return;
2159 }
2160 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
2161 __func__, val, session_type, reg);
2162 set_bit(copp_idx,
2163 &session_copp_map[val][session_type][reg]);
2164
2165 if (msm_is_resample_needed(
2166 sample_rate,
2167 msm_bedais[reg].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05302168 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302169 msm_bedais[reg].sample_rate);
2170
2171 if (session_type == SESSION_TYPE_RX &&
2172 fdai->event_info.event_func)
2173 fdai->event_info.event_func(
2174 MSM_PCM_RT_EVT_DEVSWITCH,
2175 fdai->event_info.priv_data);
2176
2177 msm_pcm_routing_build_matrix(val, session_type,
2178 path_type,
2179 fdai->perf_mode,
2180 passthr_mode);
2181 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
2182 (passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05302183 msm_pcm_routing_cfg_pp(port_id, copp_idx,
2184 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302185 }
2186 } else {
2187 if (test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
2188 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
2189 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
2190 voc_start_playback(set, msm_bedais[reg].port_id);
2191 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302192 if (msm_bedais[reg].active && fdai->strm_id !=
2193 INVALID_SESSION) {
2194 int idx;
2195 int port_id;
2196 unsigned long copp =
2197 session_copp_map[val][session_type][reg];
2198 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
2199 if (test_bit(idx, &copp))
2200 break;
2201
Vignesh Kulothungane59d3152018-10-10 14:19:59 -07002202 if (idx >= MAX_COPPS_PER_PORT) {
2203 pr_debug("%s: copp idx is invalid, exiting\n",
2204 __func__);
2205 mutex_unlock(&routing_lock);
2206 return;
2207 }
Surendar Karkae7507512018-07-20 15:46:54 +05302208 port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302209 topology = adm_get_topology_for_port_copp_idx(port_id,
2210 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07002211 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +05302212 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302213 pr_debug("%s: copp: %ld, reset idx bit fe:%d, type: %d, be:%d topology=0x%x\n",
2214 __func__, copp, val, session_type, reg,
2215 topology);
2216 clear_bit(idx,
2217 &session_copp_map[val][session_type][reg]);
2218 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
2219 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
2220 (fdai->perf_mode == LEGACY_PCM_MODE) &&
2221 (passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05302222 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302223 msm_pcm_routing_build_matrix(val, session_type,
2224 path_type,
2225 fdai->perf_mode,
2226 passthr_mode);
2227 }
2228 }
2229 if ((msm_bedais[reg].port_id == VOICE_RECORD_RX)
2230 || (msm_bedais[reg].port_id == VOICE_RECORD_TX))
2231 voc_start_record(msm_bedais[reg].port_id, set, voc_session_id);
2232
2233 mutex_unlock(&routing_lock);
2234}
2235
2236static int msm_routing_get_audio_mixer(struct snd_kcontrol *kcontrol,
2237 struct snd_ctl_elem_value *ucontrol)
2238{
2239 struct soc_mixer_control *mc =
2240 (struct soc_mixer_control *)kcontrol->private_value;
2241
Meng Wang05d5e9a2018-03-28 16:45:03 +08002242 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302243 ucontrol->value.integer.value[0] = 1;
2244 else
2245 ucontrol->value.integer.value[0] = 0;
2246
Meng Wang05d5e9a2018-03-28 16:45:03 +08002247 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302248 ucontrol->value.integer.value[0]);
2249
2250 return 0;
2251}
2252
2253static int msm_routing_put_audio_mixer(struct snd_kcontrol *kcontrol,
2254 struct snd_ctl_elem_value *ucontrol)
2255{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302256 struct snd_soc_dapm_widget *widget =
2257 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302258 struct soc_mixer_control *mc =
2259 (struct soc_mixer_control *)kcontrol->private_value;
2260 struct snd_soc_dapm_update *update = NULL;
2261
2262 if (ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08002263 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false) {
2264 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302265 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2266 update);
2267 } else if (!ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08002268 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true) {
2269 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302270 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2271 update);
2272 }
2273
2274 return 1;
2275}
2276
2277static int msm_routing_get_listen_mixer(struct snd_kcontrol *kcontrol,
2278 struct snd_ctl_elem_value *ucontrol)
2279{
2280 struct soc_mixer_control *mc =
2281 (struct soc_mixer_control *)kcontrol->private_value;
2282
Meng Wang05d5e9a2018-03-28 16:45:03 +08002283 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302284 ucontrol->value.integer.value[0] = 1;
2285 else
2286 ucontrol->value.integer.value[0] = 0;
2287
Meng Wang05d5e9a2018-03-28 16:45:03 +08002288 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302289 ucontrol->value.integer.value[0]);
2290
2291 return 0;
2292}
2293
2294static int msm_routing_put_listen_mixer(struct snd_kcontrol *kcontrol,
2295 struct snd_ctl_elem_value *ucontrol)
2296{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302297 struct snd_soc_dapm_widget *widget =
2298 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302299 struct soc_mixer_control *mc =
2300 (struct soc_mixer_control *)kcontrol->private_value;
2301 struct snd_soc_dapm_update *update = NULL;
2302
Meng Wang05d5e9a2018-03-28 16:45:03 +08002303 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302304 ucontrol->value.integer.value[0]);
2305
2306 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002307 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false)
2308 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302309 snd_soc_dapm_mixer_update_power(widget->dapm,
2310 kcontrol, 1, update);
2311 } else if (!ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002312 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true)
2313 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302314 snd_soc_dapm_mixer_update_power(widget->dapm,
2315 kcontrol, 0, update);
2316 }
2317
2318 return 1;
2319}
2320
2321static void msm_pcm_routing_process_voice(u16 reg, u16 val, int set)
2322{
2323 u32 session_id = 0;
2324 u16 path_type;
2325 struct media_format_info voc_be_media_format;
2326
2327 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
2328
2329 session_id = msm_pcm_routing_get_voc_sessionid(val);
2330
2331 pr_debug("%s: FE DAI 0x%x session_id 0x%x\n",
2332 __func__, val, session_id);
2333
2334 mutex_lock(&routing_lock);
2335
2336 if (set)
2337 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2338 else
2339 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
2340
2341 if (val == MSM_FRONTEND_DAI_DTMF_RX &&
2342 afe_get_port_type(msm_bedais[reg].port_id) ==
2343 MSM_AFE_PORT_TYPE_RX) {
2344 pr_debug("%s(): set=%d port id=0x%x for dtmf generation\n",
2345 __func__, set, msm_bedais[reg].port_id);
2346 afe_set_dtmf_gen_rx_portid(msm_bedais[reg].port_id, set);
2347 }
2348
2349 if (afe_get_port_type(msm_bedais[reg].port_id) ==
2350 MSM_AFE_PORT_TYPE_RX)
2351 path_type = RX_PATH;
2352 else
2353 path_type = TX_PATH;
2354
2355 if (set) {
2356 if (msm_bedais[reg].active) {
2357 voc_set_route_flag(session_id, path_type, 1);
2358
2359 memset(&voc_be_media_format, 0,
2360 sizeof(struct media_format_info));
2361
2362 voc_be_media_format.port_id = msm_bedais[reg].port_id;
2363 voc_be_media_format.num_channels =
2364 msm_bedais[reg].channel;
2365 voc_be_media_format.sample_rate =
2366 msm_bedais[reg].sample_rate;
2367 voc_be_media_format.bits_per_sample =
2368 msm_bedais[reg].format;
2369 /* Defaulting this to 1 for voice call usecases */
2370 voc_be_media_format.channel_mapping[0] = 1;
2371
2372 voc_set_device_config(session_id, path_type,
2373 &voc_be_media_format);
2374
2375 if (voc_get_route_flag(session_id, TX_PATH) &&
2376 voc_get_route_flag(session_id, RX_PATH))
2377 voc_enable_device(session_id);
2378 } else {
2379 pr_debug("%s BE is not active\n", __func__);
2380 }
2381 } else {
2382 voc_set_route_flag(session_id, path_type, 0);
2383 voc_disable_device(session_id);
2384 }
2385
2386 mutex_unlock(&routing_lock);
2387
2388}
2389
2390static int msm_routing_get_voice_mixer(struct snd_kcontrol *kcontrol,
2391 struct snd_ctl_elem_value *ucontrol)
2392{
2393 struct soc_mixer_control *mc =
2394 (struct soc_mixer_control *)kcontrol->private_value;
2395
2396 mutex_lock(&routing_lock);
2397
Meng Wang05d5e9a2018-03-28 16:45:03 +08002398 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302399 ucontrol->value.integer.value[0] = 1;
2400 else
2401 ucontrol->value.integer.value[0] = 0;
2402
2403 mutex_unlock(&routing_lock);
2404
Meng Wang05d5e9a2018-03-28 16:45:03 +08002405 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302406 ucontrol->value.integer.value[0]);
2407
2408 return 0;
2409}
2410
2411static int msm_routing_put_voice_mixer(struct snd_kcontrol *kcontrol,
2412 struct snd_ctl_elem_value *ucontrol)
2413{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302414 struct snd_soc_dapm_widget *widget =
2415 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302416 struct soc_mixer_control *mc =
2417 (struct soc_mixer_control *)kcontrol->private_value;
2418 struct snd_soc_dapm_update *update = NULL;
2419
2420 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002421 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302422 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2423 update);
2424 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002425 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302426 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2427 update);
2428 }
2429
2430 return 1;
2431}
2432
2433static int msm_routing_get_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2434 struct snd_ctl_elem_value *ucontrol)
2435{
2436 struct soc_mixer_control *mc =
2437 (struct soc_mixer_control *)kcontrol->private_value;
2438
2439 mutex_lock(&routing_lock);
2440
Meng Wang05d5e9a2018-03-28 16:45:03 +08002441 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302442 ucontrol->value.integer.value[0] = 1;
2443 else
2444 ucontrol->value.integer.value[0] = 0;
2445
2446 mutex_unlock(&routing_lock);
2447
Meng Wang05d5e9a2018-03-28 16:45:03 +08002448 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302449 ucontrol->value.integer.value[0]);
2450
2451 return 0;
2452}
2453
2454static int msm_routing_put_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2455 struct snd_ctl_elem_value *ucontrol)
2456{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302457 struct snd_soc_dapm_widget *widget =
2458 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302459 struct soc_mixer_control *mc =
2460 (struct soc_mixer_control *)kcontrol->private_value;
2461 struct snd_soc_dapm_update *update = NULL;
2462
2463 if (ucontrol->value.integer.value[0]) {
2464 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002465 set_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302466 mutex_unlock(&routing_lock);
2467
2468 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2469 update);
2470 } else {
2471 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002472 clear_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302473 mutex_unlock(&routing_lock);
2474
2475 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2476 update);
2477 }
2478
Meng Wang05d5e9a2018-03-28 16:45:03 +08002479 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302480 ucontrol->value.integer.value[0]);
2481
2482 return 1;
2483}
2484
2485/*
2486 * Return the mapping between port ID and backend ID to enable the AFE callback
2487 * to determine the acdb_dev_id from the port id
2488 */
2489int msm_pcm_get_be_id_from_port_id(int port_id)
2490{
2491 int i;
2492 int be_id = -EINVAL;
2493
2494 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
2495 if (msm_bedais[i].port_id == port_id) {
2496 be_id = i;
2497 break;
2498 }
2499 }
2500
2501 return be_id;
2502}
2503
2504/*
2505 * Return the registered dev_acdb_id given a port ID to enable identifying the
2506 * correct AFE calibration information by comparing the header information.
2507 */
2508static int msm_pcm_get_dev_acdb_id_by_port_id(int port_id)
2509{
2510 int acdb_id = -EINVAL;
2511 int i = 0;
2512 int session;
2513 int port_type = afe_get_port_type(port_id);
2514 int be_id = msm_pcm_get_be_id_from_port_id(port_id);
2515
2516 pr_debug("%s:port_id %d be_id %d, port_type 0x%x\n",
2517 __func__, port_id, be_id, port_type);
2518
2519 if (port_type == MSM_AFE_PORT_TYPE_TX) {
2520 session = SESSION_TYPE_TX;
2521 } else if (port_type == MSM_AFE_PORT_TYPE_RX) {
2522 session = SESSION_TYPE_RX;
2523 } else {
2524 pr_err("%s: Invalid port type %d\n", __func__, port_type);
2525 acdb_id = -EINVAL;
2526 goto exit;
2527 }
2528
2529 if (be_id < 0) {
2530 pr_err("%s: Error getting backend id %d\n", __func__, be_id);
2531 goto exit;
2532 }
2533
2534 mutex_lock(&routing_lock);
2535 i = find_first_bit(&msm_bedais[be_id].fe_sessions[0],
2536 MSM_FRONTEND_DAI_MAX);
2537 if (i < MSM_FRONTEND_DAI_MAX)
2538 acdb_id = fe_dai_app_type_cfg[i][session][be_id].acdb_dev_id;
2539
2540 pr_debug("%s: FE[%d] session[%d] BE[%d] acdb_id(%d)\n",
2541 __func__, i, session, be_id, acdb_id);
2542 mutex_unlock(&routing_lock);
2543exit:
2544 return acdb_id;
2545}
2546
2547static int msm_routing_get_switch_mixer(struct snd_kcontrol *kcontrol,
2548 struct snd_ctl_elem_value *ucontrol)
2549{
2550 ucontrol->value.integer.value[0] = fm_switch_enable;
2551 pr_debug("%s: FM Switch enable %ld\n", __func__,
2552 ucontrol->value.integer.value[0]);
2553 return 0;
2554}
2555
2556static int msm_routing_put_switch_mixer(struct snd_kcontrol *kcontrol,
2557 struct snd_ctl_elem_value *ucontrol)
2558{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302559 struct snd_soc_dapm_widget *widget =
2560 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302561 struct snd_soc_dapm_update *update = NULL;
2562
2563 pr_debug("%s: FM Switch enable %ld\n", __func__,
2564 ucontrol->value.integer.value[0]);
2565 if (ucontrol->value.integer.value[0])
2566 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2567 update);
2568 else
2569 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2570 update);
2571 fm_switch_enable = ucontrol->value.integer.value[0];
2572 return 1;
2573}
2574
2575static int msm_routing_get_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2576 struct snd_ctl_elem_value *ucontrol)
2577{
2578 ucontrol->value.integer.value[0] = hfp_switch_enable;
2579 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2580 ucontrol->value.integer.value[0]);
2581 return 0;
2582}
2583
2584static int msm_routing_put_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2585 struct snd_ctl_elem_value *ucontrol)
2586{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302587 struct snd_soc_dapm_widget *widget =
2588 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302589 struct snd_soc_dapm_update *update = NULL;
2590
2591 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2592 ucontrol->value.integer.value[0]);
2593 if (ucontrol->value.integer.value[0])
2594 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2595 1, update);
2596 else
2597 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2598 0, update);
2599 hfp_switch_enable = ucontrol->value.integer.value[0];
2600 return 1;
2601}
2602
Aniket Kumar Latac0c31472018-02-22 14:46:09 -08002603static int msm_routing_a2dp_switch_mixer_get(struct snd_kcontrol *kcontrol,
2604 struct snd_ctl_elem_value *ucontrol)
2605{
2606 ucontrol->value.integer.value[0] = a2dp_switch_enable;
2607 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2608 ucontrol->value.integer.value[0]);
2609 return 0;
2610}
2611
2612static int msm_routing_a2dp_switch_mixer_put(struct snd_kcontrol *kcontrol,
2613 struct snd_ctl_elem_value *ucontrol)
2614{
2615 struct snd_soc_dapm_widget *widget =
2616 snd_soc_dapm_kcontrol_widget(kcontrol);
2617 struct snd_soc_dapm_update *update = NULL;
2618
2619 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2620 ucontrol->value.integer.value[0]);
2621 a2dp_switch_enable = ucontrol->value.integer.value[0];
2622 if (a2dp_switch_enable)
2623 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2624 1, update);
2625 else
2626 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2627 0, update);
2628 return 1;
2629}
2630
Zhou Songcaa541d2019-02-19 18:37:47 +08002631static int msm_routing_sco_switch_mixer_get(struct snd_kcontrol *kcontrol,
2632 struct snd_ctl_elem_value *ucontrol)
2633{
2634 ucontrol->value.integer.value[0] = sco_switch_enable;
2635 pr_debug("%s: SCO Switch enable %ld\n", __func__,
2636 ucontrol->value.integer.value[0]);
2637 return 0;
2638}
2639
2640static int msm_routing_sco_switch_mixer_put(struct snd_kcontrol *kcontrol,
2641 struct snd_ctl_elem_value *ucontrol)
2642{
2643 struct snd_soc_dapm_widget *widget =
2644 snd_soc_dapm_kcontrol_widget(kcontrol);
2645 struct snd_soc_dapm_update *update = NULL;
2646
2647 pr_debug("%s: SCO Switch enable %ld\n", __func__,
2648 ucontrol->value.integer.value[0]);
2649 sco_switch_enable = ucontrol->value.integer.value[0];
2650 if (sco_switch_enable)
2651 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2652 1, update);
2653 else
2654 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2655 0, update);
2656 return 1;
2657}
2658
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302659static int msm_routing_get_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2660 struct snd_ctl_elem_value *ucontrol)
2661{
2662 ucontrol->value.integer.value[0] = int0_mi2s_switch_enable;
2663 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2664 ucontrol->value.integer.value[0]);
2665 return 0;
2666}
2667
2668static int msm_routing_put_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2669 struct snd_ctl_elem_value *ucontrol)
2670{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302671 struct snd_soc_dapm_widget *widget =
2672 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302673 struct snd_soc_dapm_update *update = NULL;
2674
2675 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2676 ucontrol->value.integer.value[0]);
2677 if (ucontrol->value.integer.value[0])
2678 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2679 update);
2680 else
2681 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2682 update);
2683 int0_mi2s_switch_enable = ucontrol->value.integer.value[0];
2684 return 1;
2685}
2686
2687static int msm_routing_get_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2688 struct snd_ctl_elem_value *ucontrol)
2689{
2690 ucontrol->value.integer.value[0] = int4_mi2s_switch_enable;
2691 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2692 ucontrol->value.integer.value[0]);
2693 return 0;
2694}
2695
2696static int msm_routing_put_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2697 struct snd_ctl_elem_value *ucontrol)
2698{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302699 struct snd_soc_dapm_widget *widget =
2700 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302701 struct snd_soc_dapm_update *update = NULL;
2702
2703 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2704 ucontrol->value.integer.value[0]);
2705 if (ucontrol->value.integer.value[0])
2706 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2707 update);
2708 else
2709 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2710 update);
2711 int4_mi2s_switch_enable = ucontrol->value.integer.value[0];
2712 return 1;
2713}
2714
2715static int msm_routing_get_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2716 struct snd_ctl_elem_value *ucontrol)
2717{
2718 ucontrol->value.integer.value[0] = usb_switch_enable;
2719 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2720 ucontrol->value.integer.value[0]);
2721 return 0;
2722}
2723
2724static int msm_routing_put_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2725 struct snd_ctl_elem_value *ucontrol)
2726{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302727 struct snd_soc_dapm_widget *widget =
2728 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302729 struct snd_soc_dapm_update *update = NULL;
2730
2731 pr_debug("%s: USB Switch enable %ld\n", __func__,
2732 ucontrol->value.integer.value[0]);
2733 if (ucontrol->value.integer.value[0])
2734 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2735 1, update);
2736 else
2737 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2738 0, update);
2739 usb_switch_enable = ucontrol->value.integer.value[0];
2740 return 1;
2741}
2742
2743static int msm_routing_get_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2744 struct snd_ctl_elem_value *ucontrol)
2745{
2746 ucontrol->value.integer.value[0] = pri_mi2s_switch_enable;
2747 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2748 ucontrol->value.integer.value[0]);
2749 return 0;
2750}
2751
2752static int msm_routing_put_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2753 struct snd_ctl_elem_value *ucontrol)
2754{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302755 struct snd_soc_dapm_widget *widget =
2756 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302757 struct snd_soc_dapm_update *update = NULL;
2758
2759 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2760 ucontrol->value.integer.value[0]);
2761 if (ucontrol->value.integer.value[0])
2762 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2763 update);
2764 else
2765 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2766 update);
2767 pri_mi2s_switch_enable = ucontrol->value.integer.value[0];
2768 return 1;
2769}
2770
2771static int msm_routing_get_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2772 struct snd_ctl_elem_value *ucontrol)
2773{
2774 ucontrol->value.integer.value[0] = sec_mi2s_switch_enable;
2775 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2776 ucontrol->value.integer.value[0]);
2777 return 0;
2778}
2779
2780static int msm_routing_put_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2781 struct snd_ctl_elem_value *ucontrol)
2782{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302783 struct snd_soc_dapm_widget *widget =
2784 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302785 struct snd_soc_dapm_update *update = NULL;
2786
2787 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2788 ucontrol->value.integer.value[0]);
2789 if (ucontrol->value.integer.value[0])
2790 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2791 update);
2792 else
2793 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2794 update);
2795 sec_mi2s_switch_enable = ucontrol->value.integer.value[0];
2796 return 1;
2797}
2798
2799static int msm_routing_get_tert_mi2s_switch_mixer(
2800 struct snd_kcontrol *kcontrol,
2801 struct snd_ctl_elem_value *ucontrol)
2802{
2803 ucontrol->value.integer.value[0] = tert_mi2s_switch_enable;
2804 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2805 ucontrol->value.integer.value[0]);
2806 return 0;
2807}
2808
2809static int msm_routing_put_tert_mi2s_switch_mixer(
2810 struct snd_kcontrol *kcontrol,
2811 struct snd_ctl_elem_value *ucontrol)
2812{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302813 struct snd_soc_dapm_widget *widget =
2814 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302815 struct snd_soc_dapm_update *update = NULL;
2816
2817 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2818 ucontrol->value.integer.value[0]);
2819 if (ucontrol->value.integer.value[0])
2820 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2821 update);
2822 else
2823 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2824 update);
2825 tert_mi2s_switch_enable = ucontrol->value.integer.value[0];
2826 return 1;
2827}
2828
2829static int msm_routing_get_quat_mi2s_switch_mixer(
2830 struct snd_kcontrol *kcontrol,
2831 struct snd_ctl_elem_value *ucontrol)
2832{
2833 ucontrol->value.integer.value[0] = quat_mi2s_switch_enable;
2834 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2835 ucontrol->value.integer.value[0]);
2836 return 0;
2837}
2838
2839static int msm_routing_put_quat_mi2s_switch_mixer(
2840 struct snd_kcontrol *kcontrol,
2841 struct snd_ctl_elem_value *ucontrol)
2842{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302843 struct snd_soc_dapm_widget *widget =
2844 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302845 struct snd_soc_dapm_update *update = NULL;
2846
2847 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2848 ucontrol->value.integer.value[0]);
2849 if (ucontrol->value.integer.value[0])
2850 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2851 update);
2852 else
2853 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2854 update);
2855 quat_mi2s_switch_enable = ucontrol->value.integer.value[0];
2856 return 1;
2857}
2858
Rohit Kumara5077932017-09-10 22:05:05 +05302859static int msm_routing_get_quin_mi2s_switch_mixer(
2860 struct snd_kcontrol *kcontrol,
2861 struct snd_ctl_elem_value *ucontrol)
2862{
2863 ucontrol->value.integer.value[0] = quin_mi2s_switch_enable;
2864 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2865 ucontrol->value.integer.value[0]);
2866 return 0;
2867}
2868
2869static int msm_routing_put_quin_mi2s_switch_mixer(
2870 struct snd_kcontrol *kcontrol,
2871 struct snd_ctl_elem_value *ucontrol)
2872{
2873 struct snd_soc_dapm_widget *widget =
2874 snd_soc_dapm_kcontrol_widget(kcontrol);
2875 struct snd_soc_dapm_update *update = NULL;
2876
2877 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2878 ucontrol->value.integer.value[0]);
2879 if (ucontrol->value.integer.value[0])
2880 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2881 update);
2882 else
2883 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2884 update);
2885 quin_mi2s_switch_enable = ucontrol->value.integer.value[0];
2886 return 1;
2887}
2888
Karthikeyan Manic3700752019-03-11 18:33:53 -07002889static int msm_routing_get_sen_mi2s_switch_mixer(
2890 struct snd_kcontrol *kcontrol,
2891 struct snd_ctl_elem_value *ucontrol)
2892{
2893 ucontrol->value.integer.value[0] = sen_mi2s_switch_enable;
2894 pr_debug("%s: SEN MI2S Switch enable %ld\n", __func__,
2895 ucontrol->value.integer.value[0]);
2896 return 0;
2897}
2898
2899static int msm_routing_put_sen_mi2s_switch_mixer(
2900 struct snd_kcontrol *kcontrol,
2901 struct snd_ctl_elem_value *ucontrol)
2902{
2903 struct snd_soc_dapm_widget *widget =
2904 snd_soc_dapm_kcontrol_widget(kcontrol);
2905 struct snd_soc_dapm_update *update = NULL;
2906
2907 pr_debug("%s: SEN MI2S Switch enable %ld\n", __func__,
2908 ucontrol->value.integer.value[0]);
2909 if (ucontrol->value.integer.value[0])
2910 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2911 update);
2912 else
2913 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2914 update);
2915 sen_mi2s_switch_enable = ucontrol->value.integer.value[0];
2916 return 1;
2917}
2918
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302919static int msm_routing_get_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2920 struct snd_ctl_elem_value *ucontrol)
2921{
2922 ucontrol->value.integer.value[0] = fm_pcmrx_switch_enable;
2923 pr_debug("%s: FM Switch enable %ld\n", __func__,
2924 ucontrol->value.integer.value[0]);
2925 return 0;
2926}
2927
2928static int msm_routing_put_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2929 struct snd_ctl_elem_value *ucontrol)
2930{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302931 struct snd_soc_dapm_widget *widget =
2932 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302933 struct snd_soc_dapm_update *update = NULL;
2934
2935 pr_debug("%s: FM Switch enable %ld\n", __func__,
2936 ucontrol->value.integer.value[0]);
2937 if (ucontrol->value.integer.value[0])
2938 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2939 update);
2940 else
2941 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2942 update);
2943 fm_pcmrx_switch_enable = ucontrol->value.integer.value[0];
2944 return 1;
2945}
2946
2947static int msm_routing_lsm_port_get(struct snd_kcontrol *kcontrol,
2948 struct snd_ctl_elem_value *ucontrol)
2949{
2950 ucontrol->value.integer.value[0] = lsm_port_index;
2951 return 0;
2952}
2953
2954static int msm_routing_lsm_port_put(struct snd_kcontrol *kcontrol,
2955 struct snd_ctl_elem_value *ucontrol)
2956{
2957 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
2958 int mux = ucontrol->value.enumerated.item[0];
2959 int lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2960
2961 if (mux >= e->items) {
2962 pr_err("%s: Invalid mux value %d\n", __func__, mux);
2963 return -EINVAL;
2964 }
2965
2966 pr_debug("%s: LSM enable %ld\n", __func__,
2967 ucontrol->value.integer.value[0]);
2968 switch (ucontrol->value.integer.value[0]) {
2969 case 1:
2970 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_0_TX;
2971 break;
2972 case 2:
2973 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_1_TX;
2974 break;
2975 case 3:
2976 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_2_TX;
2977 break;
2978 case 4:
2979 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_3_TX;
2980 break;
2981 case 5:
2982 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_4_TX;
2983 break;
2984 case 6:
2985 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2986 break;
2987 case 7:
2988 lsm_port = AFE_PORT_ID_TERTIARY_MI2S_TX;
2989 break;
2990 case 8:
2991 lsm_port = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2992 break;
2993 case 9:
2994 lsm_port = ADM_LSM_PORT_ID;
2995 break;
2996 case 10:
2997 lsm_port = AFE_PORT_ID_INT3_MI2S_TX;
2998 break;
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +05302999 case 11:
3000 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
3001 break;
3002 case 12:
3003 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_1;
3004 break;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05303005 case 13:
Xiaoyu Yef439aed2019-01-02 16:40:01 -08003006 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_2;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05303007 break;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303008 case 14:
Xiaoyu Yef439aed2019-01-02 16:40:01 -08003009 lsm_port = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
3010 break;
3011 case 15:
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303012 lsm_port = AFE_PORT_ID_QUINARY_TDM_TX;
3013 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303014 default:
3015 pr_err("Default lsm port");
3016 break;
3017 }
3018 set_lsm_port(lsm_port);
3019 lsm_port_index = ucontrol->value.integer.value[0];
3020
3021 return 0;
3022}
3023
3024static int msm_routing_lsm_func_get(struct snd_kcontrol *kcontrol,
3025 struct snd_ctl_elem_value *ucontrol)
3026{
3027 int i;
3028 u16 port_id;
3029 enum afe_mad_type mad_type;
3030
3031 pr_debug("%s: enter\n", __func__);
3032 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
3033 if (!strnstr(kcontrol->id.name, lsm_port_text[i],
3034 strlen(lsm_port_text[i])))
3035 break;
3036
3037 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003038 pr_warn("%s: Invalid id name %s\n", __func__,
3039 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303040 return -EINVAL;
3041 }
3042
3043 port_id = i * 2 + 1 + SLIMBUS_0_RX;
3044
3045 /*Check for Tertiary/Quaternary/INT3 TX port*/
3046 if (strnstr(kcontrol->id.name, lsm_port_text[7],
3047 strlen(lsm_port_text[7])))
3048 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3049
3050 if (strnstr(kcontrol->id.name, lsm_port_text[8],
3051 strlen(lsm_port_text[8])))
3052 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3053
3054 if (strnstr(kcontrol->id.name, lsm_port_text[10],
3055 strlen(lsm_port_text[10])))
3056 port_id = AFE_PORT_ID_INT3_MI2S_TX;
3057
Aditya Bavanarie9454c62018-08-23 23:45:20 +05303058 if (strnstr(kcontrol->id.name, lsm_port_text[13],
3059 strlen(lsm_port_text[13])))
3060 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
3061
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303062 if (strnstr(kcontrol->id.name, lsm_port_text[14],
3063 strlen(lsm_port_text[14])))
3064 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
3065
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303066 mad_type = afe_port_get_mad_type(port_id);
3067 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
3068 mad_type);
3069 switch (mad_type) {
3070 case MAD_HW_NONE:
3071 ucontrol->value.integer.value[0] = MADNONE;
3072 break;
3073 case MAD_HW_AUDIO:
3074 ucontrol->value.integer.value[0] = MADAUDIO;
3075 break;
3076 case MAD_HW_BEACON:
3077 ucontrol->value.integer.value[0] = MADBEACON;
3078 break;
3079 case MAD_HW_ULTRASOUND:
3080 ucontrol->value.integer.value[0] = MADULTRASOUND;
3081 break;
3082 case MAD_SW_AUDIO:
3083 ucontrol->value.integer.value[0] = MADSWAUDIO;
3084 break;
3085 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003086 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303087 return -EINVAL;
3088 }
3089 return 0;
3090}
3091
3092static int msm_routing_lsm_func_put(struct snd_kcontrol *kcontrol,
3093 struct snd_ctl_elem_value *ucontrol)
3094{
3095 int i;
3096 u16 port_id;
3097 enum afe_mad_type mad_type;
3098
3099 pr_debug("%s: enter\n", __func__);
3100 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
3101 if (strnstr(kcontrol->id.name, lsm_port_text[i],
3102 strlen(lsm_port_text[i])))
3103 break;
3104
3105 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003106 pr_warn("%s: Invalid id name %s\n", __func__,
3107 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303108 return -EINVAL;
3109 }
3110
3111 port_id = i * 2 + 1 + SLIMBUS_0_RX;
3112 switch (ucontrol->value.integer.value[0]) {
3113 case MADNONE:
3114 mad_type = MAD_HW_NONE;
3115 break;
3116 case MADAUDIO:
3117 mad_type = MAD_HW_AUDIO;
3118 break;
3119 case MADBEACON:
3120 mad_type = MAD_HW_BEACON;
3121 break;
3122 case MADULTRASOUND:
3123 mad_type = MAD_HW_ULTRASOUND;
3124 break;
3125 case MADSWAUDIO:
3126 mad_type = MAD_SW_AUDIO;
3127 break;
3128 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003129 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303130 return -EINVAL;
3131 }
3132
3133 /*Check for Tertiary/Quaternary/INT3 TX port*/
3134 if (strnstr(kcontrol->id.name, lsm_port_text[7],
3135 strlen(lsm_port_text[7])))
3136 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3137
3138 if (strnstr(kcontrol->id.name, lsm_port_text[8],
3139 strlen(lsm_port_text[8])))
3140 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3141
3142 if (strnstr(kcontrol->id.name, lsm_port_text[10],
3143 strlen(lsm_port_text[10])))
3144 port_id = AFE_PORT_ID_INT3_MI2S_TX;
3145
Aditya Bavanarie9454c62018-08-23 23:45:20 +05303146 if (strnstr(kcontrol->id.name, lsm_port_text[13],
3147 strlen(lsm_port_text[13])))
3148 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
3149
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303150 if (strnstr(kcontrol->id.name, lsm_port_text[14],
3151 strlen(lsm_port_text[14])))
3152 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
3153
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303154 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
3155 mad_type);
3156 return afe_port_set_mad_type(port_id, mad_type);
3157}
3158
3159static const char *const adm_override_chs_text[] = {"Zero", "One", "Two"};
3160
Surendar Karka25e77dd2019-05-09 14:33:45 +05303161static SOC_ENUM_SINGLE_EXT_DECL(adm_override_chs,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303162 adm_override_chs_text);
3163
3164static int msm_routing_adm_get_backend_idx(struct snd_kcontrol *kcontrol)
3165{
3166 int backend_id;
3167
3168 if (strnstr(kcontrol->id.name, "SLIM7_RX", sizeof("SLIM7_RX"))) {
3169 backend_id = MSM_BACKEND_DAI_SLIMBUS_7_RX;
Surendar Karka25e77dd2019-05-09 14:33:45 +05303170 } else if (strnstr(kcontrol->id.name, "SLIM9_TX", sizeof("SLIM9_TX"))) {
3171 backend_id = MSM_BACKEND_DAI_SLIMBUS_9_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303172 } else {
3173 pr_err("%s: unsupported backend id: %s",
3174 __func__, kcontrol->id.name);
3175 return -EINVAL;
3176 }
3177
3178 return backend_id;
3179}
Surendar Karka25e77dd2019-05-09 14:33:45 +05303180
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303181static int msm_routing_adm_channel_config_get(
3182 struct snd_kcontrol *kcontrol,
3183 struct snd_ctl_elem_value *ucontrol)
3184{
3185 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
3186
3187 if (backend_id >= 0) {
3188 mutex_lock(&routing_lock);
3189 ucontrol->value.integer.value[0] =
3190 msm_bedais[backend_id].adm_override_ch;
3191 pr_debug("%s: adm channel count %ld for BE:%d\n", __func__,
3192 ucontrol->value.integer.value[0], backend_id);
3193 mutex_unlock(&routing_lock);
3194 }
3195
3196 return 0;
3197}
3198
3199static int msm_routing_adm_channel_config_put(
3200 struct snd_kcontrol *kcontrol,
3201 struct snd_ctl_elem_value *ucontrol)
3202{
3203 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
3204
3205 if (backend_id >= 0) {
3206 mutex_lock(&routing_lock);
3207 msm_bedais[backend_id].adm_override_ch =
3208 ucontrol->value.integer.value[0];
3209 pr_debug("%s:updating BE :%d adm channels: %d\n",
3210 __func__, backend_id,
3211 msm_bedais[backend_id].adm_override_ch);
3212 mutex_unlock(&routing_lock);
3213 }
3214
3215 return 0;
3216}
3217
3218static const struct snd_kcontrol_new adm_channel_config_controls[] = {
Surendar Karka25e77dd2019-05-09 14:33:45 +05303219 SOC_ENUM_EXT("SLIM7_RX ADM Channels", adm_override_chs,
3220 msm_routing_adm_channel_config_get,
3221 msm_routing_adm_channel_config_put),
3222 SOC_ENUM_EXT("SLIM9_TX ADM Channels", adm_override_chs,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303223 msm_routing_adm_channel_config_get,
3224 msm_routing_adm_channel_config_put),
3225};
3226
3227static int msm_routing_slim_0_rx_aanc_mux_get(struct snd_kcontrol *kcontrol,
3228 struct snd_ctl_elem_value *ucontrol)
3229{
3230
3231 mutex_lock(&routing_lock);
3232 ucontrol->value.integer.value[0] = slim0_rx_aanc_fb_port;
3233 mutex_unlock(&routing_lock);
3234 pr_debug("%s: AANC Mux Port %ld\n", __func__,
3235 ucontrol->value.integer.value[0]);
3236 return 0;
3237};
3238
3239static int msm_routing_slim_0_rx_aanc_mux_put(struct snd_kcontrol *kcontrol,
3240 struct snd_ctl_elem_value *ucontrol)
3241{
3242 struct aanc_data aanc_info;
3243
3244 mutex_lock(&routing_lock);
3245 memset(&aanc_info, 0x00, sizeof(aanc_info));
3246 pr_debug("%s: AANC Mux Port %ld\n", __func__,
3247 ucontrol->value.integer.value[0]);
3248 slim0_rx_aanc_fb_port = ucontrol->value.integer.value[0];
3249 if (ucontrol->value.integer.value[0] == 0) {
3250 aanc_info.aanc_active = false;
3251 aanc_info.aanc_tx_port = 0;
3252 aanc_info.aanc_rx_port = 0;
3253 } else {
3254 aanc_info.aanc_active = true;
3255 aanc_info.aanc_rx_port = SLIMBUS_0_RX;
3256 aanc_info.aanc_tx_port =
3257 (SLIMBUS_0_RX - 1 + (slim0_rx_aanc_fb_port * 2));
3258 }
3259 afe_set_aanc_info(&aanc_info);
3260 mutex_unlock(&routing_lock);
3261 return 0;
3262};
3263static int msm_routing_get_port_mixer(struct snd_kcontrol *kcontrol,
3264 struct snd_ctl_elem_value *ucontrol)
3265{
3266 int idx = 0, shift = 0;
3267 struct soc_mixer_control *mc =
3268 (struct soc_mixer_control *)kcontrol->private_value;
3269
Meng Wang05d5e9a2018-03-28 16:45:03 +08003270 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
3271 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303272
3273 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
3274 pr_err("%s: Invalid idx = %d\n", __func__, idx);
3275 return -EINVAL;
3276 }
3277
3278 if (test_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003279 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303280 ucontrol->value.integer.value[0] = 1;
3281 else
3282 ucontrol->value.integer.value[0] = 0;
3283
Meng Wang05d5e9a2018-03-28 16:45:03 +08003284 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303285 ucontrol->value.integer.value[0]);
3286
3287 return 0;
3288}
3289
3290static int msm_routing_put_port_mixer(struct snd_kcontrol *kcontrol,
3291 struct snd_ctl_elem_value *ucontrol)
3292{
3293 int idx = 0, shift = 0;
3294 struct soc_mixer_control *mc =
3295 (struct soc_mixer_control *)kcontrol->private_value;
3296
Meng Wang05d5e9a2018-03-28 16:45:03 +08003297 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
3298 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303299
3300 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
3301 pr_err("%s: Invalid idx = %d\n", __func__, idx);
3302 return -EINVAL;
3303 }
3304
Meng Wang05d5e9a2018-03-28 16:45:03 +08003305 pr_debug("%s: shift 0x%x rshift 0x%x val %ld idx %d reminder shift %d\n",
3306 __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303307 ucontrol->value.integer.value[0], idx, shift);
3308
3309 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08003310 afe_loopback(1, msm_bedais[mc->shift].port_id,
3311 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303312 set_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003313 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303314 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08003315 afe_loopback(0, msm_bedais[mc->shift].port_id,
3316 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303317 clear_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003318 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303319 }
3320
3321 return 1;
3322}
3323
3324static int msm_pcm_get_channel_rule_index(struct snd_kcontrol *kcontrol,
3325 struct snd_ctl_elem_value *ucontrol)
3326{
3327 u16 fe_id = 0;
3328
3329 fe_id = ((struct soc_mixer_control *)
3330 kcontrol->private_value)->shift;
3331 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3332 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3333 return -EINVAL;
3334 }
3335
3336 ucontrol->value.integer.value[0] = channel_mixer[fe_id].rule;
3337
3338 return 0;
3339}
3340
3341static int msm_pcm_put_channel_rule_index(struct snd_kcontrol *kcontrol,
3342 struct snd_ctl_elem_value *ucontrol)
3343{
3344 u16 fe_id = 0;
3345
3346 fe_id = ((struct soc_mixer_control *)
3347 kcontrol->private_value)->shift;
3348 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3349 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3350 return -EINVAL;
3351 }
3352
3353 channel_mixer[fe_id].rule = ucontrol->value.integer.value[0];
3354
3355 return 1;
3356}
3357
3358static int msm_pcm_get_out_chs(struct snd_kcontrol *kcontrol,
3359 struct snd_ctl_elem_value *ucontrol)
3360{
3361 u16 fe_id = 0;
3362
3363 fe_id = ((struct soc_multi_mixer_control *)
3364 kcontrol->private_value)->shift;
3365 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3366 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3367 return -EINVAL;
3368 }
3369
3370 ucontrol->value.integer.value[0] =
3371 channel_mixer[fe_id].output_channel;
3372 return 0;
3373}
3374
3375static int msm_pcm_put_out_chs(struct snd_kcontrol *kcontrol,
3376 struct snd_ctl_elem_value *ucontrol)
3377{
3378 u16 fe_id = 0;
3379
3380 fe_id = ((struct soc_multi_mixer_control *)
3381 kcontrol->private_value)->shift;
3382 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3383 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3384 return -EINVAL;
3385 }
3386
3387 pr_debug("%s: fe_id is %d, output channels = %d\n", __func__,
3388 fe_id,
3389 (unsigned int)(ucontrol->value.integer.value[0]));
3390 channel_mixer[fe_id].output_channel =
3391 (unsigned int)(ucontrol->value.integer.value[0]);
3392
3393 return 1;
3394}
3395
3396static const char *const ch_mixer[] = {"Disable", "Enable"};
3397
3398/* If new backend is added, need update this array */
3399static const char *const be_name[] = {
3400"ZERO", "PRI_I2S_RX", "PRI_I2S_TX", "SLIM_0_RX",
3401"SLIM_0_TX", "HDMI_RX", "INT_BT_SCO_RX", "INT_BT_SCO_TX",
3402"INT_FM_RX", "INT_FM_TX", "AFE_PCM_RX", "AFE_PCM_TX",
3403"AUXPCM_RX", "AUXPCM_TX", "VOICE_PLAYBACK_TX", "VOICE2_PLAYBACK_TX",
3404"INCALL_RECORD_RX", "INCALL_RECORD_TX", "MI2S_RX", "MI2S_TX",
3405"SEC_I2S_RX", "SLIM_1_RX", "SLIM_1_TX", "SLIM_2_RX",
3406"SLIM_2_TX", "SLIM_3_RX", "SLIM_3_TX", "SLIM_4_RX",
3407"SLIM_4_TX", "SLIM_5_RX", "SLIM_5_TX", "SLIM_6_RX",
3408"SLIM_6_TX", "SLIM_7_RX", "SLIM_7_TX", "SLIM_8_RX",
3409"SLIM_8_TX", "EXTPROC_RX", "EXTPROC_TX", "EXPROC_EC_TX",
3410"QUAT_MI2S_RX", "QUAT_MI2S_TX", "SECOND_MI2S_RX", "SECOND_MI2S_TX",
3411"PRI_MI2S_RX", "PRI_MI2S_TX", "TERT_MI2S_RX", "TERT_MI2S_TX",
Ralf Herzc8701f72018-06-20 11:37:35 +02003412"AUDIO_I2S_RX", "SEC_AUXPCM_RX", "SEC_AUXPCM_TX", "PRI_SPDIF_RX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303413"SECOND_MI2S_RX_SD1", "QUIN_MI2S_RX", "QUIN_MI2S_TX", "SENARY_MI2S_TX",
3414"PRI_TDM_RX_0", "PRI_TDM_TX_0", "PRI_TDM_RX_1", "PRI_TDM_TX_1",
3415"PRI_TDM_RX_2", "PRI_TDM_TX_2", "PRI_TDM_RX_3", "PRI_TDM_TX_3",
3416"PRI_TDM_RX_4", "PRI_TDM_TX_4", "PRI_TDM_RX_5", "PRI_TDM_TX_5",
3417"PRI_TDM_RX_6", "PRI_TDM_TX_6", "PRI_TDM_RX_7", "PRI_TDM_TX_7",
3418"SEC_TDM_RX_0", "SEC_TDM_TX_0", "SEC_TDM_RX_1", "SEC_TDM_TX_1",
3419"SEC_TDM_RX_2", "SEC_TDM_TX_2", "SEC_TDM_RX_3", "SEC_TDM_TX_3",
3420"SEC_TDM_RX_4", "SEC_TDM_TX_4", "SEC_TDM_RX_5", "SEC_TDM_TX_5",
3421"SEC_TDM_RX_6", "SEC_TDM_TX_6", "SEC_TDM_RX_7", "SEC_TDM_TX_7",
3422"TERT_TDM_RX_0", "TERT_TDM_TX_0", "TERT_TDM_RX_1", "TERT_TDM_TX_1",
3423"TERT_TDM_RX_2", "TERT_TDM_TX_2", "TERT_TDM_RX_3", "TERT_TDM_TX_3",
3424"TERT_TDM_RX_4", "TERT_TDM_TX_4", "TERT_TDM_RX_5", "TERT_TDM_TX_5",
3425"TERT_TDM_RX_6", "TERT_TDM_TX_6", "TERT_TDM_RX_7", "TERT_TDM_TX_7",
3426"QUAT_TDM_RX_0", "QUAT_TDM_TX_0", "QUAT_TDM_RX_1", "QUAT_TDM_TX_1",
3427"QUAT_TDM_RX_2", "QUAT_TDM_TX_2", "QUAT_TDM_RX_3", "QUAT_TDM_TX_3",
3428"QUAT_TDM_RX_4", "QUAT_TDM_TX_4", "QUAT_TDM_RX_5", "QUAT_TDM_TX_5",
3429"QUAT_TDM_RX_6", "QUAT_TDM_TX_6", "QUAT_TDM_RX_7", "QUAT_TDM_TX_7",
Rohit Kumara5077932017-09-10 22:05:05 +05303430"QUIN_TDM_RX_0", "QUIN_TDM_TX_0", "QUIN_TDM_RX_1", "QUIN_TDM_TX_1",
3431"QUIN_TDM_RX_2", "QUIN_TDM_TX_2", "QUIN_TDM_RX_3", "QUIN_TDM_TX_3",
3432"QUIN_TDM_RX_4", "QUIN_TDM_TX_4", "QUIN_TDM_RX_5", "QUIN_TDM_TX_5",
3433"QUIN_TDM_RX_6", "QUIN_TDM_TX_6", "QUIN_TDM_RX_7", "QUIN_TDM_TX_7",
Karthikeyan Manic3700752019-03-11 18:33:53 -07003434"SEN_TDM_RX_0", "SEN_TDM_TX_0", "SEN_TDM_RX_1", "SEN_TDM_TX_1",
3435"SEN_TDM_RX_2", "SEN_TDM_TX_2", "SEN_TDM_RX_3", "SEN_TDM_TX_3",
3436"SEN_TDM_RX_4", "SEN_TDM_TX_4", "SEN_TDM_RX_5", "SEN_TDM_TX_5",
3437"SEN_TDM_RX_6", "SEN_TDM_TX_6", "SEN_TDM_RX_7", "SEN_TDM_TX_7",
Meng Wangf016d302019-01-21 10:35:53 +08003438"INT_BT_A2DP_RX", "USB_RX", "USB_TX", "DISPLAY_PORT_RX",
3439"DISPLAY_PORT_RX1", "TERT_AUXPCM_RX", "TERT_AUXPCM_TX", "QUAT_AUXPCM_RX",
3440"QUAT_AUXPCM_TX", "QUIN_AUXPCM_RX", "QUIN_AUXPCM_TX", "INT0_MI2S_RX",
3441"INT0_MI2S_TX", "INT1_MI2S_RX", "INT1_MI2S_TX", "INT2_MI2S_RX",
3442"INT2_MI2S_TX", "INT3_MI2S_RX", "INT3_MI2S_TX", "INT4_MI2S_RX",
3443"INT4_MI2S_TX", "INT5_MI2S_RX", "INT5_MI2S_TX", "INT6_MI2S_RX",
3444"INT6_MI2S_TX", "SEN_AUXPCM_RX", "SEN_AUXPCM_TX", "SENARY_MI2S_RX",
3445"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 -08003446"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 +05303447"RX_CDC_DMA_RX_0", "TX_CDC_DMA_TX_0", "RX_CDC_DMA_RX_1", "TX_CDC_DMA_TX_1",
3448"RX_CDC_DMA_RX_2", "TX_CDC_DMA_TX_2", "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_3",
3449"RX_CDC_DMA_RX_4", "TX_CDC_DMA_TX_4", "RX_CDC_DMA_RX_5", "TX_CDC_DMA_TX_5",
3450"RX_CDC_DMA_RX_6", "RX_CDC_DMA_RX_7",
3451"PRI_SPDIF_TX", "SEC_SPDIF_RX", "SEC_SPDIF_TX",
Ralf Herz29e07132019-07-26 15:15:21 +02003452"SLIM_9_RX", "SLIM_9_TX", "AFE_LOOPBACK_TX", "PRI_META_MI2S_RX",
3453"SEC_META_MI2S_RX"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303454};
3455
3456static SOC_ENUM_SINGLE_DECL(mm1_channel_mux,
3457 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, ch_mixer);
3458static SOC_ENUM_SINGLE_DECL(mm2_channel_mux,
3459 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA2, ch_mixer);
3460static SOC_ENUM_SINGLE_DECL(mm3_channel_mux,
3461 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA3, ch_mixer);
3462static SOC_ENUM_SINGLE_DECL(mm4_channel_mux,
3463 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA4, ch_mixer);
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303464static SOC_ENUM_SINGLE_DECL(mm18_channel_mux,
3465 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA18, ch_mixer);
3466static SOC_ENUM_SINGLE_DECL(mm19_channel_mux,
3467 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA19, ch_mixer);
3468static SOC_ENUM_SINGLE_DECL(mm28_channel_mux,
3469 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA28, ch_mixer);
3470static SOC_ENUM_SINGLE_DECL(mm29_channel_mux,
3471 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA29, ch_mixer);
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05303472static SOC_ENUM_SINGLE_DECL(mm30_channel_mux,
3473 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA30, ch_mixer);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303474
3475static SOC_ENUM_DOUBLE_DECL(mm1_ch1_enum,
3476 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 0, be_name);
3477static SOC_ENUM_DOUBLE_DECL(mm1_ch2_enum,
3478 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 1, be_name);
3479static SOC_ENUM_DOUBLE_DECL(mm1_ch3_enum,
3480 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 2, be_name);
3481static SOC_ENUM_DOUBLE_DECL(mm1_ch4_enum,
3482 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 3, be_name);
3483static SOC_ENUM_DOUBLE_DECL(mm1_ch5_enum,
3484 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 4, be_name);
3485static SOC_ENUM_DOUBLE_DECL(mm1_ch6_enum,
3486 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 5, be_name);
3487static SOC_ENUM_DOUBLE_DECL(mm1_ch7_enum,
3488 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 6, be_name);
3489static SOC_ENUM_DOUBLE_DECL(mm1_ch8_enum,
3490 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 7, be_name);
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303491static SOC_ENUM_DOUBLE_DECL(mm18_ch1_enum,
3492 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA18, 0, be_name);
3493static SOC_ENUM_DOUBLE_DECL(mm18_ch2_enum,
3494 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA18, 1, be_name);
3495static SOC_ENUM_DOUBLE_DECL(mm19_ch1_enum,
3496 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA19, 0, be_name);
3497static SOC_ENUM_DOUBLE_DECL(mm19_ch2_enum,
3498 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA19, 1, be_name);
3499static SOC_ENUM_DOUBLE_DECL(mm28_ch1_enum,
3500 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA28, 0, be_name);
3501static SOC_ENUM_DOUBLE_DECL(mm28_ch2_enum,
3502 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA28, 1, be_name);
3503static SOC_ENUM_DOUBLE_DECL(mm29_ch1_enum,
3504 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA29, 0, be_name);
3505static SOC_ENUM_DOUBLE_DECL(mm29_ch2_enum,
3506 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA29, 1, be_name);
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05303507static SOC_ENUM_DOUBLE_DECL(mm30_ch1_enum,
3508 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA30, 0, be_name);
3509static SOC_ENUM_DOUBLE_DECL(mm30_ch2_enum,
3510 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA30, 1, be_name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303511
3512static int msm_pcm_get_ctl_enum_info(struct snd_ctl_elem_info *uinfo,
3513 unsigned int channels,
3514 unsigned int items, const char *const names[])
3515{
3516 if (uinfo->value.enumerated.item >= items)
3517 uinfo->value.enumerated.item = items - 1;
3518
3519 WARN(strlen(names[uinfo->value.enumerated.item]) >=
3520 sizeof(uinfo->value.enumerated.name),
3521 "ALSA: too long item name '%s'\n",
3522 names[uinfo->value.enumerated.item]);
3523 strlcpy(uinfo->value.enumerated.name,
3524 names[uinfo->value.enumerated.item],
3525 sizeof(uinfo->value.enumerated.name));
3526 return 0;
3527}
3528
3529static int msm_pcm_channel_mixer_info(struct snd_kcontrol *kcontrol,
3530 struct snd_ctl_elem_info *uinfo)
3531{
3532 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3533
3534 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3535 uinfo->count = 1;
3536
3537 uinfo->value.enumerated.items = ARRAY_SIZE(ch_mixer);
3538 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3539
3540 return 0;
3541}
3542static int msm_pcm_channel_mixer_get(struct snd_kcontrol *kcontrol,
3543 struct snd_ctl_elem_value *ucontrol)
3544{
3545 u16 fe_id = 0;
3546
3547 fe_id = ((struct soc_enum *)
3548 kcontrol->private_value)->shift_l;
3549 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3550 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3551 return -EINVAL;
3552 }
3553
3554 pr_debug("%s: FE %d %s\n", __func__,
3555 fe_id,
3556 channel_mixer[fe_id].enable ? "Enabled" : "Disabled");
3557 ucontrol->value.enumerated.item[0] = channel_mixer[fe_id].enable;
3558 return 0;
3559}
3560
3561static int msm_pcm_channel_mixer_put(struct snd_kcontrol *kcontrol,
3562 struct snd_ctl_elem_value *ucontrol)
3563{
3564 u16 fe_id = 0;
3565
3566 fe_id = ((struct soc_enum *)
3567 kcontrol->private_value)->shift_l;
3568 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3569 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3570 return -EINVAL;
3571 }
3572
3573 channel_mixer[fe_id].enable = ucontrol->value.enumerated.item[0];
3574 pr_debug("%s: %s FE %d\n", __func__,
3575 channel_mixer[fe_id].enable ? "Enable" : "Disable",
3576 fe_id);
3577 return 0;
3578}
3579
3580static int msm_pcm_channel_input_be_info(struct snd_kcontrol *kcontrol,
3581 struct snd_ctl_elem_info *uinfo)
3582{
3583 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3584
3585 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3586 uinfo->count = 1;
3587
3588 uinfo->value.enumerated.items = ARRAY_SIZE(be_name);
3589 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3590
3591 return 0;
3592}
3593
3594static int msm_pcm_channel_input_be_put(struct snd_kcontrol *kcontrol,
3595 struct snd_ctl_elem_value *ucontrol)
3596{
3597 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3598 u16 fe_id = 0, in_ch = 0;
3599
3600 fe_id = e->shift_l;
3601 in_ch = e->shift_r;
3602 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3603 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3604 return -EINVAL;
3605 }
3606 if (in_ch >= ADM_MAX_CHANNELS) {
3607 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3608 return -EINVAL;
3609 }
3610
3611 channel_input[fe_id][in_ch] = ucontrol->value.enumerated.item[0];
3612 return 1;
3613}
3614
3615static int msm_pcm_channel_input_be_get(struct snd_kcontrol *kcontrol,
3616 struct snd_ctl_elem_value *ucontrol)
3617{
3618 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3619 u16 fe_id = 0, in_ch = 0;
3620
3621 fe_id = e->shift_l;
3622 in_ch = e->shift_r;
3623 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3624 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3625 return -EINVAL;
3626 }
3627 if (in_ch >= ADM_MAX_CHANNELS) {
3628 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3629 return -EINVAL;
3630 }
3631
3632 ucontrol->value.enumerated.item[0] = channel_input[fe_id][in_ch];
3633 return 1;
3634}
3635
3636
3637static int msm_pcm_channel_weight_info(struct snd_kcontrol *kcontrol,
3638 struct snd_ctl_elem_info *uinfo)
3639{
3640 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3641 uinfo->count = ADM_MAX_CHANNELS;
3642 uinfo->value.integer.min = 0;
3643 uinfo->value.integer.max = WEIGHT_0_DB;
3644
3645 return 0;
3646}
3647
3648static int msm_pcm_channel_weight_put(struct snd_kcontrol *kcontrol,
3649 struct snd_ctl_elem_value *ucontrol)
3650{
3651 u16 fe_id = 0, out_ch = 0;
3652 int i, weight;
3653
3654 fe_id = ((struct soc_multi_mixer_control *)
3655 kcontrol->private_value)->shift;
3656 out_ch = ((struct soc_multi_mixer_control *)
3657 kcontrol->private_value)->rshift;
3658 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3659 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3660 return -EINVAL;
3661 }
3662 if (out_ch >= ADM_MAX_CHANNELS) {
3663 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3664 return -EINVAL;
3665 }
3666
3667 pr_debug("%s: FE_ID: %d, channel weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld\n",
3668 __func__, fe_id,
3669 ucontrol->value.integer.value[0],
3670 ucontrol->value.integer.value[1],
3671 ucontrol->value.integer.value[2],
3672 ucontrol->value.integer.value[3],
3673 ucontrol->value.integer.value[4],
3674 ucontrol->value.integer.value[5],
3675 ucontrol->value.integer.value[6],
3676 ucontrol->value.integer.value[7]);
3677
3678 for (i = 0; i < ADM_MAX_CHANNELS; ++i) {
3679 weight = ucontrol->value.integer.value[i];
3680 channel_mixer[fe_id].channel_weight[out_ch][i] = weight;
3681 pr_debug("%s: FE_ID %d, output %d input %d weight %d\n",
3682 __func__, fe_id, out_ch, i,
3683 channel_mixer[fe_id].channel_weight[out_ch][i]);
3684 }
3685
3686 return 0;
3687}
3688
3689static int msm_pcm_channel_weight_get(struct snd_kcontrol *kcontrol,
3690 struct snd_ctl_elem_value *ucontrol)
3691{
3692 u16 fe_id = 0, out_ch = 0;
3693 int i;
3694
3695 fe_id = ((struct soc_multi_mixer_control *)
3696 kcontrol->private_value)->shift;
3697 out_ch = ((struct soc_multi_mixer_control *)
3698 kcontrol->private_value)->rshift;
3699 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3700 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3701 return -EINVAL;
3702 }
3703 if (out_ch >= ADM_MAX_CHANNELS) {
3704 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3705 return -EINVAL;
3706 }
3707
3708 for (i = 0; i < ADM_MAX_CHANNELS; ++i)
3709 ucontrol->value.integer.value[i] =
3710 channel_mixer[fe_id].channel_weight[out_ch][i];
3711
3712 pr_debug("%s: FE_ID: %d, weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld",
3713 __func__, fe_id,
3714 ucontrol->value.integer.value[0],
3715 ucontrol->value.integer.value[1],
3716 ucontrol->value.integer.value[2],
3717 ucontrol->value.integer.value[3],
3718 ucontrol->value.integer.value[4],
3719 ucontrol->value.integer.value[5],
3720 ucontrol->value.integer.value[6],
3721 ucontrol->value.integer.value[7]);
3722
3723 return 0;
3724}
3725
Chaithanya Krishna Bacharajue48fb2b2019-05-08 13:02:08 +05303726static int msm_pcm_channel_output_map_info(struct snd_kcontrol *kcontrol,
3727 struct snd_ctl_elem_info *uinfo)
3728{
3729 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3730 uinfo->count = PCM_FORMAT_MAX_NUM_CHANNEL_V8;
3731 /* Valid channel map value ranges from 1 to 64 */
3732 uinfo->value.integer.min = 0;
3733 uinfo->value.integer.max = 64;
3734
3735 return 0;
3736}
3737
3738static int msm_pcm_channel_output_map_put(struct snd_kcontrol *kcontrol,
3739 struct snd_ctl_elem_value *ucontrol)
3740{
3741 u16 fe_id = 0;
3742 int i, ch_map;
3743
3744 fe_id = ((struct soc_multi_mixer_control *)
3745 kcontrol->private_value)->shift;
3746 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3747 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3748 return -EINVAL;
3749 }
3750
3751 for (i = 0; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; ++i) {
3752 ch_map = ucontrol->value.integer.value[i];
3753 channel_mixer[fe_id].out_ch_map[i] = ch_map;
3754 pr_debug("%s: FE_ID %d, channel %d channel map %d\n",
3755 __func__, fe_id, i, channel_mixer[fe_id].out_ch_map[i]);
3756 }
3757
3758 /* Make override_out_ch_map false if ch map is reset */
3759 if (channel_mixer[fe_id].out_ch_map[0] == 0)
3760 channel_mixer[fe_id].override_out_ch_map = false;
3761 else
3762 channel_mixer[fe_id].override_out_ch_map = true;
3763
3764 return 0;
3765}
3766
3767static int msm_pcm_channel_output_map_get(struct snd_kcontrol *kcontrol,
3768 struct snd_ctl_elem_value *ucontrol)
3769{
3770 u16 fe_id = 0;
3771 int i;
3772
3773 fe_id = ((struct soc_multi_mixer_control *)
3774 kcontrol->private_value)->shift;
3775 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3776 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3777 return -EINVAL;
3778 }
3779
3780 for (i = 0; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; ++i)
3781 ucontrol->value.integer.value[i] =
3782 channel_mixer[fe_id].out_ch_map[i];
3783
3784 return 0;
3785}
3786
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303787static const struct snd_kcontrol_new channel_mixer_controls[] = {
3788 SOC_SINGLE_EXT("MultiMedia1 Channel Rule", SND_SOC_NOPM,
3789 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3790 msm_pcm_get_channel_rule_index,
3791 msm_pcm_put_channel_rule_index),
3792 SOC_SINGLE_EXT("MultiMedia2 Channel Rule", SND_SOC_NOPM,
3793 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3794 msm_pcm_get_channel_rule_index,
3795 msm_pcm_put_channel_rule_index),
3796 SOC_SINGLE_EXT("MultiMedia3 Channel Rule", SND_SOC_NOPM,
3797 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3798 msm_pcm_get_channel_rule_index,
3799 msm_pcm_put_channel_rule_index),
3800 SOC_SINGLE_EXT("MultiMedia4 Channel Rule", SND_SOC_NOPM,
3801 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3802 msm_pcm_get_channel_rule_index,
3803 msm_pcm_put_channel_rule_index),
3804 SOC_SINGLE_EXT("MultiMedia5 Channel Rule", SND_SOC_NOPM,
3805 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3806 msm_pcm_get_channel_rule_index,
3807 msm_pcm_put_channel_rule_index),
3808 SOC_SINGLE_EXT("MultiMedia6 Channel Rule", SND_SOC_NOPM,
3809 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3810 msm_pcm_get_channel_rule_index,
3811 msm_pcm_put_channel_rule_index),
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303812 SOC_SINGLE_EXT("MultiMedia18 Channel Rule", SND_SOC_NOPM,
3813 MSM_FRONTEND_DAI_MULTIMEDIA18, 8, 0,
3814 msm_pcm_get_channel_rule_index,
3815 msm_pcm_put_channel_rule_index),
3816 SOC_SINGLE_EXT("MultiMedia19 Channel Rule", SND_SOC_NOPM,
3817 MSM_FRONTEND_DAI_MULTIMEDIA19, 8, 0,
3818 msm_pcm_get_channel_rule_index,
3819 msm_pcm_put_channel_rule_index),
3820 SOC_SINGLE_EXT("MultiMedia28 Channel Rule", SND_SOC_NOPM,
3821 MSM_FRONTEND_DAI_MULTIMEDIA28, 8, 0,
3822 msm_pcm_get_channel_rule_index,
3823 msm_pcm_put_channel_rule_index),
3824 SOC_SINGLE_EXT("MultiMedia29 Channel Rule", SND_SOC_NOPM,
3825 MSM_FRONTEND_DAI_MULTIMEDIA29, 8, 0,
3826 msm_pcm_get_channel_rule_index,
3827 msm_pcm_put_channel_rule_index),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05303828 SOC_SINGLE_EXT("MultiMedia30 Channel Rule", SND_SOC_NOPM,
3829 MSM_FRONTEND_DAI_MULTIMEDIA30, 8, 0,
3830 msm_pcm_get_channel_rule_index,
3831 msm_pcm_put_channel_rule_index),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303832
3833 SOC_SINGLE_EXT("MultiMedia1 Channels", SND_SOC_NOPM,
Chaithanya Krishna Bacharaju6790e922019-05-03 13:41:00 +05303834 MSM_FRONTEND_DAI_MULTIMEDIA1, 14, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303835 msm_pcm_get_out_chs,
3836 msm_pcm_put_out_chs),
3837 SOC_SINGLE_EXT("MultiMedia2 Channels", SND_SOC_NOPM,
3838 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3839 msm_pcm_get_out_chs,
3840 msm_pcm_put_out_chs),
3841 SOC_SINGLE_EXT("MultiMedia3 Channels", SND_SOC_NOPM,
3842 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3843 msm_pcm_get_out_chs,
3844 msm_pcm_put_out_chs),
3845 SOC_SINGLE_EXT("MultiMedia4 Channels", SND_SOC_NOPM,
3846 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3847 msm_pcm_get_out_chs,
3848 msm_pcm_put_out_chs),
3849 SOC_SINGLE_EXT("MultiMedia5 Channels", SND_SOC_NOPM,
3850 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3851 msm_pcm_get_out_chs,
3852 msm_pcm_put_out_chs),
3853 SOC_SINGLE_EXT("MultiMedia6 Channels", SND_SOC_NOPM,
3854 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3855 msm_pcm_get_out_chs,
3856 msm_pcm_put_out_chs),
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303857 SOC_SINGLE_EXT("MultiMedia18 Channels", SND_SOC_NOPM,
3858 MSM_FRONTEND_DAI_MULTIMEDIA18, 14, 0,
3859 msm_pcm_get_out_chs,
3860 msm_pcm_put_out_chs),
3861 SOC_SINGLE_EXT("MultiMedia19 Channels", SND_SOC_NOPM,
3862 MSM_FRONTEND_DAI_MULTIMEDIA19, 14, 0,
3863 msm_pcm_get_out_chs,
3864 msm_pcm_put_out_chs),
3865 SOC_SINGLE_EXT("MultiMedia28 Channels", SND_SOC_NOPM,
3866 MSM_FRONTEND_DAI_MULTIMEDIA28, 14, 0,
3867 msm_pcm_get_out_chs,
3868 msm_pcm_put_out_chs),
3869 SOC_SINGLE_EXT("MultiMedia29 Channels", SND_SOC_NOPM,
3870 MSM_FRONTEND_DAI_MULTIMEDIA29, 14, 0,
3871 msm_pcm_get_out_chs,
3872 msm_pcm_put_out_chs),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05303873 SOC_SINGLE_EXT("MultiMedia30 Channels", SND_SOC_NOPM,
3874 MSM_FRONTEND_DAI_MULTIMEDIA30, 14, 0,
3875 msm_pcm_get_out_chs,
3876 msm_pcm_put_out_chs),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303877 {
3878 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3879 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3880 .name = "MultiMedia1 Channel Mixer",
3881 .info = msm_pcm_channel_mixer_info,
3882 .get = msm_pcm_channel_mixer_get,
3883 .put = msm_pcm_channel_mixer_put,
3884 .private_value = (unsigned long)&(mm1_channel_mux)
3885 },
3886 {
3887 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3888 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3889 .name = "MultiMedia2 Channel Mixer",
3890 .info = msm_pcm_channel_mixer_info,
3891 .get = msm_pcm_channel_mixer_get,
3892 .put = msm_pcm_channel_mixer_put,
3893 .private_value = (unsigned long)&(mm2_channel_mux)
3894 },
3895 {
3896 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3897 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3898 .name = "MultiMedia3 Channel Mixer",
3899 .info = msm_pcm_channel_mixer_info,
3900 .get = msm_pcm_channel_mixer_get,
3901 .put = msm_pcm_channel_mixer_put,
3902 .private_value = (unsigned long)&(mm3_channel_mux)
3903 },
3904 {
3905 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3906 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3907 .name = "MultiMedia4 Channel Mixer",
3908 .info = msm_pcm_channel_mixer_info,
3909 .get = msm_pcm_channel_mixer_get,
3910 .put = msm_pcm_channel_mixer_put,
3911 .private_value = (unsigned long)&(mm4_channel_mux)
3912 },
3913 {
3914 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3915 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303916 .name = "MultiMedia18 Channel Mixer",
3917 .info = msm_pcm_channel_mixer_info,
3918 .get = msm_pcm_channel_mixer_get,
3919 .put = msm_pcm_channel_mixer_put,
3920 .private_value = (unsigned long)&(mm18_channel_mux)
3921 },
3922 {
3923 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3924 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3925 .name = "MultiMedia19 Channel Mixer",
3926 .info = msm_pcm_channel_mixer_info,
3927 .get = msm_pcm_channel_mixer_get,
3928 .put = msm_pcm_channel_mixer_put,
3929 .private_value = (unsigned long)&(mm19_channel_mux)
3930 },
3931 {
3932 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3933 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3934 .name = "MultiMedia28 Channel Mixer",
3935 .info = msm_pcm_channel_mixer_info,
3936 .get = msm_pcm_channel_mixer_get,
3937 .put = msm_pcm_channel_mixer_put,
3938 .private_value = (unsigned long)&(mm28_channel_mux)
3939 },
3940 {
3941 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3942 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3943 .name = "MultiMedia29 Channel Mixer",
3944 .info = msm_pcm_channel_mixer_info,
3945 .get = msm_pcm_channel_mixer_get,
3946 .put = msm_pcm_channel_mixer_put,
3947 .private_value = (unsigned long)&(mm29_channel_mux)
3948 },
3949 {
3950 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3951 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05303952 .name = "MultiMedia30 Channel Mixer",
3953 .info = msm_pcm_channel_mixer_info,
3954 .get = msm_pcm_channel_mixer_get,
3955 .put = msm_pcm_channel_mixer_put,
3956 .private_value = (unsigned long)&(mm30_channel_mux)
3957 },
3958 {
3959 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3960 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303961 .name = "MultiMedia1 Output Channel1",
3962 .info = msm_pcm_channel_weight_info,
3963 .get = msm_pcm_channel_weight_get,
3964 .put = msm_pcm_channel_weight_put,
3965 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3966 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 0,}
3967 },
3968 {
3969 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3970 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3971 .name = "MultiMedia1 Output Channel2",
3972 .info = msm_pcm_channel_weight_info,
3973 .get = msm_pcm_channel_weight_get,
3974 .put = msm_pcm_channel_weight_put,
3975 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3976 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 1, }
3977 },
3978 {
3979 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3980 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3981 .name = "MultiMedia1 Output Channel3",
3982 .info = msm_pcm_channel_weight_info,
3983 .get = msm_pcm_channel_weight_get,
3984 .put = msm_pcm_channel_weight_put,
3985 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3986 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 2,}
3987 },
3988 {
3989 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3990 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3991 .name = "MultiMedia1 Output Channel4",
3992 .info = msm_pcm_channel_weight_info,
3993 .get = msm_pcm_channel_weight_get,
3994 .put = msm_pcm_channel_weight_put,
3995 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3996 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 3,}
3997 },
3998 {
3999 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4000 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4001 .name = "MultiMedia1 Output Channel5",
4002 .info = msm_pcm_channel_weight_info,
4003 .get = msm_pcm_channel_weight_get,
4004 .put = msm_pcm_channel_weight_put,
4005 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4006 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 4,}
4007 },
4008 {
4009 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4010 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4011 .name = "MultiMedia1 Output Channel6",
4012 .info = msm_pcm_channel_weight_info,
4013 .get = msm_pcm_channel_weight_get,
4014 .put = msm_pcm_channel_weight_put,
4015 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4016 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 5,}
4017 },
4018 {
4019 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4020 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4021 .name = "MultiMedia1 Output Channel7",
4022 .info = msm_pcm_channel_weight_info,
4023 .get = msm_pcm_channel_weight_get,
4024 .put = msm_pcm_channel_weight_put,
4025 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4026 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 6,}
4027 },
4028 {
4029 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4030 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4031 .name = "MultiMedia1 Output Channel8",
4032 .info = msm_pcm_channel_weight_info,
4033 .get = msm_pcm_channel_weight_get,
4034 .put = msm_pcm_channel_weight_put,
4035 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4036 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 7,}
4037 },
4038 {
4039 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4040 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05304041 .name = "MultiMedia1 Output Channel9",
4042 .info = msm_pcm_channel_weight_info,
4043 .get = msm_pcm_channel_weight_get,
4044 .put = msm_pcm_channel_weight_put,
4045 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4046 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 8,}
4047 },
4048 {
4049 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4050 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4051 .name = "MultiMedia1 Output Channel10",
4052 .info = msm_pcm_channel_weight_info,
4053 .get = msm_pcm_channel_weight_get,
4054 .put = msm_pcm_channel_weight_put,
4055 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4056 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 9,}
4057 },
4058 {
4059 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4060 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju6790e922019-05-03 13:41:00 +05304061 .name = "MultiMedia1 Output Channel11",
4062 .info = msm_pcm_channel_weight_info,
4063 .get = msm_pcm_channel_weight_get,
4064 .put = msm_pcm_channel_weight_put,
4065 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4066 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 10,}
4067 },
4068 {
4069 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4070 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4071 .name = "MultiMedia1 Output Channel12",
4072 .info = msm_pcm_channel_weight_info,
4073 .get = msm_pcm_channel_weight_get,
4074 .put = msm_pcm_channel_weight_put,
4075 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4076 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 11,}
4077 },
4078 {
4079 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4080 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4081 .name = "MultiMedia1 Output Channel13",
4082 .info = msm_pcm_channel_weight_info,
4083 .get = msm_pcm_channel_weight_get,
4084 .put = msm_pcm_channel_weight_put,
4085 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4086 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 12,}
4087 },
4088 {
4089 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4090 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4091 .name = "MultiMedia1 Output Channel14",
4092 .info = msm_pcm_channel_weight_info,
4093 .get = msm_pcm_channel_weight_get,
4094 .put = msm_pcm_channel_weight_put,
4095 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4096 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 13,}
4097 },
4098 {
4099 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4100 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304101 .name = "MultiMedia2 Output Channel1",
4102 .info = msm_pcm_channel_weight_info,
4103 .get = msm_pcm_channel_weight_get,
4104 .put = msm_pcm_channel_weight_put,
4105 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4106 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 0,}
4107 },
4108 {
4109 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4110 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4111 .name = "MultiMedia2 Output Channel2",
4112 .info = msm_pcm_channel_weight_info,
4113 .get = msm_pcm_channel_weight_get,
4114 .put = msm_pcm_channel_weight_put,
4115 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4116 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 1,}
4117 },
4118 {
4119 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4120 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4121 .name = "MultiMedia2 Output Channel3",
4122 .info = msm_pcm_channel_weight_info,
4123 .get = msm_pcm_channel_weight_get,
4124 .put = msm_pcm_channel_weight_put,
4125 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4126 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 2,}
4127 },
4128 {
4129 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4130 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4131 .name = "MultiMedia3 Output Channel1",
4132 .info = msm_pcm_channel_weight_info,
4133 .get = msm_pcm_channel_weight_get,
4134 .put = msm_pcm_channel_weight_put,
4135 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4136 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 0,}
4137 },
4138 {
4139 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4140 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4141 .name = "MultiMedia3 Output Channel2",
4142 .info = msm_pcm_channel_weight_info,
4143 .get = msm_pcm_channel_weight_get,
4144 .put = msm_pcm_channel_weight_put,
4145 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4146 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 1,}
4147 },
4148 {
4149 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4150 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05304151 .name = "MultiMedia18 Output Channel1",
4152 .info = msm_pcm_channel_weight_info,
4153 .get = msm_pcm_channel_weight_get,
4154 .put = msm_pcm_channel_weight_put,
4155 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4156 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 0,}
4157 },
4158 {
4159 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4160 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4161 .name = "MultiMedia18 Output Channel2",
4162 .info = msm_pcm_channel_weight_info,
4163 .get = msm_pcm_channel_weight_get,
4164 .put = msm_pcm_channel_weight_put,
4165 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4166 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 1, }
4167 },
4168 {
4169 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4170 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4171 .name = "MultiMedia18 Output Channel3",
4172 .info = msm_pcm_channel_weight_info,
4173 .get = msm_pcm_channel_weight_get,
4174 .put = msm_pcm_channel_weight_put,
4175 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4176 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 2,}
4177 },
4178 {
4179 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4180 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4181 .name = "MultiMedia18 Output Channel4",
4182 .info = msm_pcm_channel_weight_info,
4183 .get = msm_pcm_channel_weight_get,
4184 .put = msm_pcm_channel_weight_put,
4185 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4186 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 3,}
4187 },
4188 {
4189 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4190 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4191 .name = "MultiMedia18 Output Channel5",
4192 .info = msm_pcm_channel_weight_info,
4193 .get = msm_pcm_channel_weight_get,
4194 .put = msm_pcm_channel_weight_put,
4195 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4196 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 4,}
4197 },
4198 {
4199 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4200 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4201 .name = "MultiMedia18 Output Channel6",
4202 .info = msm_pcm_channel_weight_info,
4203 .get = msm_pcm_channel_weight_get,
4204 .put = msm_pcm_channel_weight_put,
4205 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4206 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 5,}
4207 },
4208 {
4209 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4210 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4211 .name = "MultiMedia18 Output Channel7",
4212 .info = msm_pcm_channel_weight_info,
4213 .get = msm_pcm_channel_weight_get,
4214 .put = msm_pcm_channel_weight_put,
4215 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4216 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 6,}
4217 },
4218 {
4219 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4220 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4221 .name = "MultiMedia18 Output Channel8",
4222 .info = msm_pcm_channel_weight_info,
4223 .get = msm_pcm_channel_weight_get,
4224 .put = msm_pcm_channel_weight_put,
4225 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4226 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 7,}
4227 },
4228 {
4229 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4230 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4231 .name = "MultiMedia18 Output Channel9",
4232 .info = msm_pcm_channel_weight_info,
4233 .get = msm_pcm_channel_weight_get,
4234 .put = msm_pcm_channel_weight_put,
4235 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4236 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 8,}
4237 },
4238 {
4239 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4240 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4241 .name = "MultiMedia18 Output Channel10",
4242 .info = msm_pcm_channel_weight_info,
4243 .get = msm_pcm_channel_weight_get,
4244 .put = msm_pcm_channel_weight_put,
4245 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4246 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 9,}
4247 },
4248 {
4249 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4250 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4251 .name = "MultiMedia18 Output Channel11",
4252 .info = msm_pcm_channel_weight_info,
4253 .get = msm_pcm_channel_weight_get,
4254 .put = msm_pcm_channel_weight_put,
4255 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4256 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 10,}
4257 },
4258 {
4259 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4260 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4261 .name = "MultiMedia18 Output Channel12",
4262 .info = msm_pcm_channel_weight_info,
4263 .get = msm_pcm_channel_weight_get,
4264 .put = msm_pcm_channel_weight_put,
4265 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4266 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 11,}
4267 },
4268 {
4269 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4270 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4271 .name = "MultiMedia18 Output Channel13",
4272 .info = msm_pcm_channel_weight_info,
4273 .get = msm_pcm_channel_weight_get,
4274 .put = msm_pcm_channel_weight_put,
4275 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4276 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 12,}
4277 },
4278 {
4279 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4280 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4281 .name = "MultiMedia18 Output Channel14",
4282 .info = msm_pcm_channel_weight_info,
4283 .get = msm_pcm_channel_weight_get,
4284 .put = msm_pcm_channel_weight_put,
4285 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4286 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 13,}
4287 },
4288 {
4289 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4290 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4291 .name = "MultiMedia19 Output Channel1",
4292 .info = msm_pcm_channel_weight_info,
4293 .get = msm_pcm_channel_weight_get,
4294 .put = msm_pcm_channel_weight_put,
4295 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4296 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 0,}
4297 },
4298 {
4299 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4300 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4301 .name = "MultiMedia19 Output Channel2",
4302 .info = msm_pcm_channel_weight_info,
4303 .get = msm_pcm_channel_weight_get,
4304 .put = msm_pcm_channel_weight_put,
4305 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4306 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 1, }
4307 },
4308 {
4309 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4310 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4311 .name = "MultiMedia19 Output Channel3",
4312 .info = msm_pcm_channel_weight_info,
4313 .get = msm_pcm_channel_weight_get,
4314 .put = msm_pcm_channel_weight_put,
4315 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4316 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 2,}
4317 },
4318 {
4319 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4320 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4321 .name = "MultiMedia19 Output Channel4",
4322 .info = msm_pcm_channel_weight_info,
4323 .get = msm_pcm_channel_weight_get,
4324 .put = msm_pcm_channel_weight_put,
4325 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4326 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 3,}
4327 },
4328 {
4329 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4330 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4331 .name = "MultiMedia19 Output Channel5",
4332 .info = msm_pcm_channel_weight_info,
4333 .get = msm_pcm_channel_weight_get,
4334 .put = msm_pcm_channel_weight_put,
4335 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4336 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 4,}
4337 },
4338 {
4339 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4340 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4341 .name = "MultiMedia19 Output Channel6",
4342 .info = msm_pcm_channel_weight_info,
4343 .get = msm_pcm_channel_weight_get,
4344 .put = msm_pcm_channel_weight_put,
4345 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4346 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 5,}
4347 },
4348 {
4349 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4350 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4351 .name = "MultiMedia19 Output Channel7",
4352 .info = msm_pcm_channel_weight_info,
4353 .get = msm_pcm_channel_weight_get,
4354 .put = msm_pcm_channel_weight_put,
4355 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4356 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 6,}
4357 },
4358 {
4359 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4360 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4361 .name = "MultiMedia19 Output Channel8",
4362 .info = msm_pcm_channel_weight_info,
4363 .get = msm_pcm_channel_weight_get,
4364 .put = msm_pcm_channel_weight_put,
4365 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4366 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 7,}
4367 },
4368 {
4369 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4370 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4371 .name = "MultiMedia19 Output Channel9",
4372 .info = msm_pcm_channel_weight_info,
4373 .get = msm_pcm_channel_weight_get,
4374 .put = msm_pcm_channel_weight_put,
4375 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4376 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 8,}
4377 },
4378 {
4379 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4380 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4381 .name = "MultiMedia19 Output Channel10",
4382 .info = msm_pcm_channel_weight_info,
4383 .get = msm_pcm_channel_weight_get,
4384 .put = msm_pcm_channel_weight_put,
4385 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4386 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 9,}
4387 },
4388 {
4389 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4390 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4391 .name = "MultiMedia19 Output Channel11",
4392 .info = msm_pcm_channel_weight_info,
4393 .get = msm_pcm_channel_weight_get,
4394 .put = msm_pcm_channel_weight_put,
4395 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4396 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 10,}
4397 },
4398 {
4399 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4400 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4401 .name = "MultiMedia19 Output Channel12",
4402 .info = msm_pcm_channel_weight_info,
4403 .get = msm_pcm_channel_weight_get,
4404 .put = msm_pcm_channel_weight_put,
4405 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4406 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 11,}
4407 },
4408 {
4409 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4410 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4411 .name = "MultiMedia19 Output Channel13",
4412 .info = msm_pcm_channel_weight_info,
4413 .get = msm_pcm_channel_weight_get,
4414 .put = msm_pcm_channel_weight_put,
4415 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4416 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 12,}
4417 },
4418 {
4419 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4420 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4421 .name = "MultiMedia19 Output Channel14",
4422 .info = msm_pcm_channel_weight_info,
4423 .get = msm_pcm_channel_weight_get,
4424 .put = msm_pcm_channel_weight_put,
4425 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4426 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 13,}
4427 },
4428 {
4429 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4430 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4431 .name = "MultiMedia28 Output Channel1",
4432 .info = msm_pcm_channel_weight_info,
4433 .get = msm_pcm_channel_weight_get,
4434 .put = msm_pcm_channel_weight_put,
4435 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4436 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 0,}
4437 },
4438 {
4439 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4440 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4441 .name = "MultiMedia28 Output Channel2",
4442 .info = msm_pcm_channel_weight_info,
4443 .get = msm_pcm_channel_weight_get,
4444 .put = msm_pcm_channel_weight_put,
4445 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4446 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 1, }
4447 },
4448 {
4449 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4450 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4451 .name = "MultiMedia28 Output Channel3",
4452 .info = msm_pcm_channel_weight_info,
4453 .get = msm_pcm_channel_weight_get,
4454 .put = msm_pcm_channel_weight_put,
4455 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4456 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 2,}
4457 },
4458 {
4459 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4460 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4461 .name = "MultiMedia28 Output Channel4",
4462 .info = msm_pcm_channel_weight_info,
4463 .get = msm_pcm_channel_weight_get,
4464 .put = msm_pcm_channel_weight_put,
4465 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4466 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 3,}
4467 },
4468 {
4469 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4470 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4471 .name = "MultiMedia28 Output Channel5",
4472 .info = msm_pcm_channel_weight_info,
4473 .get = msm_pcm_channel_weight_get,
4474 .put = msm_pcm_channel_weight_put,
4475 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4476 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 4,}
4477 },
4478 {
4479 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4480 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4481 .name = "MultiMedia28 Output Channel6",
4482 .info = msm_pcm_channel_weight_info,
4483 .get = msm_pcm_channel_weight_get,
4484 .put = msm_pcm_channel_weight_put,
4485 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4486 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 5,}
4487 },
4488 {
4489 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4490 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4491 .name = "MultiMedia28 Output Channel7",
4492 .info = msm_pcm_channel_weight_info,
4493 .get = msm_pcm_channel_weight_get,
4494 .put = msm_pcm_channel_weight_put,
4495 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4496 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 6,}
4497 },
4498 {
4499 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4500 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4501 .name = "MultiMedia28 Output Channel8",
4502 .info = msm_pcm_channel_weight_info,
4503 .get = msm_pcm_channel_weight_get,
4504 .put = msm_pcm_channel_weight_put,
4505 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4506 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 7,}
4507 },
4508 {
4509 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4510 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4511 .name = "MultiMedia28 Output Channel9",
4512 .info = msm_pcm_channel_weight_info,
4513 .get = msm_pcm_channel_weight_get,
4514 .put = msm_pcm_channel_weight_put,
4515 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4516 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 8,}
4517 },
4518 {
4519 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4520 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4521 .name = "MultiMedia28 Output Channel10",
4522 .info = msm_pcm_channel_weight_info,
4523 .get = msm_pcm_channel_weight_get,
4524 .put = msm_pcm_channel_weight_put,
4525 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4526 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 9,}
4527 },
4528 {
4529 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4530 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4531 .name = "MultiMedia28 Output Channel11",
4532 .info = msm_pcm_channel_weight_info,
4533 .get = msm_pcm_channel_weight_get,
4534 .put = msm_pcm_channel_weight_put,
4535 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4536 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 10,}
4537 },
4538 {
4539 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4540 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4541 .name = "MultiMedia28 Output Channel12",
4542 .info = msm_pcm_channel_weight_info,
4543 .get = msm_pcm_channel_weight_get,
4544 .put = msm_pcm_channel_weight_put,
4545 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4546 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 11,}
4547 },
4548 {
4549 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4550 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4551 .name = "MultiMedia28 Output Channel13",
4552 .info = msm_pcm_channel_weight_info,
4553 .get = msm_pcm_channel_weight_get,
4554 .put = msm_pcm_channel_weight_put,
4555 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4556 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 12,}
4557 },
4558 {
4559 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4560 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4561 .name = "MultiMedia28 Output Channel14",
4562 .info = msm_pcm_channel_weight_info,
4563 .get = msm_pcm_channel_weight_get,
4564 .put = msm_pcm_channel_weight_put,
4565 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4566 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 13,}
4567 },
4568 {
4569 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4570 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4571 .name = "MultiMedia29 Output Channel1",
4572 .info = msm_pcm_channel_weight_info,
4573 .get = msm_pcm_channel_weight_get,
4574 .put = msm_pcm_channel_weight_put,
4575 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4576 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 0,}
4577 },
4578 {
4579 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4580 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4581 .name = "MultiMedia29 Output Channel2",
4582 .info = msm_pcm_channel_weight_info,
4583 .get = msm_pcm_channel_weight_get,
4584 .put = msm_pcm_channel_weight_put,
4585 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4586 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 1, }
4587 },
4588 {
4589 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4590 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4591 .name = "MultiMedia29 Output Channel3",
4592 .info = msm_pcm_channel_weight_info,
4593 .get = msm_pcm_channel_weight_get,
4594 .put = msm_pcm_channel_weight_put,
4595 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4596 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 2,}
4597 },
4598 {
4599 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4600 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4601 .name = "MultiMedia29 Output Channel4",
4602 .info = msm_pcm_channel_weight_info,
4603 .get = msm_pcm_channel_weight_get,
4604 .put = msm_pcm_channel_weight_put,
4605 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4606 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 3,}
4607 },
4608 {
4609 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4610 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4611 .name = "MultiMedia29 Output Channel5",
4612 .info = msm_pcm_channel_weight_info,
4613 .get = msm_pcm_channel_weight_get,
4614 .put = msm_pcm_channel_weight_put,
4615 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4616 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 4,}
4617 },
4618 {
4619 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4620 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4621 .name = "MultiMedia29 Output Channel6",
4622 .info = msm_pcm_channel_weight_info,
4623 .get = msm_pcm_channel_weight_get,
4624 .put = msm_pcm_channel_weight_put,
4625 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4626 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 5,}
4627 },
4628 {
4629 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4630 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4631 .name = "MultiMedia29 Output Channel7",
4632 .info = msm_pcm_channel_weight_info,
4633 .get = msm_pcm_channel_weight_get,
4634 .put = msm_pcm_channel_weight_put,
4635 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4636 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 6,}
4637 },
4638 {
4639 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4640 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4641 .name = "MultiMedia29 Output Channel8",
4642 .info = msm_pcm_channel_weight_info,
4643 .get = msm_pcm_channel_weight_get,
4644 .put = msm_pcm_channel_weight_put,
4645 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4646 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 7,}
4647 },
4648 {
4649 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4650 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4651 .name = "MultiMedia29 Output Channel9",
4652 .info = msm_pcm_channel_weight_info,
4653 .get = msm_pcm_channel_weight_get,
4654 .put = msm_pcm_channel_weight_put,
4655 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4656 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 8,}
4657 },
4658 {
4659 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4660 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4661 .name = "MultiMedia29 Output Channel10",
4662 .info = msm_pcm_channel_weight_info,
4663 .get = msm_pcm_channel_weight_get,
4664 .put = msm_pcm_channel_weight_put,
4665 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4666 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 9,}
4667 },
4668 {
4669 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4670 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4671 .name = "MultiMedia29 Output Channel11",
4672 .info = msm_pcm_channel_weight_info,
4673 .get = msm_pcm_channel_weight_get,
4674 .put = msm_pcm_channel_weight_put,
4675 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4676 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 10,}
4677 },
4678 {
4679 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4680 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4681 .name = "MultiMedia29 Output Channel12",
4682 .info = msm_pcm_channel_weight_info,
4683 .get = msm_pcm_channel_weight_get,
4684 .put = msm_pcm_channel_weight_put,
4685 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4686 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 11,}
4687 },
4688 {
4689 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4690 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4691 .name = "MultiMedia29 Output Channel13",
4692 .info = msm_pcm_channel_weight_info,
4693 .get = msm_pcm_channel_weight_get,
4694 .put = msm_pcm_channel_weight_put,
4695 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4696 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 12,}
4697 },
4698 {
4699 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4700 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4701 .name = "MultiMedia29 Output Channel14",
4702 .info = msm_pcm_channel_weight_info,
4703 .get = msm_pcm_channel_weight_get,
4704 .put = msm_pcm_channel_weight_put,
4705 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4706 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 13,}
4707 },
4708 {
4709 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4710 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05304711 .name = "MultiMedia30 Output Channel1",
4712 .info = msm_pcm_channel_weight_info,
4713 .get = msm_pcm_channel_weight_get,
4714 .put = msm_pcm_channel_weight_put,
4715 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4716 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 0,}
4717 },
4718 {
4719 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4720 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4721 .name = "MultiMedia30 Output Channel2",
4722 .info = msm_pcm_channel_weight_info,
4723 .get = msm_pcm_channel_weight_get,
4724 .put = msm_pcm_channel_weight_put,
4725 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4726 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 1, }
4727 },
4728 {
4729 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4730 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4731 .name = "MultiMedia30 Output Channel3",
4732 .info = msm_pcm_channel_weight_info,
4733 .get = msm_pcm_channel_weight_get,
4734 .put = msm_pcm_channel_weight_put,
4735 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4736 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 2,}
4737 },
4738 {
4739 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4740 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4741 .name = "MultiMedia30 Output Channel4",
4742 .info = msm_pcm_channel_weight_info,
4743 .get = msm_pcm_channel_weight_get,
4744 .put = msm_pcm_channel_weight_put,
4745 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4746 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 3,}
4747 },
4748 {
4749 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4750 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4751 .name = "MultiMedia30 Output Channel5",
4752 .info = msm_pcm_channel_weight_info,
4753 .get = msm_pcm_channel_weight_get,
4754 .put = msm_pcm_channel_weight_put,
4755 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4756 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 4,}
4757 },
4758 {
4759 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4760 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4761 .name = "MultiMedia30 Output Channel6",
4762 .info = msm_pcm_channel_weight_info,
4763 .get = msm_pcm_channel_weight_get,
4764 .put = msm_pcm_channel_weight_put,
4765 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4766 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 5,}
4767 },
4768 {
4769 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4770 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4771 .name = "MultiMedia30 Output Channel7",
4772 .info = msm_pcm_channel_weight_info,
4773 .get = msm_pcm_channel_weight_get,
4774 .put = msm_pcm_channel_weight_put,
4775 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4776 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 6,}
4777 },
4778 {
4779 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4780 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4781 .name = "MultiMedia30 Output Channel8",
4782 .info = msm_pcm_channel_weight_info,
4783 .get = msm_pcm_channel_weight_get,
4784 .put = msm_pcm_channel_weight_put,
4785 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4786 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 7,}
4787 },
4788 {
4789 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4790 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4791 .name = "MultiMedia30 Output Channel9",
4792 .info = msm_pcm_channel_weight_info,
4793 .get = msm_pcm_channel_weight_get,
4794 .put = msm_pcm_channel_weight_put,
4795 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4796 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 8,}
4797 },
4798 {
4799 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4800 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4801 .name = "MultiMedia30 Output Channel10",
4802 .info = msm_pcm_channel_weight_info,
4803 .get = msm_pcm_channel_weight_get,
4804 .put = msm_pcm_channel_weight_put,
4805 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4806 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 9,}
4807 },
4808 {
4809 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4810 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4811 .name = "MultiMedia30 Output Channel11",
4812 .info = msm_pcm_channel_weight_info,
4813 .get = msm_pcm_channel_weight_get,
4814 .put = msm_pcm_channel_weight_put,
4815 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4816 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 10,}
4817 },
4818 {
4819 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4820 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4821 .name = "MultiMedia30 Output Channel12",
4822 .info = msm_pcm_channel_weight_info,
4823 .get = msm_pcm_channel_weight_get,
4824 .put = msm_pcm_channel_weight_put,
4825 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4826 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 11,}
4827 },
4828 {
4829 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4830 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4831 .name = "MultiMedia30 Output Channel13",
4832 .info = msm_pcm_channel_weight_info,
4833 .get = msm_pcm_channel_weight_get,
4834 .put = msm_pcm_channel_weight_put,
4835 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4836 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 12,}
4837 },
4838 {
4839 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4840 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4841 .name = "MultiMedia30 Output Channel14",
4842 .info = msm_pcm_channel_weight_info,
4843 .get = msm_pcm_channel_weight_get,
4844 .put = msm_pcm_channel_weight_put,
4845 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4846 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 13,}
4847 },
4848 {
4849 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4850 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304851 .name = "MultiMedia1 Channel1",
4852 .info = msm_pcm_channel_input_be_info,
4853 .get = msm_pcm_channel_input_be_get,
4854 .put = msm_pcm_channel_input_be_put,
4855 .private_value = (unsigned long)&(mm1_ch1_enum)
4856 },
4857 {
4858 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4859 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4860 .name = "MultiMedia1 Channel2",
4861 .info = msm_pcm_channel_input_be_info,
4862 .get = msm_pcm_channel_input_be_get,
4863 .put = msm_pcm_channel_input_be_put,
4864 .private_value = (unsigned long)&(mm1_ch2_enum)
4865 },
4866 {
4867 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4868 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4869 .name = "MultiMedia1 Channel3",
4870 .info = msm_pcm_channel_input_be_info,
4871 .get = msm_pcm_channel_input_be_get,
4872 .put = msm_pcm_channel_input_be_put,
4873 .private_value = (unsigned long)&(mm1_ch3_enum)
4874 },
4875 {
4876 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4877 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4878 .name = "MultiMedia1 Channel4",
4879 .info = msm_pcm_channel_input_be_info,
4880 .get = msm_pcm_channel_input_be_get,
4881 .put = msm_pcm_channel_input_be_put,
4882 .private_value = (unsigned long)&(mm1_ch4_enum)
4883 },
4884 {
4885 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4886 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4887 .name = "MultiMedia1 Channel5",
4888 .info = msm_pcm_channel_input_be_info,
4889 .get = msm_pcm_channel_input_be_get,
4890 .put = msm_pcm_channel_input_be_put,
4891 .private_value = (unsigned long)&(mm1_ch5_enum)
4892 },
4893 {
4894 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4895 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4896 .name = "MultiMedia1 Channel6",
4897 .info = msm_pcm_channel_input_be_info,
4898 .get = msm_pcm_channel_input_be_get,
4899 .put = msm_pcm_channel_input_be_put,
4900 .private_value = (unsigned long)&(mm1_ch6_enum)
4901 },
4902 {
4903 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4904 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4905 .name = "MultiMedia1 Channel7",
4906 .info = msm_pcm_channel_input_be_info,
4907 .get = msm_pcm_channel_input_be_get,
4908 .put = msm_pcm_channel_input_be_put,
4909 .private_value = (unsigned long)&(mm1_ch7_enum)
4910 },
4911 {
4912 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4913 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4914 .name = "MultiMedia1 Channel8",
4915 .info = msm_pcm_channel_input_be_info,
4916 .get = msm_pcm_channel_input_be_get,
4917 .put = msm_pcm_channel_input_be_put,
4918 .private_value = (unsigned long)&(mm1_ch8_enum)
4919 },
Chaithanya Krishna Bacharajue48fb2b2019-05-08 13:02:08 +05304920 {
4921 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4922 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05304923 .name = "MultiMedia18 Channel1",
4924 .info = msm_pcm_channel_input_be_info,
4925 .get = msm_pcm_channel_input_be_get,
4926 .put = msm_pcm_channel_input_be_put,
4927 .private_value = (unsigned long)&(mm18_ch1_enum)
4928 },
4929 {
4930 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4931 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4932 .name = "MultiMedia18 Channel2",
4933 .info = msm_pcm_channel_input_be_info,
4934 .get = msm_pcm_channel_input_be_get,
4935 .put = msm_pcm_channel_input_be_put,
4936 .private_value = (unsigned long)&(mm18_ch2_enum)
4937 },
4938 {
4939 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4940 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4941 .name = "MultiMedia19 Channel1",
4942 .info = msm_pcm_channel_input_be_info,
4943 .get = msm_pcm_channel_input_be_get,
4944 .put = msm_pcm_channel_input_be_put,
4945 .private_value = (unsigned long)&(mm19_ch1_enum)
4946 },
4947 {
4948 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4949 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4950 .name = "MultiMedia19 Channel2",
4951 .info = msm_pcm_channel_input_be_info,
4952 .get = msm_pcm_channel_input_be_get,
4953 .put = msm_pcm_channel_input_be_put,
4954 .private_value = (unsigned long)&(mm19_ch2_enum)
4955 },
4956 {
4957 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4958 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4959 .name = "MultiMedia28 Channel1",
4960 .info = msm_pcm_channel_input_be_info,
4961 .get = msm_pcm_channel_input_be_get,
4962 .put = msm_pcm_channel_input_be_put,
4963 .private_value = (unsigned long)&(mm28_ch1_enum)
4964 },
4965 {
4966 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4967 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4968 .name = "MultiMedia28 Channel2",
4969 .info = msm_pcm_channel_input_be_info,
4970 .get = msm_pcm_channel_input_be_get,
4971 .put = msm_pcm_channel_input_be_put,
4972 .private_value = (unsigned long)&(mm28_ch2_enum)
4973 },
4974 {
4975 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4976 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4977 .name = "MultiMedia29 Channel1",
4978 .info = msm_pcm_channel_input_be_info,
4979 .get = msm_pcm_channel_input_be_get,
4980 .put = msm_pcm_channel_input_be_put,
4981 .private_value = (unsigned long)&(mm29_ch1_enum)
4982 },
4983 {
4984 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4985 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4986 .name = "MultiMedia29 Channel2",
4987 .info = msm_pcm_channel_input_be_info,
4988 .get = msm_pcm_channel_input_be_get,
4989 .put = msm_pcm_channel_input_be_put,
4990 .private_value = (unsigned long)&(mm29_ch2_enum)
4991 },
4992 {
4993 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4994 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05304995 .name = "MultiMedia30 Channel1",
4996 .info = msm_pcm_channel_input_be_info,
4997 .get = msm_pcm_channel_input_be_get,
4998 .put = msm_pcm_channel_input_be_put,
4999 .private_value = (unsigned long)&(mm30_ch1_enum)
5000 },
5001 {
5002 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5003 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5004 .name = "MultiMedia30 Channel2",
5005 .info = msm_pcm_channel_input_be_info,
5006 .get = msm_pcm_channel_input_be_get,
5007 .put = msm_pcm_channel_input_be_put,
5008 .private_value = (unsigned long)&(mm30_ch2_enum)
5009 },
5010 {
5011 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5012 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharajue48fb2b2019-05-08 13:02:08 +05305013 .name = "MultiMedia1 Output Channel Map",
5014 .info = msm_pcm_channel_output_map_info,
5015 .get = msm_pcm_channel_output_map_get,
5016 .put = msm_pcm_channel_output_map_put,
5017 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5018 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1,}
5019 },
5020 {
5021 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5022 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5023 .name = "MultiMedia2 Output Channel Map",
5024 .info = msm_pcm_channel_output_map_info,
5025 .get = msm_pcm_channel_output_map_get,
5026 .put = msm_pcm_channel_output_map_put,
5027 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5028 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA2,}
5029 },
5030 {
5031 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5032 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5033 .name = "MultiMedia3 Output Channel Map",
5034 .info = msm_pcm_channel_output_map_info,
5035 .get = msm_pcm_channel_output_map_get,
5036 .put = msm_pcm_channel_output_map_put,
5037 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5038 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA3,}
5039 },
5040 {
5041 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5042 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5043 .name = "MultiMedia4 Output Channel Map",
5044 .info = msm_pcm_channel_output_map_info,
5045 .get = msm_pcm_channel_output_map_get,
5046 .put = msm_pcm_channel_output_map_put,
5047 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5048 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA4,}
5049 },
5050 {
5051 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5052 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5053 .name = "MultiMedia5 Output Channel Map",
5054 .info = msm_pcm_channel_output_map_info,
5055 .get = msm_pcm_channel_output_map_get,
5056 .put = msm_pcm_channel_output_map_put,
5057 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5058 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA5,}
5059 },
5060 {
5061 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5062 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5063 .name = "MultiMedia6 Output Channel Map",
5064 .info = msm_pcm_channel_output_map_info,
5065 .get = msm_pcm_channel_output_map_get,
5066 .put = msm_pcm_channel_output_map_put,
5067 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5068 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA6,}
5069 },
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05305070 {
5071 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5072 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5073 .name = "MultiMedia18 Output Channel Map",
5074 .info = msm_pcm_channel_output_map_info,
5075 .get = msm_pcm_channel_output_map_get,
5076 .put = msm_pcm_channel_output_map_put,
5077 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5078 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18,}
5079 },
5080 {
5081 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5082 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5083 .name = "MultiMedia19 Output Channel Map",
5084 .info = msm_pcm_channel_output_map_info,
5085 .get = msm_pcm_channel_output_map_get,
5086 .put = msm_pcm_channel_output_map_put,
5087 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5088 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19,}
5089 },
5090 {
5091 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5092 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5093 .name = "MultiMedia28 Output Channel Map",
5094 .info = msm_pcm_channel_output_map_info,
5095 .get = msm_pcm_channel_output_map_get,
5096 .put = msm_pcm_channel_output_map_put,
5097 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5098 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28,}
5099 },
5100 {
5101 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5102 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5103 .name = "MultiMedia29 Output Channel Map",
5104 .info = msm_pcm_channel_output_map_info,
5105 .get = msm_pcm_channel_output_map_get,
5106 .put = msm_pcm_channel_output_map_put,
5107 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5108 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29,}
5109 },
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05305110 {
5111 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5112 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5113 .name = "MultiMedia30 Output Channel Map",
5114 .info = msm_pcm_channel_output_map_info,
5115 .get = msm_pcm_channel_output_map_get,
5116 .put = msm_pcm_channel_output_map_put,
5117 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5118 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30,}
5119 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305120};
Chaithanya Krishna Bacharajue48fb2b2019-05-08 13:02:08 +05305121
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305122static int msm_ec_ref_ch_get(struct snd_kcontrol *kcontrol,
5123 struct snd_ctl_elem_value *ucontrol)
5124{
5125 ucontrol->value.integer.value[0] = msm_ec_ref_ch;
5126 pr_debug("%s: msm_ec_ref_ch = %ld\n", __func__,
5127 ucontrol->value.integer.value[0]);
5128 return 0;
5129}
5130
5131static int msm_ec_ref_ch_put(struct snd_kcontrol *kcontrol,
5132 struct snd_ctl_elem_value *ucontrol)
5133{
5134 msm_ec_ref_ch = ucontrol->value.integer.value[0];
5135 pr_debug("%s: msm_ec_ref_ch = %d\n", __func__, msm_ec_ref_ch);
5136 adm_num_ec_ref_rx_chans(msm_ec_ref_ch);
5137 return 0;
5138}
5139
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05305140static int msm_ec_ref_ch_downmixed_get(struct snd_kcontrol *kcontrol,
5141 struct snd_ctl_elem_value *ucontrol)
5142{
5143 ucontrol->value.integer.value[0] = msm_ec_ref_ch_downmixed;
5144 pr_debug("%s: msm_ec_ref_downmixed_ch = %ld\n", __func__,
5145 ucontrol->value.integer.value[0]);
5146 return 0;
5147}
5148
5149static int msm_ec_ref_ch_downmixed_put(struct snd_kcontrol *kcontrol,
5150 struct snd_ctl_elem_value *ucontrol)
5151{
5152 msm_ec_ref_ch_downmixed = ucontrol->value.integer.value[0];
5153 pr_debug("%s: msm_ec_ref_downmixed_ch = %d\n",
5154 __func__, msm_ec_ref_ch_downmixed);
5155 adm_num_ec_ref_rx_chans_downmixed(msm_ec_ref_ch_downmixed);
5156 return 0;
5157}
5158
5159static int msm_ec_ref_chmixer_weights_put(struct snd_kcontrol *kcontrol,
5160 struct snd_ctl_elem_value *ucontrol)
5161{
5162 int i = 0, ret = 0;
5163 uint16_t weights[PCM_FORMAT_MAX_NUM_CHANNEL_V8] = {0};
5164 int out_channel_idx = ((struct soc_multi_mixer_control *)
5165 kcontrol->private_value)->shift;
5166
5167 for (; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; i++)
5168 weights[i] = ucontrol->value.integer.value[i];
5169
5170 ret = adm_ec_ref_chmixer_weights(out_channel_idx,
5171 weights, PCM_FORMAT_MAX_NUM_CHANNEL_V8);
5172 pr_debug("%s: ch_index = %d, ret = %d\n", __func__, out_channel_idx, ret);
5173 return ret;
5174}
5175
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305176static const char *const ec_ref_ch_text[] = {"Zero", "One", "Two", "Three",
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05305177 "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven",
5178 "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305179
5180static int msm_ec_ref_bit_format_get(struct snd_kcontrol *kcontrol,
5181 struct snd_ctl_elem_value *ucontrol)
5182{
5183 switch (msm_ec_ref_bit_format) {
5184 case SNDRV_PCM_FORMAT_S24_LE:
5185 ucontrol->value.integer.value[0] = 2;
5186 break;
5187 case SNDRV_PCM_FORMAT_S16_LE:
5188 ucontrol->value.integer.value[0] = 1;
5189 break;
5190 default:
5191 ucontrol->value.integer.value[0] = 0;
5192 break;
5193 }
5194 pr_debug("%s: msm_ec_ref_bit_format = %ld\n",
5195 __func__, ucontrol->value.integer.value[0]);
5196 return 0;
5197}
5198
5199static int msm_ec_ref_bit_format_put(struct snd_kcontrol *kcontrol,
5200 struct snd_ctl_elem_value *ucontrol)
5201{
5202 u16 bit_width = 0;
5203
5204 switch (ucontrol->value.integer.value[0]) {
5205 case 2:
5206 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S24_LE;
5207 break;
5208 case 1:
5209 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
5210 break;
5211 default:
5212 msm_ec_ref_bit_format = 0;
5213 break;
5214 }
5215
5216 if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S16_LE)
5217 bit_width = 16;
5218 else if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S24_LE)
5219 bit_width = 24;
5220
5221 pr_debug("%s: msm_ec_ref_bit_format = %d\n",
5222 __func__, msm_ec_ref_bit_format);
5223 adm_ec_ref_rx_bit_width(bit_width);
5224 return 0;
5225}
5226
5227static char const *ec_ref_bit_format_text[] = {"0", "S16_LE", "S24_LE"};
5228
5229static int msm_ec_ref_rate_get(struct snd_kcontrol *kcontrol,
5230 struct snd_ctl_elem_value *ucontrol)
5231{
5232 ucontrol->value.integer.value[0] = msm_ec_ref_sampling_rate;
5233 pr_debug("%s: msm_ec_ref_sampling_rate = %ld\n",
5234 __func__, ucontrol->value.integer.value[0]);
5235 return 0;
5236}
5237
5238static int msm_ec_ref_rate_put(struct snd_kcontrol *kcontrol,
5239 struct snd_ctl_elem_value *ucontrol)
5240{
5241 switch (ucontrol->value.integer.value[0]) {
5242 case 0:
5243 msm_ec_ref_sampling_rate = 0;
5244 break;
5245 case 1:
5246 msm_ec_ref_sampling_rate = 8000;
5247 break;
5248 case 2:
5249 msm_ec_ref_sampling_rate = 16000;
5250 break;
5251 case 3:
5252 msm_ec_ref_sampling_rate = 32000;
5253 break;
5254 case 4:
5255 msm_ec_ref_sampling_rate = 44100;
5256 break;
5257 case 5:
5258 msm_ec_ref_sampling_rate = 48000;
5259 break;
5260 case 6:
5261 msm_ec_ref_sampling_rate = 96000;
5262 break;
5263 case 7:
5264 msm_ec_ref_sampling_rate = 192000;
5265 break;
5266 case 8:
5267 msm_ec_ref_sampling_rate = 384000;
5268 break;
5269 default:
5270 msm_ec_ref_sampling_rate = 48000;
5271 break;
5272 }
5273 pr_debug("%s: msm_ec_ref_sampling_rate = %d\n",
5274 __func__, msm_ec_ref_sampling_rate);
5275 adm_ec_ref_rx_sampling_rate(msm_ec_ref_sampling_rate);
5276 return 0;
5277}
5278
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05305279static int get_ec_ref_port_id(int value, int *index)
5280{
5281 int port_id;
5282
5283 switch (value) {
5284 case 0:
5285 *index = 0;
5286 port_id = AFE_PORT_INVALID;
5287 break;
5288 case 1:
5289 *index = 1;
5290 port_id = SLIMBUS_0_RX;
5291 break;
5292 case 2:
5293 *index = 2;
5294 port_id = AFE_PORT_ID_PRIMARY_MI2S_RX;
5295 break;
5296 case 3:
5297 *index = 3;
5298 port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
5299 break;
5300 case 4:
5301 *index = 4;
5302 port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
5303 break;
5304 case 5:
5305 *index = 5;
5306 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
5307 break;
5308 case 6:
5309 *index = 6;
5310 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
5311 break;
5312 case 7:
5313 *index = 7;
5314 port_id = AFE_PORT_ID_SECONDARY_MI2S_RX;
5315 break;
5316 case 9:
5317 *index = 9;
5318 port_id = SLIMBUS_5_RX;
5319 break;
5320 case 10:
5321 *index = 10;
5322 port_id = SLIMBUS_1_TX;
5323 break;
5324 case 11:
5325 *index = 11;
5326 port_id = AFE_PORT_ID_QUATERNARY_TDM_TX_1;
5327 break;
5328 case 12:
5329 *index = 12;
5330 port_id = AFE_PORT_ID_QUATERNARY_TDM_RX;
5331 break;
5332 case 13:
5333 *index = 13;
5334 port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_1;
5335 break;
5336 case 14:
5337 *index = 14;
5338 port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_2;
5339 break;
5340 case 15:
5341 *index = 15;
5342 port_id = SLIMBUS_6_RX;
5343 break;
5344 case 16:
5345 *index = 16;
5346 port_id = AFE_PORT_ID_TERTIARY_MI2S_RX;
5347 break;
5348 case 17:
5349 *index = 17;
5350 port_id = AFE_PORT_ID_QUATERNARY_MI2S_RX;
5351 break;
5352 case 18:
5353 *index = 18;
5354 port_id = AFE_PORT_ID_TERTIARY_TDM_TX;
5355 break;
5356 case 19:
5357 *index = 19;
5358 port_id = AFE_PORT_ID_USB_RX;
5359 break;
5360 case 20:
5361 *index = 20;
5362 port_id = AFE_PORT_ID_INT0_MI2S_RX;
5363 break;
5364 case 21:
5365 *index = 21;
5366 port_id = AFE_PORT_ID_INT4_MI2S_RX;
5367 break;
5368 case 22:
5369 *index = 22;
5370 port_id = AFE_PORT_ID_INT3_MI2S_TX;
5371 break;
5372 case 23:
5373 *index = 23;
5374 port_id = AFE_PORT_ID_HDMI_OVER_DP_RX;
5375 break;
5376 case 24:
5377 *index = 24;
5378 port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_0;
5379 break;
5380 case 25:
5381 *index = 25;
5382 port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_1;
5383 break;
5384 case 26:
5385 *index = 26;
5386 port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_0;
5387 break;
5388 case 27:
5389 *index = 27;
5390 port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_1;
5391 break;
5392 case 28:
5393 *index = 28;
5394 port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_2;
5395 break;
5396 case 29:
5397 *index = 29;
5398 port_id = SLIMBUS_7_RX;
5399 break;
5400 case 30:
5401 *index = 30;
5402 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_0;
5403 break;
5404 case 31:
5405 *index = 31;
5406 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_1;
5407 break;
5408 case 32:
5409 *index = 32;
5410 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_2;
5411 break;
5412 case 33:
5413 *index = 33;
5414 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_3;
5415 break;
5416 case 34:
5417 *index = 34;
5418 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_0;
5419 break;
5420 case 35:
5421 *index = 35;
5422 port_id = AFE_PORT_ID_TERTIARY_TDM_RX_2;
5423 break;
5424 case 36:
5425 *index = 36;
5426 port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
5427 break;
Vignesh Kulothungan757b7542019-08-19 15:14:37 -07005428 case 37:
5429 *index = 37;
5430 port_id = AFE_PORT_ID_HDMI_OVER_DP_RX;
5431 break;
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05305432 default:
5433 *index = 0; /* NONE */
5434 pr_err("%s: Invalid value %d\n", __func__, value);
5435 port_id = AFE_PORT_INVALID;
5436 break;
5437 }
5438
5439 return port_id;
5440}
5441
5442static int msm_routing_afe_lb_tx_port_get(struct snd_kcontrol *kcontrol,
5443 struct snd_ctl_elem_value *ucontrol)
5444{
5445 pr_debug("%s: port index = %d", __func__, afe_loopback_tx_port_index);
5446 mutex_lock(&routing_lock);
5447 ucontrol->value.integer.value[0] = afe_loopback_tx_port_index;
5448 mutex_unlock(&routing_lock);
5449
5450 return 0;
5451}
5452
5453static int msm_routing_afe_lb_tx_port_put(struct snd_kcontrol *kcontrol,
5454 struct snd_ctl_elem_value *ucontrol)
5455{
5456 int value = ucontrol->value.integer.value[0];
5457
5458 mutex_lock(&routing_lock);
5459 afe_loopback_tx_port_id = get_ec_ref_port_id(value,
5460 &afe_loopback_tx_port_index);
5461 pr_debug("%s: afe_loopback_tx_port_index = %d\n",
5462 __func__, afe_loopback_tx_port_index);
5463 mutex_unlock(&routing_lock);
5464
5465 return 0;
5466}
5467
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305468static const char *const ec_ref_rate_text[] = {"0", "8000", "16000",
5469 "32000", "44100", "48000", "96000", "192000", "384000"};
5470
5471static const struct soc_enum msm_route_ec_ref_params_enum[] = {
Vignesh Kulothungan757b7542019-08-19 15:14:37 -07005472 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_ch_text), ec_ref_ch_text),
5473 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_bit_format_text),
5474 ec_ref_bit_format_text),
5475 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rate_text), ec_ref_rate_text),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305476};
5477
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305478static const char *const ec_ref_rx[] = { "None", "SLIM_RX", "I2S_RX",
5479 "PRI_MI2S_TX", "SEC_MI2S_TX",
5480 "TERT_MI2S_TX", "QUAT_MI2S_TX", "SEC_I2S_RX", "PROXY_RX",
5481 "SLIM_5_RX", "SLIM_1_TX", "QUAT_TDM_TX_1",
5482 "QUAT_TDM_RX_0", "QUAT_TDM_RX_1", "QUAT_TDM_RX_2", "SLIM_6_RX",
5483 "TERT_MI2S_RX", "QUAT_MI2S_RX", "TERT_TDM_TX_0", "USB_AUDIO_RX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305484 "INT0_MI2S_RX", "INT4_MI2S_RX", "INT3_MI2S_TX", "DISPLAY_PORT",
5485 "WSA_CDC_DMA_RX_0", "WSA_CDC_DMA_RX_1",
Zhou Songb167db12018-07-02 17:14:00 +08005486 "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_2",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05305487 "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 -07005488 "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_0", "TERT_TDM_RX_2", "SEC_TDM_TX_0",
Vignesh Kulothungan757b7542019-08-19 15:14:37 -07005489 "DISPLAY_PORT1",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305490};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305491
5492static const struct soc_enum msm_route_ec_ref_rx_enum[] = {
5493 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rx), ec_ref_rx),
5494};
5495
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05305496static const struct snd_kcontrol_new ec_ref_param_controls[] = {
5497 SOC_ENUM_EXT("EC Reference Channels", msm_route_ec_ref_params_enum[0],
5498 msm_ec_ref_ch_get, msm_ec_ref_ch_put),
5499 SOC_ENUM_EXT("EC Reference Bit Format", msm_route_ec_ref_params_enum[1],
5500 msm_ec_ref_bit_format_get, msm_ec_ref_bit_format_put),
5501 SOC_ENUM_EXT("EC Reference SampleRate", msm_route_ec_ref_params_enum[2],
5502 msm_ec_ref_rate_get, msm_ec_ref_rate_put),
5503 SOC_ENUM_EXT("EC Reference Downmixed Channels",
5504 msm_route_ec_ref_params_enum[0],
5505 msm_ec_ref_ch_downmixed_get, msm_ec_ref_ch_downmixed_put),
5506 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch1", SND_SOC_NOPM,
5507 0, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5508 msm_ec_ref_chmixer_weights_put),
5509 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch2", SND_SOC_NOPM,
5510 1, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5511 msm_ec_ref_chmixer_weights_put),
5512 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch3", SND_SOC_NOPM,
5513 2, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5514 msm_ec_ref_chmixer_weights_put),
5515 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch4", SND_SOC_NOPM,
5516 3, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5517 msm_ec_ref_chmixer_weights_put),
5518 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch5", SND_SOC_NOPM,
5519 4, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5520 msm_ec_ref_chmixer_weights_put),
5521 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch6", SND_SOC_NOPM,
5522 5, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5523 msm_ec_ref_chmixer_weights_put),
5524 SOC_ENUM_EXT("AFE_LOOPBACK_TX Port", msm_route_ec_ref_rx_enum[0],
5525 msm_routing_afe_lb_tx_port_get, msm_routing_afe_lb_tx_port_put),
5526};
5527
5528static int msm_routing_ec_ref_rx_get(struct snd_kcontrol *kcontrol,
5529 struct snd_ctl_elem_value *ucontrol)
5530{
5531 pr_debug("%s: ec_ref_rx = %d", __func__, msm_route_ec_ref_rx);
5532 mutex_lock(&routing_lock);
5533 ucontrol->value.integer.value[0] = msm_route_ec_ref_rx;
5534 mutex_unlock(&routing_lock);
5535
5536 return 0;
5537}
5538
5539static int msm_routing_ec_ref_rx_put(struct snd_kcontrol *kcontrol,
5540 struct snd_ctl_elem_value *ucontrol)
5541{
5542 int value = ucontrol->value.integer.value[0];
5543 struct snd_soc_dapm_widget *widget =
5544 snd_soc_dapm_kcontrol_widget(kcontrol);
5545 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
5546 struct snd_soc_dapm_update *update = NULL;
5547
5548 mutex_lock(&routing_lock);
5549 msm_ec_ref_port_id = get_ec_ref_port_id(value, &msm_route_ec_ref_rx);
5550 adm_ec_ref_rx_id(msm_ec_ref_port_id);
5551 pr_debug("%s: msm_route_ec_ref_rx = %d\n",
5552 __func__, msm_route_ec_ref_rx);
5553 mutex_unlock(&routing_lock);
5554
5555 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol,
5556 msm_route_ec_ref_rx, e, update);
5557 return 0;
5558}
5559
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305560static const struct snd_kcontrol_new ext_ec_ref_mux_ul1 =
5561 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL1 MUX Mux",
5562 msm_route_ec_ref_rx_enum[0],
5563 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5564
5565static const struct snd_kcontrol_new ext_ec_ref_mux_ul2 =
5566 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL2 MUX Mux",
5567 msm_route_ec_ref_rx_enum[0],
5568 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5569
5570static const struct snd_kcontrol_new ext_ec_ref_mux_ul3 =
5571 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL3 MUX Mux",
5572 msm_route_ec_ref_rx_enum[0],
5573 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5574
5575static const struct snd_kcontrol_new ext_ec_ref_mux_ul4 =
5576 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL4 MUX Mux",
5577 msm_route_ec_ref_rx_enum[0],
5578 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5579
5580static const struct snd_kcontrol_new ext_ec_ref_mux_ul5 =
5581 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL5 MUX Mux",
5582 msm_route_ec_ref_rx_enum[0],
5583 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5584
5585static const struct snd_kcontrol_new ext_ec_ref_mux_ul6 =
5586 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL6 MUX Mux",
5587 msm_route_ec_ref_rx_enum[0],
5588 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5589
5590static const struct snd_kcontrol_new ext_ec_ref_mux_ul8 =
5591 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL8 MUX Mux",
5592 msm_route_ec_ref_rx_enum[0],
5593 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5594
5595static const struct snd_kcontrol_new ext_ec_ref_mux_ul9 =
5596 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL9 MUX Mux",
5597 msm_route_ec_ref_rx_enum[0],
5598 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5599
Asish Bhattacharya34504582017-08-08 12:55:01 +05305600static const struct snd_kcontrol_new ext_ec_ref_mux_ul16 =
5601 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL16 MUX Mux",
5602 msm_route_ec_ref_rx_enum[0],
5603 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5604
Laxminath Kasam38070be2017-08-17 18:21:59 +05305605static const struct snd_kcontrol_new ext_ec_ref_mux_ul10 =
5606 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL10 MUX Mux",
5607 msm_route_ec_ref_rx_enum[0],
5608 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5609
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305610static const struct snd_kcontrol_new ext_ec_ref_mux_ul17 =
5611 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL17 MUX Mux",
5612 msm_route_ec_ref_rx_enum[0],
5613 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5614
5615static const struct snd_kcontrol_new ext_ec_ref_mux_ul18 =
5616 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL18 MUX Mux",
5617 msm_route_ec_ref_rx_enum[0],
5618 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5619
5620static const struct snd_kcontrol_new ext_ec_ref_mux_ul19 =
5621 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL19 MUX Mux",
5622 msm_route_ec_ref_rx_enum[0],
5623 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5624
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305625static const struct snd_kcontrol_new ext_ec_ref_mux_ul28 =
5626 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL28 MUX Mux",
5627 msm_route_ec_ref_rx_enum[0],
5628 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5629
5630static const struct snd_kcontrol_new ext_ec_ref_mux_ul29 =
5631 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL29 MUX Mux",
5632 msm_route_ec_ref_rx_enum[0],
5633 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5634
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305635static int msm_routing_ext_ec_get(struct snd_kcontrol *kcontrol,
5636 struct snd_ctl_elem_value *ucontrol)
5637{
5638 pr_debug("%s: ext_ec_ref_rx = %x\n", __func__, msm_route_ext_ec_ref);
5639
5640 mutex_lock(&routing_lock);
5641 ucontrol->value.integer.value[0] = msm_route_ext_ec_ref;
5642 mutex_unlock(&routing_lock);
5643 return 0;
5644}
5645
5646static int msm_routing_ext_ec_put(struct snd_kcontrol *kcontrol,
5647 struct snd_ctl_elem_value *ucontrol)
5648{
Asish Bhattacharya34504582017-08-08 12:55:01 +05305649 struct snd_soc_dapm_widget *widget =
5650 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305651 int mux = ucontrol->value.enumerated.item[0];
5652 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
5653 int ret = 1;
5654 bool state = true;
5655 uint16_t ext_ec_ref_port_id;
5656 struct snd_soc_dapm_update *update = NULL;
5657
5658 if (mux >= e->items) {
5659 pr_err("%s: Invalid mux value %d\n", __func__, mux);
5660 return -EINVAL;
5661 }
5662
5663 mutex_lock(&routing_lock);
5664 msm_route_ext_ec_ref = ucontrol->value.integer.value[0];
5665
5666 switch (msm_route_ext_ec_ref) {
5667 case EXT_EC_REF_PRI_MI2S_TX:
5668 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
5669 break;
5670 case EXT_EC_REF_SEC_MI2S_TX:
5671 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
5672 break;
5673 case EXT_EC_REF_TERT_MI2S_TX:
5674 ext_ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
5675 break;
5676 case EXT_EC_REF_QUAT_MI2S_TX:
5677 ext_ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
5678 break;
5679 case EXT_EC_REF_QUIN_MI2S_TX:
5680 ext_ec_ref_port_id = AFE_PORT_ID_QUINARY_MI2S_TX;
5681 break;
5682 case EXT_EC_REF_SLIM_1_TX:
5683 ext_ec_ref_port_id = SLIMBUS_1_TX;
5684 break;
Karthikeyan Mani925413e2019-09-10 16:57:28 -07005685 case EXT_EC_REF_PRI_TDM_TX:
5686 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_TDM_TX;
5687 break;
Karthikeyan Manibfba0542018-06-20 15:20:28 -07005688 case EXT_EC_REF_SEC_TDM_TX:
5689 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
5690 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305691 case EXT_EC_REF_NONE:
5692 default:
5693 ext_ec_ref_port_id = AFE_PORT_INVALID;
5694 state = false;
5695 break;
5696 }
5697
5698 pr_debug("%s: val = %d ext_ec_ref_port_id = 0x%0x state = %d\n",
5699 __func__, msm_route_ext_ec_ref, ext_ec_ref_port_id, state);
5700
5701 if (!voc_set_ext_ec_ref_port_id(ext_ec_ref_port_id, state)) {
5702 mutex_unlock(&routing_lock);
5703 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol, mux, e,
5704 update);
5705 } else {
5706 ret = -EINVAL;
5707 mutex_unlock(&routing_lock);
5708 }
5709 return ret;
5710}
5711
5712static const char * const ext_ec_ref_rx[] = {"NONE", "PRI_MI2S_TX",
5713 "SEC_MI2S_TX", "TERT_MI2S_TX",
5714 "QUAT_MI2S_TX", "QUIN_MI2S_TX",
Karthikeyan Mani925413e2019-09-10 16:57:28 -07005715 "SLIM_1_TX", "PRI_TDM_TX",
5716 "SEC_TDM_TX"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305717
5718static const struct soc_enum msm_route_ext_ec_ref_rx_enum[] = {
5719 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ext_ec_ref_rx), ext_ec_ref_rx),
5720};
5721
5722static const struct snd_kcontrol_new voc_ext_ec_mux =
5723 SOC_DAPM_ENUM_EXT("VOC_EXT_EC MUX Mux", msm_route_ext_ec_ref_rx_enum[0],
5724 msm_routing_ext_ec_get, msm_routing_ext_ec_put);
5725
5726
5727static const struct snd_kcontrol_new pri_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005728 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5729 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305730 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5731 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005732 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5733 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305734 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5735 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005736 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5737 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305738 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5739 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005740 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5741 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305742 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5743 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005744 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5745 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305746 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5747 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005748 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5749 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305750 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5751 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005752 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5753 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305754 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5755 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005756 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5757 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305758 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5759 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005760 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5761 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305762 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5763 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005764 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5765 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305766 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5767 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005768 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5769 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305770 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5771 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005772 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5773 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305774 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5775 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005776 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5777 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305778 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005780 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5781 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305782 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005784 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5785 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305786 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005788 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5789 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305790 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005792 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5793 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305794 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5795 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005796 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5797 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305798 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5799 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005800 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5801 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305802 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5803 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305804 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5805 MSM_BACKEND_DAI_PRI_I2S_RX,
5806 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005808 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5809 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305810 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005812 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5813 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305814 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5815 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05305816 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
5817 MSM_BACKEND_DAI_PRI_I2S_RX,
5818 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
5819 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305820};
5821
5822static const struct snd_kcontrol_new sec_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005823 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5824 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305825 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005827 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5828 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305829 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005831 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5832 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305833 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5834 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005835 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5836 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305837 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005839 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5840 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305841 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005843 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5844 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305845 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005847 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5848 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305849 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005851 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5852 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305853 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005855 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5856 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305857 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005859 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5860 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305861 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005863 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5864 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305865 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5866 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005867 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5868 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305869 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005871 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5872 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305873 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005875 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5876 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305877 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005879 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5880 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305881 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005883 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5884 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305885 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005887 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5888 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305889 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5890 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005891 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5892 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305893 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005895 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5896 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305897 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5898 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305899 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5900 MSM_BACKEND_DAI_SEC_I2S_RX,
5901 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5902 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005903 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5904 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305905 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5906 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005907 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5908 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305909 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5910 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05305911 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
5912 MSM_BACKEND_DAI_SEC_I2S_RX,
5913 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
5914 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305915};
5916
Ralf Herzc8701f72018-06-20 11:37:35 +02005917static const struct snd_kcontrol_new pri_spdif_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005918 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005919 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305920 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5921 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005922 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005923 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305924 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5925 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005926 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005927 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305928 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005930 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005931 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305932 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5933 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005934 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005935 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305936 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5937 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005938 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005939 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305940 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5941 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005942 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005943 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305944 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005946 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005947 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305948 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005950 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005951 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305952 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005954 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005955 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305956 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5957 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005958 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005959 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305960 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005962 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005963 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305964 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005966 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005967 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305968 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005970 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005971 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305972 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005974 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005975 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305976 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005978 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005979 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305980 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005982 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005983 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305984 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5985 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005986 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005987 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305988 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005990 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005991 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305992 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5993 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305994 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5995 MSM_BACKEND_DAI_PRI_SPDIF_RX,
5996 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5997 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005998 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005999 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306000 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6001 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006002 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02006003 MSM_BACKEND_DAI_PRI_SPDIF_RX,
6004 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6005 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306006 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6007 MSM_BACKEND_DAI_PRI_SPDIF_RX,
6008 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6009 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02006010};
6011
6012static const struct snd_kcontrol_new sec_spdif_rx_mixer_controls[] = {
6013 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6014 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6015 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6016 msm_routing_put_audio_mixer),
6017 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6018 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6019 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6020 msm_routing_put_audio_mixer),
6021 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6022 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6023 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6024 msm_routing_put_audio_mixer),
6025 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6026 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6027 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6028 msm_routing_put_audio_mixer),
6029 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6030 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6031 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6032 msm_routing_put_audio_mixer),
6033 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6034 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6035 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6036 msm_routing_put_audio_mixer),
6037 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6038 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6039 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6040 msm_routing_put_audio_mixer),
6041 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6042 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6043 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6044 msm_routing_put_audio_mixer),
6045 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6046 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6047 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6048 msm_routing_put_audio_mixer),
6049 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6050 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6051 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6052 msm_routing_put_audio_mixer),
6053 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6054 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6055 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6056 msm_routing_put_audio_mixer),
6057 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6058 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6059 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6060 msm_routing_put_audio_mixer),
6061 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6062 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6063 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6064 msm_routing_put_audio_mixer),
6065 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6066 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6067 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6068 msm_routing_put_audio_mixer),
6069 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6070 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6071 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6072 msm_routing_put_audio_mixer),
6073 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6074 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6075 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6076 msm_routing_put_audio_mixer),
6077 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6078 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6079 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6080 msm_routing_put_audio_mixer),
6081 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6082 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6083 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6084 msm_routing_put_audio_mixer),
6085 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6086 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6087 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6088 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306089 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6090 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6091 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6092 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02006093 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6094 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6095 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6096 msm_routing_put_audio_mixer),
6097 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6098 MSM_BACKEND_DAI_SEC_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306099 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6100 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306101 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6102 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6103 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6104 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306105};
6106
6107static const struct snd_kcontrol_new slimbus_2_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006108 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6109 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306110 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006112 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6113 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306114 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006116 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6117 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306118 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6119 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006120 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6121 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306122 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6123 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006124 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6125 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306126 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6127 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006128 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6129 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306130 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6131 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006132 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6133 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306134 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6135 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006136 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6137 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306138 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6139 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006140 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6141 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306142 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6143 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006144 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6145 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306146 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6147 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006148 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6149 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306150 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6151 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006152 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6153 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306154 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6155 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006156 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6157 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306158 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6159 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006160 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6161 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306162 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006164 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6165 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306166 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6167 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006168 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6169 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306170 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6171 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306172 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6173 MSM_BACKEND_DAI_SLIMBUS_2_RX,
6174 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6175 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306176};
6177
6178static const struct snd_kcontrol_new slimbus_5_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006179 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6180 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306181 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006183 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6184 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306185 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006187 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6188 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306189 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006191 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6192 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306193 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006195 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6196 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306197 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006199 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6200 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306201 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6202 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006203 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6204 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306205 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006207 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6208 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306209 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6210 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006211 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6212 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306213 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6214 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006215 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6216 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306217 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6218 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006219 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6220 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306221 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006223 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6224 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306225 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006227 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6228 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306229 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006231 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6232 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306233 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006235 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6236 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306237 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006239 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6240 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306241 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006243 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6244 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306245 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006247 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6248 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306249 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6250 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006251 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6252 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306253 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6254 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306255 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6256 MSM_BACKEND_DAI_SLIMBUS_5_RX,
6257 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6258 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006259 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6260 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306261 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006263 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6264 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306265 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6266 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306267 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6268 MSM_BACKEND_DAI_SLIMBUS_5_RX,
6269 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6270 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306271};
6272
6273static const struct snd_kcontrol_new slimbus_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006274 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6275 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306276 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6277 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006278 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6279 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306280 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6281 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006282 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6283 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306284 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006286 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6287 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306288 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6289 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006290 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6291 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306292 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006294 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6295 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306296 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006298 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6299 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306300 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006302 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6303 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306304 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006306 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6307 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306308 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006310 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6311 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306312 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006314 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6315 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306316 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006318 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6319 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306320 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006322 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6323 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306324 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006326 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6327 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306328 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006330 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6331 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306332 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006334 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6335 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306336 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006338 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6339 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306340 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006342 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6343 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306344 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006346 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6347 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306348 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6349 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306350 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6351 MSM_BACKEND_DAI_SLIMBUS_0_RX,
6352 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006354 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6355 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306356 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006358 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6359 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306360 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6361 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306362 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6363 MSM_BACKEND_DAI_SLIMBUS_0_RX,
6364 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6365 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306366};
6367
6368static const struct snd_kcontrol_new mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006369 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6370 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306371 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006373 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6374 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306375 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006377 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6378 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306379 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006381 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6382 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306383 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006385 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6386 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306387 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006389 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6390 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306391 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006393 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6394 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306395 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006397 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6398 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306399 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006401 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6402 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306403 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006405 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6406 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306407 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006409 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6410 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306411 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6412 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006413 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6414 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306415 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6416 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006417 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6418 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306419 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6420 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006421 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6422 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306423 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6424 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006425 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6426 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306427 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6428 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006429 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6430 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306431 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6432 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006433 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6434 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306435 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6436 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006437 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6438 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306439 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6440 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006441 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6442 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306443 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6444 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306445 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6446 MSM_BACKEND_DAI_MI2S_RX,
6447 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6448 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006449 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6450 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306451 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6452 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006453 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6454 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306455 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6456 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306457 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6458 MSM_BACKEND_DAI_MI2S_RX,
6459 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6460 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306461};
6462
6463static const struct snd_kcontrol_new quaternary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006464 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6465 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306466 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006468 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6469 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306470 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006472 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6473 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306474 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6475 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006476 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6477 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306478 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006480 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6481 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306482 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6483 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006484 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6485 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306486 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6487 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006488 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6489 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306490 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6491 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006492 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6493 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306494 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006496 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6497 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306498 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6499 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006500 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6501 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306502 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6503 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006504 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6505 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306506 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6507 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006508 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6509 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306510 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6511 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006512 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6513 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306514 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6515 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006516 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6517 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306518 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6519 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006520 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6521 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306522 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6523 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006524 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6525 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306526 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6527 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006528 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6529 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306530 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6531 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006532 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6533 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306534 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6535 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006536 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6537 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306538 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6539 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306540 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6541 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
6542 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006544 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6545 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306546 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006548 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6549 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306550 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6551 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306552 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6553 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
6554 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6555 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306556};
6557
6558static const struct snd_kcontrol_new quinary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006559 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6560 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306561 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006563 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6564 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306565 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006567 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6568 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306569 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006571 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6572 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306573 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006575 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6576 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306577 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006579 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6580 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306581 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006583 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6584 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306585 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006587 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6588 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306589 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006591 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6592 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306593 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006595 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6596 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306597 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006599 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6600 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306601 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6602 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006603 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6604 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306605 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006607 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6608 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306609 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006611 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6612 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306613 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006615 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6616 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306617 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006619 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6620 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306621 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6622 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006623 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6624 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306625 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006627 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6628 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306629 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6630 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006631 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6632 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306633 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6634 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306635 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6636 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
6637 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006639 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6640 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306641 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006643 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6644 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306645 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6646 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306647 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6648 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
6649 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6650 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306651
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306652};
6653
Karthikeyan Manic3700752019-03-11 18:33:53 -07006654static const struct snd_kcontrol_new senary_mi2s_rx_mixer_controls[] = {
6655 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6656 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6657 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6658 msm_routing_put_audio_mixer),
6659 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6660 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6661 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6662 msm_routing_put_audio_mixer),
6663 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6664 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6665 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6666 msm_routing_put_audio_mixer),
6667 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6668 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6669 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6670 msm_routing_put_audio_mixer),
6671 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6672 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6673 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6674 msm_routing_put_audio_mixer),
6675 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6676 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6677 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6678 msm_routing_put_audio_mixer),
6679 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6680 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6681 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6682 msm_routing_put_audio_mixer),
6683 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6684 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6685 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6686 msm_routing_put_audio_mixer),
6687 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6688 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6689 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6690 msm_routing_put_audio_mixer),
6691 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6692 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6693 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6694 msm_routing_put_audio_mixer),
6695 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6696 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6697 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6698 msm_routing_put_audio_mixer),
6699 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6700 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6701 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6702 msm_routing_put_audio_mixer),
6703 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6704 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6705 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6706 msm_routing_put_audio_mixer),
6707 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6708 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6709 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6710 msm_routing_put_audio_mixer),
6711 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6712 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6713 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6714 msm_routing_put_audio_mixer),
6715 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6716 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6717 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6718 msm_routing_put_audio_mixer),
6719 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6720 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6721 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6722 msm_routing_put_audio_mixer),
6723 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6724 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6725 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6726 msm_routing_put_audio_mixer),
6727 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6728 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6729 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6730 msm_routing_put_audio_mixer),
6731 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6732 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6733 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6734 msm_routing_put_audio_mixer),
6735 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6736 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6737 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6738 msm_routing_put_audio_mixer),
6739 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6740 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6741 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6742 msm_routing_put_audio_mixer),
6743
6744};
6745
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306746static const struct snd_kcontrol_new tertiary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006747 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6748 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306749 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6750 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006751 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6752 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306753 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6754 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006755 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6756 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306757 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6758 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006759 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6760 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306761 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6762 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006763 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6764 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306765 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6766 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006767 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6768 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306769 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6770 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006771 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6772 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306773 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006775 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6776 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306777 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006779 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6780 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306781 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006783 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6784 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306785 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006787 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6788 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306789 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006791 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6792 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306793 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006795 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6796 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306797 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006799 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6800 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306801 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006803 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6804 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306805 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006807 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6808 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306809 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006811 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6812 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306813 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6814 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306815 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6816 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
6817 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006819 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6820 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306821 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006823 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6824 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306825 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6826 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306827 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6828 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
6829 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6830 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306831};
6832
6833static const struct snd_kcontrol_new secondary_mi2s_rx2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006834 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6835 MSM_BACKEND_DAI_SECONDARY_MI2S_RX_SD1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306836 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6837 msm_routing_put_audio_mixer),
6838};
6839
6840static const struct snd_kcontrol_new secondary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006841 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6842 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306843 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006845 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6846 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306847 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006849 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6850 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306851 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006853 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6854 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306855 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006857 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6858 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306859 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006861 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6862 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306863 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006865 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6866 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306867 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6868 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006869 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6870 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306871 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006873 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6874 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306875 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006877 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6878 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306879 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006881 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6882 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306883 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6884 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006885 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6886 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306887 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6888 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006889 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6890 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306891 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6892 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006893 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6894 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306895 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6896 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006897 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6898 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306899 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6900 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006901 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6902 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306903 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6904 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006905 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6906 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306907 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6908 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006909 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6910 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306911 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6912 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006913 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6914 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306915 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6916 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306917 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6918 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
6919 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006921 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6922 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306923 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6924 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006925 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6926 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306927 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6928 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306929 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6930 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
6931 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6932 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306933};
6934
6935static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006936 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6937 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306938 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006940 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6941 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306942 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006944 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6945 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306946 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6947 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006948 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6949 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306950 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6951 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006952 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6953 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306954 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006956 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6957 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306958 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006960 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6961 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306962 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6963 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006964 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6965 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306966 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6967 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006968 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6969 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306970 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6971 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006972 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6973 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306974 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006976 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6977 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306978 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006980 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6981 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306982 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006984 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6985 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306986 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006988 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6989 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306990 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006992 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6993 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306994 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006996 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6997 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306998 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007000 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7001 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307002 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007004 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7005 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307006 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007008 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7009 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307010 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7011 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307012 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7013 MSM_BACKEND_DAI_PRI_MI2S_RX,
7014 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007016 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7017 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307018 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007020 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7021 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307022 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7023 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05307024 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
7025 MSM_BACKEND_DAI_PRI_MI2S_RX,
7026 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
7027 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307028
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307029};
7030
7031static const struct snd_kcontrol_new int0_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007032 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7033 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307034 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007036 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7037 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307038 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007040 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7041 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307042 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7043 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007044 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7045 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307046 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7047 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007048 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7049 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307050 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007052 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7053 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307054 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007056 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7057 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307058 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007060 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7061 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307062 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007064 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7065 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307066 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007068 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7069 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307070 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007072 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7073 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307074 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7075 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007076 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7077 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307078 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007080 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7081 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307082 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007084 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7085 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307086 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007088 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7089 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307090 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007092 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7093 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307094 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7095 msm_routing_put_audio_mixer),
7096};
7097
7098static const struct snd_kcontrol_new int4_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007099 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7100 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307101 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007103 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7104 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307105 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007107 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7108 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307109 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7110 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007111 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7112 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307113 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7114 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007115 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7116 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307117 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7118 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007119 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7120 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307121 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7122 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007123 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7124 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307125 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7126 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007127 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7128 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307129 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007131 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7132 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307133 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007135 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7136 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307137 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007139 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7140 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307141 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007143 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7144 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307145 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007147 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7148 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307149 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007151 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7152 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307153 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007155 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7156 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307157 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007159 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7160 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307161 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7162 msm_routing_put_audio_mixer),
7163};
7164
Ralf Herz29e07132019-07-26 15:15:21 +02007165static const struct snd_kcontrol_new pri_meta_mi2s_rx_mixer_controls[] = {
7166 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7167 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7168 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7169 msm_routing_put_audio_mixer),
7170 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7171 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7172 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7173 msm_routing_put_audio_mixer),
7174 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7175 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7176 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7177 msm_routing_put_audio_mixer),
7178 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7179 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7180 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7181 msm_routing_put_audio_mixer),
7182 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7183 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7184 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7185 msm_routing_put_audio_mixer),
7186 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7187 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7188 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7189 msm_routing_put_audio_mixer),
7190 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7191 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7192 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7193 msm_routing_put_audio_mixer),
7194 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7195 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7196 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7197 msm_routing_put_audio_mixer),
7198 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7199 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7200 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7201 msm_routing_put_audio_mixer),
7202 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7203 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7204 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7205 msm_routing_put_audio_mixer),
7206 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7207 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7208 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7209 msm_routing_put_audio_mixer),
7210 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7211 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7212 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7213 msm_routing_put_audio_mixer),
7214 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7215 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7216 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7217 msm_routing_put_audio_mixer),
7218 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7219 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7220 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7221 msm_routing_put_audio_mixer),
7222 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7223 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7224 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7225 msm_routing_put_audio_mixer),
7226 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7227 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7228 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7229 msm_routing_put_audio_mixer),
7230 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7231 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7232 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7233 msm_routing_put_audio_mixer),
7234 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7235 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7236 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7237 msm_routing_put_audio_mixer),
7238 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7239 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7240 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7241 msm_routing_put_audio_mixer),
7242 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7243 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7244 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7245 msm_routing_put_audio_mixer),
7246 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7247 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7248 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7249 msm_routing_put_audio_mixer),
7250 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7251 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7252 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7253 msm_routing_put_audio_mixer),
7254
7255};
7256
7257static const struct snd_kcontrol_new sec_meta_mi2s_rx_mixer_controls[] = {
7258 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7259 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7260 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7261 msm_routing_put_audio_mixer),
7262 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7263 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7264 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7265 msm_routing_put_audio_mixer),
7266 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7267 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7268 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7269 msm_routing_put_audio_mixer),
7270 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7271 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7272 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7273 msm_routing_put_audio_mixer),
7274 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7275 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7276 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7277 msm_routing_put_audio_mixer),
7278 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7279 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7280 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7281 msm_routing_put_audio_mixer),
7282 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7283 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7284 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7285 msm_routing_put_audio_mixer),
7286 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7287 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7288 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7289 msm_routing_put_audio_mixer),
7290 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7291 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7292 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7293 msm_routing_put_audio_mixer),
7294 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7295 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7296 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7297 msm_routing_put_audio_mixer),
7298 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7299 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7300 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7301 msm_routing_put_audio_mixer),
7302 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7303 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7304 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7305 msm_routing_put_audio_mixer),
7306 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7307 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7308 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7309 msm_routing_put_audio_mixer),
7310 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7311 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7312 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7313 msm_routing_put_audio_mixer),
7314 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7315 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7316 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7317 msm_routing_put_audio_mixer),
7318 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7319 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7320 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7321 msm_routing_put_audio_mixer),
7322 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7323 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7324 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7325 msm_routing_put_audio_mixer),
7326 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7327 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7328 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7329 msm_routing_put_audio_mixer),
7330 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7331 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7332 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7333 msm_routing_put_audio_mixer),
7334 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7335 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7336 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7337 msm_routing_put_audio_mixer),
7338 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7339 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7340 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7341 msm_routing_put_audio_mixer),
7342 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7343 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7344 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7345 msm_routing_put_audio_mixer),
7346};
7347
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307348static const struct snd_kcontrol_new hdmi_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007349 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7350 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307351 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007353 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7354 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307355 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007357 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7358 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307359 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007361 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7362 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307363 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007365 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7366 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307367 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007369 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7370 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307371 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007373 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7374 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307375 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007377 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7378 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307379 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007381 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7382 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307383 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007385 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7386 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307387 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007389 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7390 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307391 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007393 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7394 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307395 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007397 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7398 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307399 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007401 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7402 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307403 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007405 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7406 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307407 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007409 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7410 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307411 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7412 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007413 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7414 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307415 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7416 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007417 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7418 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307419 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7420 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007421 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7422 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307423 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7424 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307425 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7426 MSM_BACKEND_DAI_HDMI_RX,
7427 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7428 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007429 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7430 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307431 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7432 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007433 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7434 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307435 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7436 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05307437 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
7438 MSM_BACKEND_DAI_HDMI_RX,
7439 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
7440 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307441};
7442
7443static const struct snd_kcontrol_new display_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007444 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7445 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307446 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007448 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7449 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307450 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007452 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7453 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307454 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007456 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7457 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307458 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7459 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007460 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7461 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307462 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7463 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007464 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7465 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307466 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007468 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7469 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307470 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007472 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7473 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307474 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7475 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007476 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7477 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307478 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007480 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7481 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307482 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7483 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007484 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7485 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307486 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7487 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007488 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7489 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307490 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7491 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007492 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7493 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307494 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007496 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7497 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307498 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7499 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007500 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7501 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307502 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7503 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007504 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7505 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307506 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7507 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307508 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7509 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
7510 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7511 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307512};
7513
Karthikeyan Mani57550082018-05-03 18:43:58 -07007514static const struct snd_kcontrol_new display_port1_mixer_controls[] = {
7515 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7516 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7517 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7518 msm_routing_put_audio_mixer),
7519 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7520 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7521 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7522 msm_routing_put_audio_mixer),
7523 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7524 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7525 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7526 msm_routing_put_audio_mixer),
7527 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7528 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7529 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7530 msm_routing_put_audio_mixer),
7531 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7532 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7533 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7534 msm_routing_put_audio_mixer),
7535 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7536 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7537 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7538 msm_routing_put_audio_mixer),
7539 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7540 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7541 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7542 msm_routing_put_audio_mixer),
7543 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7544 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7545 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7546 msm_routing_put_audio_mixer),
7547 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7548 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7549 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7550 msm_routing_put_audio_mixer),
7551 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7552 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7553 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7554 msm_routing_put_audio_mixer),
7555 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7556 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7557 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7558 msm_routing_put_audio_mixer),
7559 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7560 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7561 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7562 msm_routing_put_audio_mixer),
7563 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7564 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7565 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7566 msm_routing_put_audio_mixer),
7567 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7568 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7569 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7570 msm_routing_put_audio_mixer),
7571 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7572 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7573 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7574 msm_routing_put_audio_mixer),
7575 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7576 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7577 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7578 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307579 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7580 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7581 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7582 msm_routing_put_audio_mixer),
Karthikeyan Mani57550082018-05-03 18:43:58 -07007583};
7584
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307585 /* incall music delivery mixer */
7586static const struct snd_kcontrol_new incall_music_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007587 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7588 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307589 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007591 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7592 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307593 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007595 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7596 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307597 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007599 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7600 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307601 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7602 msm_routing_put_audio_mixer),
7603};
7604
7605static const struct snd_kcontrol_new incall_music2_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007606 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7607 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307608 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007610 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7611 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307612 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7613 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007614 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7615 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307616 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7617 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007618 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7619 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307620 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7621 msm_routing_put_audio_mixer),
7622};
7623
7624static const struct snd_kcontrol_new slimbus_4_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007625 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7626 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307627 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7628 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007629 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7630 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307631 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007633 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7634 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307635 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007637 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7638 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307639 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7640 msm_routing_put_audio_mixer),
7641};
7642
7643static const struct snd_kcontrol_new slimbus_6_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007644 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7645 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307646 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7647 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007648 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7649 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307650 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7651 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007652 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7653 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307654 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7655 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007656 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7657 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307658 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7659 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007660 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7661 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307662 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7663 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007664 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7665 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307666 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7667 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007668 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7669 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307670 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7671 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007672 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7673 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307674 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7675 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007676 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7677 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307678 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7679 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007680 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7681 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307682 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7683 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007684 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7685 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307686 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7687 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007688 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7689 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307690 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7691 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007692 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7693 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307694 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7695 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007696 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7697 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307698 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7699 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007700 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7701 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307702 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7703 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007704 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7705 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307706 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7707 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307708 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7709 MSM_BACKEND_DAI_SLIMBUS_6_RX,
7710 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7711 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307712};
7713
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05307714static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_mixer_controls[] = {
7715 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7716 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7717 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7718 msm_routing_put_audio_mixer),
7719 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7720 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7721 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7722 msm_routing_put_audio_mixer),
7723 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7724 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7725 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7726 msm_routing_put_audio_mixer),
7727 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7728 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7729 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7730 msm_routing_put_audio_mixer),
7731 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7732 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7733 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7734 msm_routing_put_audio_mixer),
7735 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7736 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7737 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7738 msm_routing_put_audio_mixer),
7739 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7740 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7741 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7742 msm_routing_put_audio_mixer),
7743 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7744 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7745 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7746 msm_routing_put_audio_mixer),
7747 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7748 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7749 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7750 msm_routing_put_audio_mixer),
7751 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7752 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7753 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7754 msm_routing_put_audio_mixer),
7755 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7756 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7757 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7758 msm_routing_put_audio_mixer),
7759 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7760 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7761 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7762 msm_routing_put_audio_mixer),
7763 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7764 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7765 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7766 msm_routing_put_audio_mixer),
7767 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7768 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7769 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7770 msm_routing_put_audio_mixer),
7771 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7772 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7773 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7774 msm_routing_put_audio_mixer),
7775 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7776 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7777 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7778 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307779 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7780 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7781 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7782 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05307783};
7784
7785static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_mixer_controls[] = {
7786 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7787 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7788 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7789 msm_routing_put_audio_mixer),
7790 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7791 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7792 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7793 msm_routing_put_audio_mixer),
7794 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7795 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7796 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7797 msm_routing_put_audio_mixer),
7798 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7799 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7800 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7801 msm_routing_put_audio_mixer),
7802 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7803 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7804 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7805 msm_routing_put_audio_mixer),
7806 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7807 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7808 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7809 msm_routing_put_audio_mixer),
7810 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7811 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7812 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7813 msm_routing_put_audio_mixer),
7814 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7815 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7816 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7817 msm_routing_put_audio_mixer),
7818 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7819 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7820 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7821 msm_routing_put_audio_mixer),
7822 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7823 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7824 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7825 msm_routing_put_audio_mixer),
7826 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7827 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7828 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7829 msm_routing_put_audio_mixer),
7830 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7831 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7832 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7833 msm_routing_put_audio_mixer),
7834 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7835 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7836 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7837 msm_routing_put_audio_mixer),
7838 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7839 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7840 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7841 msm_routing_put_audio_mixer),
7842 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7843 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7844 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7845 msm_routing_put_audio_mixer),
7846 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7847 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7848 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7849 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307850 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7851 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7852 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7853 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05307854};
7855
Aditya Bavanari1e84a932018-06-18 19:40:08 +05307856static const struct snd_kcontrol_new rx_cdc_dma_rx_0_mixer_controls[] = {
7857 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7858 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7859 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7860 msm_routing_put_audio_mixer),
7861 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7862 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7863 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7864 msm_routing_put_audio_mixer),
7865 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7866 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7867 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7868 msm_routing_put_audio_mixer),
7869 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7870 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7871 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7872 msm_routing_put_audio_mixer),
7873 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7874 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7875 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7876 msm_routing_put_audio_mixer),
7877 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7878 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7879 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7880 msm_routing_put_audio_mixer),
7881 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7882 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7883 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7884 msm_routing_put_audio_mixer),
7885 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7886 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7887 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7888 msm_routing_put_audio_mixer),
7889 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7890 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7891 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7892 msm_routing_put_audio_mixer),
7893 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7894 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7895 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7896 msm_routing_put_audio_mixer),
7897 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7898 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7899 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7900 msm_routing_put_audio_mixer),
7901 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7902 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7903 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7904 msm_routing_put_audio_mixer),
7905 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7906 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7907 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7908 msm_routing_put_audio_mixer),
7909 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7910 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7911 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7912 msm_routing_put_audio_mixer),
7913 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7914 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7915 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7916 msm_routing_put_audio_mixer),
7917 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7918 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7919 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7920 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307921 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7922 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7923 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7924 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05307925};
7926
7927static const struct snd_kcontrol_new rx_cdc_dma_rx_1_mixer_controls[] = {
7928 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7929 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7930 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7931 msm_routing_put_audio_mixer),
7932 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7933 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7934 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7935 msm_routing_put_audio_mixer),
7936 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7937 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7938 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7939 msm_routing_put_audio_mixer),
7940 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7941 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7942 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7943 msm_routing_put_audio_mixer),
7944 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7945 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7946 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7947 msm_routing_put_audio_mixer),
7948 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7949 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7950 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7951 msm_routing_put_audio_mixer),
7952 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7953 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7954 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7955 msm_routing_put_audio_mixer),
7956 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7957 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7958 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7959 msm_routing_put_audio_mixer),
7960 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7961 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7962 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7963 msm_routing_put_audio_mixer),
7964 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7965 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7966 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7967 msm_routing_put_audio_mixer),
7968 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7969 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7970 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7971 msm_routing_put_audio_mixer),
7972 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7973 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7974 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7975 msm_routing_put_audio_mixer),
7976 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7977 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7978 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7979 msm_routing_put_audio_mixer),
7980 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7981 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7982 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7983 msm_routing_put_audio_mixer),
7984 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7985 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7986 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7987 msm_routing_put_audio_mixer),
7988 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7989 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7990 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7991 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307992 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7993 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7994 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7995 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05307996};
7997
7998static const struct snd_kcontrol_new rx_cdc_dma_rx_2_mixer_controls[] = {
7999 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8000 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8001 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8002 msm_routing_put_audio_mixer),
8003 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8004 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8005 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8006 msm_routing_put_audio_mixer),
8007 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8008 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8009 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8010 msm_routing_put_audio_mixer),
8011 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8012 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8013 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8014 msm_routing_put_audio_mixer),
8015 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8016 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8017 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8018 msm_routing_put_audio_mixer),
8019 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8020 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8021 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8022 msm_routing_put_audio_mixer),
8023 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8024 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8025 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8026 msm_routing_put_audio_mixer),
8027 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8028 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8029 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8030 msm_routing_put_audio_mixer),
8031 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8032 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8033 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8034 msm_routing_put_audio_mixer),
8035 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8036 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8037 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8038 msm_routing_put_audio_mixer),
8039 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8040 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8041 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8042 msm_routing_put_audio_mixer),
8043 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8044 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8045 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8046 msm_routing_put_audio_mixer),
8047 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8048 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8049 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8050 msm_routing_put_audio_mixer),
8051 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8052 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8053 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8054 msm_routing_put_audio_mixer),
8055 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8056 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8057 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8058 msm_routing_put_audio_mixer),
8059 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8060 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8061 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8062 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308063 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8064 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8065 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8066 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308067};
8068
8069static const struct snd_kcontrol_new rx_cdc_dma_rx_3_mixer_controls[] = {
8070 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8071 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8072 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8073 msm_routing_put_audio_mixer),
8074 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8075 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8076 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8077 msm_routing_put_audio_mixer),
8078 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8079 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8080 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8081 msm_routing_put_audio_mixer),
8082 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8083 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8084 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8085 msm_routing_put_audio_mixer),
8086 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8087 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8088 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8089 msm_routing_put_audio_mixer),
8090 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8091 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8092 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8093 msm_routing_put_audio_mixer),
8094 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8095 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8096 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8097 msm_routing_put_audio_mixer),
8098 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8099 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8100 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8101 msm_routing_put_audio_mixer),
8102 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8103 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8104 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8105 msm_routing_put_audio_mixer),
8106 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8107 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8108 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8109 msm_routing_put_audio_mixer),
8110 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8111 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8112 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8113 msm_routing_put_audio_mixer),
8114 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8115 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8116 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8117 msm_routing_put_audio_mixer),
8118 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8119 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8120 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8121 msm_routing_put_audio_mixer),
8122 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8123 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8124 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8125 msm_routing_put_audio_mixer),
8126 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8127 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8128 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8129 msm_routing_put_audio_mixer),
8130 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8131 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8132 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8133 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308134 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8135 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8136 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8137 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308138};
8139
8140static const struct snd_kcontrol_new rx_cdc_dma_rx_4_mixer_controls[] = {
8141 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8142 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8143 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8144 msm_routing_put_audio_mixer),
8145 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8146 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8147 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8148 msm_routing_put_audio_mixer),
8149 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8150 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8151 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8152 msm_routing_put_audio_mixer),
8153 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8154 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8155 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8156 msm_routing_put_audio_mixer),
8157 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8158 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8159 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8160 msm_routing_put_audio_mixer),
8161 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8162 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8163 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8164 msm_routing_put_audio_mixer),
8165 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8166 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8167 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8168 msm_routing_put_audio_mixer),
8169 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8170 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8171 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8172 msm_routing_put_audio_mixer),
8173 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8174 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8175 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8176 msm_routing_put_audio_mixer),
8177 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8178 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8179 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8180 msm_routing_put_audio_mixer),
8181 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8182 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8183 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8184 msm_routing_put_audio_mixer),
8185 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8186 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8187 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8188 msm_routing_put_audio_mixer),
8189 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8190 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8191 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8192 msm_routing_put_audio_mixer),
8193 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8194 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8195 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8196 msm_routing_put_audio_mixer),
8197 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8198 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8199 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8200 msm_routing_put_audio_mixer),
8201 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8202 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8203 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8204 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308205 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8206 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8207 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8208 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308209};
8210
8211static const struct snd_kcontrol_new rx_cdc_dma_rx_5_mixer_controls[] = {
8212 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8213 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8214 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8215 msm_routing_put_audio_mixer),
8216 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8217 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8218 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8219 msm_routing_put_audio_mixer),
8220 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8221 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8222 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8223 msm_routing_put_audio_mixer),
8224 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8225 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8226 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8227 msm_routing_put_audio_mixer),
8228 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8229 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8230 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8231 msm_routing_put_audio_mixer),
8232 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8233 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8234 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8235 msm_routing_put_audio_mixer),
8236 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8237 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8238 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8239 msm_routing_put_audio_mixer),
8240 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8241 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8242 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8243 msm_routing_put_audio_mixer),
8244 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8245 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8246 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8247 msm_routing_put_audio_mixer),
8248 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8249 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8250 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8251 msm_routing_put_audio_mixer),
8252 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8253 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8254 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8255 msm_routing_put_audio_mixer),
8256 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8257 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8258 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8259 msm_routing_put_audio_mixer),
8260 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8261 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8262 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8263 msm_routing_put_audio_mixer),
8264 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8265 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8266 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8267 msm_routing_put_audio_mixer),
8268 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8269 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8270 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8271 msm_routing_put_audio_mixer),
8272 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8273 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8274 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8275 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308276 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8277 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8278 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8279 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308280};
8281
8282static const struct snd_kcontrol_new rx_cdc_dma_rx_6_mixer_controls[] = {
8283 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8284 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8285 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8286 msm_routing_put_audio_mixer),
8287 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8288 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8289 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8290 msm_routing_put_audio_mixer),
8291 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8292 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8293 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8294 msm_routing_put_audio_mixer),
8295 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8296 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8297 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8298 msm_routing_put_audio_mixer),
8299 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8300 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8301 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8302 msm_routing_put_audio_mixer),
8303 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8304 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8305 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8306 msm_routing_put_audio_mixer),
8307 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8308 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8309 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8310 msm_routing_put_audio_mixer),
8311 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8312 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8313 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8314 msm_routing_put_audio_mixer),
8315 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8316 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8317 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8318 msm_routing_put_audio_mixer),
8319 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8320 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8321 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8322 msm_routing_put_audio_mixer),
8323 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8324 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8325 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8326 msm_routing_put_audio_mixer),
8327 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8328 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8329 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8330 msm_routing_put_audio_mixer),
8331 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8332 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8333 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8334 msm_routing_put_audio_mixer),
8335 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8336 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8337 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8338 msm_routing_put_audio_mixer),
8339 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8340 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8341 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8342 msm_routing_put_audio_mixer),
8343 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8344 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8345 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8346 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308347 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8348 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8349 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8350 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308351};
8352
8353static const struct snd_kcontrol_new rx_cdc_dma_rx_7_mixer_controls[] = {
8354 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8355 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8356 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8357 msm_routing_put_audio_mixer),
8358 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8359 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8360 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8361 msm_routing_put_audio_mixer),
8362 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8363 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8364 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8365 msm_routing_put_audio_mixer),
8366 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8367 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8368 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8369 msm_routing_put_audio_mixer),
8370 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8371 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8372 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8373 msm_routing_put_audio_mixer),
8374 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8375 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8376 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8377 msm_routing_put_audio_mixer),
8378 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8379 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8380 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8381 msm_routing_put_audio_mixer),
8382 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8383 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8384 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8385 msm_routing_put_audio_mixer),
8386 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8387 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8388 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8389 msm_routing_put_audio_mixer),
8390 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8391 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8392 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8393 msm_routing_put_audio_mixer),
8394 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8395 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8396 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8397 msm_routing_put_audio_mixer),
8398 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8399 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8400 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8401 msm_routing_put_audio_mixer),
8402 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8403 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8404 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8405 msm_routing_put_audio_mixer),
8406 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8407 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8408 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8409 msm_routing_put_audio_mixer),
8410 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8411 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8412 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8413 msm_routing_put_audio_mixer),
8414 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8415 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8416 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8417 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308418 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8419 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8420 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8421 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308422};
8423
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308424static const struct snd_kcontrol_new slimbus_7_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008425 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8426 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308427 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8428 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008429 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8430 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308431 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8432 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008433 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8434 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308435 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8436 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008437 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8438 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308439 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8440 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008441 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8442 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308443 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8444 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008445 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8446 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308447 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8448 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008449 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8450 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308451 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8452 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008453 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8454 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308455 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8456 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008457 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8458 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308459 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8460 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008461 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8462 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308463 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8464 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008465 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8466 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308467 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8468 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008469 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8470 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308471 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008473 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8474 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308475 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008477 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8478 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308479 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008481 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8482 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308483 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008485 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8486 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308487 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8488 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308489 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8490 MSM_BACKEND_DAI_SLIMBUS_7_RX,
8491 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8492 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308493};
8494
Surendar Karka3ef3d812018-09-28 18:52:35 +05308495static const struct snd_kcontrol_new slimbus_9_rx_mixer_controls[] = {
8496 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8497 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8498 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8499 msm_routing_put_audio_mixer),
8500 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8501 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8502 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8503 msm_routing_put_audio_mixer),
8504 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8505 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8506 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8507 msm_routing_put_audio_mixer),
8508 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8509 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8510 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8511 msm_routing_put_audio_mixer),
8512 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8513 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8514 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8515 msm_routing_put_audio_mixer),
8516 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8517 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8518 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8519 msm_routing_put_audio_mixer),
8520 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8521 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8522 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8523 msm_routing_put_audio_mixer),
8524 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8525 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8526 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8527 msm_routing_put_audio_mixer),
8528 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8529 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8530 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8531 msm_routing_put_audio_mixer),
8532 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8533 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8534 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8535 msm_routing_put_audio_mixer),
8536 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8537 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8538 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8539 msm_routing_put_audio_mixer),
8540 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8541 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8542 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8543 msm_routing_put_audio_mixer),
8544 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8545 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8546 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8547 msm_routing_put_audio_mixer),
8548 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8549 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8550 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8551 msm_routing_put_audio_mixer),
8552 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8553 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8554 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8555 msm_routing_put_audio_mixer),
8556 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8557 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8558 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8559 msm_routing_put_audio_mixer),
8560 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8561 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8562 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8563 msm_routing_put_audio_mixer),
8564};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308565static const struct snd_kcontrol_new usb_audio_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008566 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8567 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308568 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008570 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8571 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308572 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008574 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8575 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308576 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008578 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8579 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308580 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008582 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8583 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308584 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008586 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8587 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308588 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8589 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008590 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8591 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308592 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008594 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8595 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308596 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008598 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8599 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308600 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008602 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8603 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308604 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8605 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008606 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8607 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308608 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008610 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8611 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308612 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8613 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008614 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8615 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308616 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8617 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008618 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8619 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308620 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008622 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8623 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308624 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008626 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8627 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308628 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8629 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308630 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8631 MSM_BACKEND_DAI_USB_RX,
8632 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8633 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308634};
8635
8636static const struct snd_kcontrol_new int_bt_sco_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008637 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8638 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308639 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008641 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8642 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308643 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008645 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8646 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308647 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008649 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8650 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308651 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008653 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8654 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308655 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008657 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8658 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308659 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008661 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8662 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308663 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8664 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008665 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8666 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308667 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8668 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008669 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8670 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308671 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008673 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8674 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308675 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008677 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8678 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308679 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008681 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8682 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308683 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008685 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8686 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308687 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008689 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8690 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308691 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008693 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8694 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308695 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008697 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8698 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308699 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008701 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
8702 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308703 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
8704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008705 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
8706 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308707 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
8708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008709 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
8710 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308711 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
8712 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308713 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8714 MSM_BACKEND_DAI_INT_BT_SCO_RX,
8715 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008717 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
8718 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308719 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
8720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008721 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
8722 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308723 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
8724 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05308725 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
8726 MSM_BACKEND_DAI_INT_BT_SCO_RX,
8727 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
8728 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308729};
8730
8731static const struct snd_kcontrol_new int_bt_a2dp_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008732 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8733 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308734 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8735 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008736 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8737 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308738 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8739 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008740 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8741 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308742 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8743 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008744 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8745 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308746 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8747 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008748 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8749 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308750 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8751 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008752 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8753 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308754 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8755 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008756 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8757 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308758 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8759 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008760 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8761 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308762 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8763 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008764 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8765 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308766 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8767 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008768 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8769 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308770 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8771 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008772 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8773 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308774 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8775 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008776 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8777 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308778 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008780 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8781 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308782 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008784 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8785 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308786 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008788 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8789 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308790 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008792 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8793 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308794 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8795 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308796 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8797 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
8798 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8799 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308800};
8801
8802static const struct snd_kcontrol_new int_fm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008803 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8804 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308805 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008807 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8808 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308809 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008811 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8812 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308813 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008815 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8816 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308817 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008819 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8820 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308821 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008823 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8824 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308825 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008827 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8828 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308829 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008831 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8832 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308833 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8834 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008835 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8836 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308837 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008839 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8840 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308841 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008843 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8844 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308845 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008847 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8848 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308849 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008851 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8852 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308853 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008855 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8856 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308857 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008859 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8860 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308861 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008863 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8864 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308865 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8866 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008867 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
8868 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308869 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
8870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008871 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
8872 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308873 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
8874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008875 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
8876 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308877 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
8878 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308879 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8880 MSM_BACKEND_DAI_INT_FM_RX,
8881 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008883 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
8884 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308885 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
8886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008887 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
8888 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308889 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
8890 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05308891 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
8892 MSM_BACKEND_DAI_INT_FM_RX,
8893 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
8894 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308895};
8896
8897static const struct snd_kcontrol_new afe_pcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008898 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8899 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308900 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008902 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8903 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308904 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8905 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008906 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8907 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308908 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8909 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008910 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8911 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308912 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8913 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008914 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8915 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308916 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8917 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008918 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8919 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308920 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8921 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008922 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8923 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308924 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8925 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008926 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8927 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308928 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008930 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8931 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308932 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8933 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008934 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8935 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308936 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8937 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008938 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8939 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308940 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8941 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008942 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8943 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308944 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008946 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8947 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308948 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008950 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8951 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308952 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008954 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8955 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308956 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8957 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008958 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8959 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308960 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008962 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
8963 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308964 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
8965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008966 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
8967 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308968 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
8969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008970 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
8971 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308972 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
8973 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308974 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8975 MSM_BACKEND_DAI_AFE_PCM_RX,
8976 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008978 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
8979 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308980 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
8981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008982 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
8983 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308984 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
8985 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05308986 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
8987 MSM_BACKEND_DAI_AFE_PCM_RX,
8988 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
8989 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308990};
8991
8992static const struct snd_kcontrol_new auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008993 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8994 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308995 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008997 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8998 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308999 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009001 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9002 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309003 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9004 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009005 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9006 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309007 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009009 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9010 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309011 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009013 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9014 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309015 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009017 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9018 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309019 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009021 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9022 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309023 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009025 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9026 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309027 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9028 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009029 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9030 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309031 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9032 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009033 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9034 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309035 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9036 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009037 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9038 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309039 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9040 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009041 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9042 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309043 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9044 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009045 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9046 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309047 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9048 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009049 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9050 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309051 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9052 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009053 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9054 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309055 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9056 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009057 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
9058 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309059 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9060 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009061 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
9062 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309063 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9064 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009065 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
9066 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309067 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9068 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009069 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9070 MSM_BACKEND_DAI_AUXPCM_RX,
9071 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9072 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309073 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9074 MSM_BACKEND_DAI_AUXPCM_RX,
9075 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9076 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009077 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
9078 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05309079 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009081 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
9082 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05309083 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9084 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05309085 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
9086 MSM_BACKEND_DAI_AUXPCM_RX,
9087 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
9088 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309089};
9090
9091static const struct snd_kcontrol_new sec_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009092 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9093 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309094 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009096 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9097 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309098 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009100 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9101 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309102 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009104 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9105 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309106 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009108 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9109 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309110 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009112 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9113 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309114 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009116 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9117 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309118 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9119 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009120 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9121 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309122 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9123 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009124 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9125 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309126 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9127 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009128 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9129 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309130 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9131 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009132 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9133 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309134 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9135 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009136 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9137 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309138 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9139 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009140 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9141 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309142 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9143 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009144 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9145 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309146 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9147 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009148 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9149 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309150 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9151 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009152 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9153 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309154 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9155 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009156 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
9157 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309158 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9159 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009160 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
9161 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309162 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009164 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
9165 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309166 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9167 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009168 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9169 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
9170 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9171 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309172 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9173 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
9174 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9175 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009176 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
9177 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05309178 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9179 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009180 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
9181 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05309182 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9183 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05309184 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
9185 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
9186 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
9187 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309188};
9189
9190static const struct snd_kcontrol_new tert_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009191 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9192 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309193 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009195 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9196 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309197 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009199 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9200 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309201 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9202 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009203 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9204 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309205 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009207 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9208 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309209 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9210 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009211 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9212 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309213 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9214 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009215 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9216 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309217 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9218 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009219 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9220 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309221 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009223 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9224 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309225 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009227 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9228 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309229 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009231 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9232 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309233 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009235 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9236 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309237 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009239 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9240 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309241 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009243 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9244 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309245 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009247 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9248 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309249 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9250 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009251 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9252 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309253 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9254 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309255 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9256 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
9257 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9258 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309259};
9260
9261static const struct snd_kcontrol_new quat_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009262 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9263 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309264 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9265 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009266 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9267 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309268 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9269 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009270 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9271 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309272 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9273 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009274 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9275 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309276 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9277 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009278 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9279 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309280 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9281 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009282 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9283 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309284 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009286 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9287 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309288 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9289 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009290 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9291 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309292 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009294 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9295 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309296 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009298 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9299 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309300 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009302 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9303 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309304 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009306 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9307 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309308 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009310 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9311 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309312 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009314 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9315 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309316 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009318 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9319 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309320 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009322 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9323 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309324 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9325 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309326 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9327 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
9328 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9329 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309330};
9331
Rohit Kumara5077932017-09-10 22:05:05 +05309332static const struct snd_kcontrol_new quin_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009333 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9334 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309335 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009337 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9338 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309339 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9340 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009341 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9342 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309343 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9344 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009345 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9346 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309347 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009349 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9350 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309351 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009353 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9354 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309355 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009357 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9358 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309359 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009361 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9362 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309363 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009365 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9366 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309367 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009369 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9370 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309371 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009373 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9374 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309375 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009377 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9378 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309379 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009381 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9382 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309383 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009385 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9386 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309387 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009389 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9390 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309391 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009393 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9394 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309395 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9396 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309397 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9398 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
9399 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9400 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309401};
Karthikeyan Manic3700752019-03-11 18:33:53 -07009402
9403static const struct snd_kcontrol_new sen_auxpcm_rx_mixer_controls[] = {
9404 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9405 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9406 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9407 msm_routing_put_audio_mixer),
9408 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9409 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9410 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9411 msm_routing_put_audio_mixer),
9412 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9413 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9414 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9415 msm_routing_put_audio_mixer),
9416 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9417 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9418 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9419 msm_routing_put_audio_mixer),
9420 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9421 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9422 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9423 msm_routing_put_audio_mixer),
9424 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9425 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9426 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9427 msm_routing_put_audio_mixer),
9428 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9429 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9430 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9431 msm_routing_put_audio_mixer),
9432 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9433 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9434 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9435 msm_routing_put_audio_mixer),
9436 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9437 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9438 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9439 msm_routing_put_audio_mixer),
9440 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9441 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9442 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9443 msm_routing_put_audio_mixer),
9444 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9445 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9446 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9447 msm_routing_put_audio_mixer),
9448 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9449 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9450 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9451 msm_routing_put_audio_mixer),
9452 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9453 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9454 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9455 msm_routing_put_audio_mixer),
9456 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9457 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9458 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9459 msm_routing_put_audio_mixer),
9460 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9461 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9462 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9463 msm_routing_put_audio_mixer),
9464 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9465 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9466 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9467 msm_routing_put_audio_mixer),
9468 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9469 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9470 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9471 msm_routing_put_audio_mixer),
9472};
9473
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309474static const struct snd_kcontrol_new pri_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009475 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9476 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309477 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9478 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009479 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9480 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309481 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009483 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9484 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309485 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009487 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9488 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309489 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9490 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009491 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9492 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309493 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009495 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9496 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309497 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009499 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9500 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309501 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009503 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9504 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309505 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009507 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9508 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309509 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009511 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9512 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309513 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009515 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9516 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309517 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009519 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9520 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309521 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009523 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9524 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309525 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009527 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9528 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309529 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009531 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9532 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309533 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009535 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9536 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309537 MSM_FRONTEND_DAI_MULTIMEDIA16, 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_PRI_TDM_RX_0,
9541 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9542 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009543 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9544 MSM_BACKEND_DAI_PRI_TDM_RX_0,
9545 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9546 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309547};
9548
9549static const struct snd_kcontrol_new pri_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009550 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9551 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309552 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9553 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009554 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9555 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309556 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9557 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009558 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9559 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309560 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009562 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9563 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309564 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009566 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9567 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309568 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009570 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9571 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309572 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009574 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9575 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309576 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009578 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9579 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309580 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009582 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9583 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309584 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009586 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9587 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309588 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9589 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009590 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9591 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309592 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009594 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9595 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309596 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009598 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9599 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309600 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009602 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9603 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309604 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9605 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009606 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9607 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309608 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009610 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9611 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309612 MSM_FRONTEND_DAI_MULTIMEDIA16, 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_PRI_TDM_RX_1,
9616 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9617 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009618 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9619 MSM_BACKEND_DAI_PRI_TDM_RX_1,
9620 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9621 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309622};
9623
9624static const struct snd_kcontrol_new pri_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009625 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9626 MSM_BACKEND_DAI_PRI_TDM_RX_2,
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("MultiMedia2", SND_SOC_NOPM,
9630 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309631 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009633 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9634 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309635 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009637 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9638 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309639 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009641 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9642 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309643 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009645 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9646 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309647 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009649 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9650 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309651 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009653 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9654 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309655 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009657 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9658 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309659 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009661 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9662 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309663 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9664 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009665 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9666 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309667 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9668 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009669 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9670 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309671 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009673 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9674 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309675 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009677 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9678 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309679 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009681 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9682 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309683 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009685 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9686 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309687 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9688 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009689 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9690 MSM_BACKEND_DAI_PRI_TDM_RX_2,
9691 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9692 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009693 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9694 MSM_BACKEND_DAI_PRI_TDM_RX_2,
9695 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9696 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309697};
9698
9699static const struct snd_kcontrol_new pri_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009700 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9701 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309702 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9703 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009704 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9705 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309706 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9707 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009708 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9709 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309710 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9711 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009712 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9713 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309714 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9715 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009716 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9717 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309718 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9719 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009720 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9721 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309722 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9723 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009724 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9725 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309726 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9727 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009728 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9729 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309730 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9731 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009732 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9733 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309734 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9735 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009736 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9737 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309738 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9739 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009740 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9741 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309742 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9743 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009744 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9745 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309746 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9747 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009748 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9749 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309750 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9751 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009752 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9753 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309754 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9755 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009756 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9757 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309758 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9759 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009760 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9761 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309762 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9763 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009764 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9765 MSM_BACKEND_DAI_PRI_TDM_RX_3,
9766 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9767 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009768 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9769 MSM_BACKEND_DAI_PRI_TDM_RX_3,
9770 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9771 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309772};
9773
9774static const struct snd_kcontrol_new pri_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009775 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9776 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309777 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009779 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9780 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309781 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009783 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9784 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309785 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009787 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9788 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309789 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009791 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9792 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309793 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009795 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9796 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309797 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009799 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9800 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309801 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009803 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9804 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309805 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009807 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9808 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309809 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009811 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9812 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309813 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009815 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9816 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309817 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009819 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9820 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309821 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009823 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9824 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309825 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009827 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9828 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309829 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009831 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9832 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309833 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9834 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009835 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9836 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309837 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9838 msm_routing_put_audio_mixer),
9839};
9840
9841static const struct snd_kcontrol_new sec_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009842 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9843 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309844 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9845 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009846 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9847 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309848 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9849 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009850 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9851 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309852 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9853 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009854 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9855 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309856 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9857 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009858 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9859 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309860 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9861 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009862 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9863 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309864 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9865 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009866 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9867 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309868 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9869 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009870 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9871 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309872 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009874 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9875 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309876 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009878 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9879 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309880 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009882 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9883 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309884 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009886 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9887 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309888 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009890 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9891 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309892 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009894 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9895 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309896 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009898 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9899 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309900 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009902 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9903 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309904 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9905 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009906 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9907 MSM_BACKEND_DAI_SEC_TDM_RX_0,
9908 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9909 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009910 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9911 MSM_BACKEND_DAI_SEC_TDM_RX_0,
9912 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9913 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309914};
9915
9916static const struct snd_kcontrol_new sec_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009917 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9918 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309919 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009921 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9922 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309923 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9924 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009925 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9926 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309927 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9928 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009929 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9930 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309931 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9932 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009933 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9934 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309935 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9936 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009937 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9938 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309939 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9940 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009941 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9942 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309943 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9944 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009945 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9946 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309947 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9948 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009949 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9950 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309951 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9952 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009953 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9954 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309955 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9956 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009957 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9958 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309959 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9960 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009961 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9962 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309963 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9964 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009965 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9966 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309967 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009969 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9970 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309971 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9972 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009973 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9974 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309975 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9976 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009977 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9978 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309979 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9980 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009981 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9982 MSM_BACKEND_DAI_SEC_TDM_RX_1,
9983 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9984 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009985 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9986 MSM_BACKEND_DAI_SEC_TDM_RX_1,
9987 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9988 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309989};
9990
9991static const struct snd_kcontrol_new sec_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009992 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9993 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309994 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009996 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9997 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("MultiMedia3", SND_SOC_NOPM,
10001 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010002 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010004 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10005 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010006 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010008 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10009 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010010 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010012 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10013 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010014 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010016 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10017 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010018 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010020 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10021 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010022 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010024 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10025 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010026 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010028 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10029 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010030 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010032 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10033 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010034 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010036 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10037 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010038 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010040 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10041 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010042 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10043 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010044 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10045 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010046 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10047 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010048 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10049 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010050 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010052 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10053 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010054 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10055 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010056 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10057 MSM_BACKEND_DAI_SEC_TDM_RX_2,
10058 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10059 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010060 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10061 MSM_BACKEND_DAI_SEC_TDM_RX_2,
10062 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10063 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010064};
10065
10066static const struct snd_kcontrol_new sec_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010067 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10068 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010069 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10070 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010071 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10072 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010073 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10074 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010075 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10076 MSM_BACKEND_DAI_SEC_TDM_RX_3,
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),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010079 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10080 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010081 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010083 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10084 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010085 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010087 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10088 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010089 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010091 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10092 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010093 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010095 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10096 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010097 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010099 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10100 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010101 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010103 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10104 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010105 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010107 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10108 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010109 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10110 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010111 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10112 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010113 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10114 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010115 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10116 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010117 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10118 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010119 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10120 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010121 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10122 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010123 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10124 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010125 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10126 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010127 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10128 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010129 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10130 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010131 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10132 MSM_BACKEND_DAI_SEC_TDM_RX_3,
10133 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10134 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010135 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10136 MSM_BACKEND_DAI_SEC_TDM_RX_3,
10137 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10138 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010139};
10140
10141static const struct snd_kcontrol_new sec_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010142 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10143 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010144 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10145 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010146 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10147 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010148 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10149 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010150 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10151 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010152 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10153 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010154 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10155 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010156 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010158 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10159 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010160 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010162 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10163 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010164 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010166 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10167 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010168 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010170 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10171 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010172 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010174 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10175 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010176 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010178 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10179 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010180 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010182 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10183 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010184 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010186 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10187 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010188 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010190 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10191 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010192 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010194 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10195 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010196 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010198 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10199 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010200 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010202 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10203 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010204 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10205 msm_routing_put_audio_mixer),
10206};
10207
10208static const struct snd_kcontrol_new tert_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010209 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10210 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010211 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010213 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10214 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010215 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010217 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10218 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010219 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010221 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10222 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010223 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010225 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10226 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010227 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010229 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10230 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010231 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010233 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10234 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010235 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010237 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10238 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010239 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010241 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10242 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010243 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10244 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010245 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10246 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010247 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10248 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010249 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10250 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010251 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10252 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010253 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10254 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010255 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10256 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010257 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10258 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010259 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010261 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10262 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010263 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010265 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10266 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010267 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010269 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10270 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010271 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10272 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010273 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10274 MSM_BACKEND_DAI_TERT_TDM_RX_0,
10275 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10276 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010277 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10278 MSM_BACKEND_DAI_TERT_TDM_RX_0,
10279 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10280 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010281};
10282
10283static const struct snd_kcontrol_new tert_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010284 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10285 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010286 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010288 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10289 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010290 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10291 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010292 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10293 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010294 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10295 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010296 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10297 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010298 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010300 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10301 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010302 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010304 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10305 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010306 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10307 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010308 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10309 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010310 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10311 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010312 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10313 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010314 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010316 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10317 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010318 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010320 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10321 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010322 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10323 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010324 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10325 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010326 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10327 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010328 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10329 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010330 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10331 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010332 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10333 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010334 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10335 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010336 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10337 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010338 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10339 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010340 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10341 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010342 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10343 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010344 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10345 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010346 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10347 msm_routing_put_audio_mixer),
10348};
10349
10350static const struct snd_kcontrol_new tert_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010351 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10352 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010353 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010355 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10356 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010357 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10358 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010359 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10360 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010361 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010363 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10364 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010365 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010367 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10368 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010369 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010371 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10372 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010373 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010375 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10376 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010377 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010379 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10380 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010381 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010383 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10384 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010385 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010387 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10388 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010389 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010391 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10392 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010393 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010395 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10396 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010397 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010399 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10400 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010401 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010403 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10404 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010405 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010407 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10408 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010409 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010411 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10412 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010413 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10414 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010415 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10416 MSM_BACKEND_DAI_TERT_TDM_RX_1,
10417 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10418 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010419 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10420 MSM_BACKEND_DAI_TERT_TDM_RX_1,
10421 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10422 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010423};
10424
10425static const struct snd_kcontrol_new tert_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010426 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10427 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010428 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10429 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010430 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10431 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010432 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10433 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010434 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10435 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010436 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010438 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10439 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010440 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010442 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10443 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010444 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010446 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10447 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010448 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010450 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10451 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010452 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010454 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10455 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010456 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010458 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10459 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010460 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010462 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10463 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010464 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010466 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10467 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010468 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010470 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10471 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010472 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010474 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10475 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010476 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010478 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10479 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010480 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010482 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10483 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010484 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010486 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10487 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010488 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10489 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010490 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10491 MSM_BACKEND_DAI_TERT_TDM_RX_2,
10492 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10493 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010494 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10495 MSM_BACKEND_DAI_TERT_TDM_RX_2,
10496 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10497 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010498};
10499
10500static const struct snd_kcontrol_new tert_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010501 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10502 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010503 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010505 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10506 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010507 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010509 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10510 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010511 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010513 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10514 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010515 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010517 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10518 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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("MultiMedia6", SND_SOC_NOPM,
10522 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010523 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010525 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10526 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010527 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010529 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10530 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010531 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010533 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10534 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010535 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010537 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10538 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010539 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010541 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10542 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010543 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010545 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10546 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010547 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010549 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10550 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010551 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010553 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10554 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010555 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010557 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10558 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010559 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010561 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10562 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010563 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10564 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010565 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10566 MSM_BACKEND_DAI_TERT_TDM_RX_3,
10567 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10568 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010569 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10570 MSM_BACKEND_DAI_TERT_TDM_RX_3,
10571 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10572 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010573};
10574
10575static const struct snd_kcontrol_new tert_tdm_rx_4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010576 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10577 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010578 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010580 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10581 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010582 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010584 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10585 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010586 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010588 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10589 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010590 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010592 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10593 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010594 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010596 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10597 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010598 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010600 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10601 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010602 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010604 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10605 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010606 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010608 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10609 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010610 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010612 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10613 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010614 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10615 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010616 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10617 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010618 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10619 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010620 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10621 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010622 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10623 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010624 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10625 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010626 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10627 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010628 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10629 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010630 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10631 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010632 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10633 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010634 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10635 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010636 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10637 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010638 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10639 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010640 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10641 MSM_BACKEND_DAI_TERT_TDM_RX_4,
10642 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10643 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010644 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10645 MSM_BACKEND_DAI_TERT_TDM_RX_4,
10646 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10647 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010648};
10649
10650static const struct snd_kcontrol_new quat_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010651 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10652 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010653 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010655 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10656 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010657 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010659 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10660 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010661 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010663 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10664 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010665 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10666 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010667 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10668 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010669 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010671 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10672 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010673 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010675 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10676 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010677 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010679 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10680 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010681 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010683 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10684 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010685 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010687 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10688 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010689 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10690 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010691 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10692 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010693 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010695 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10696 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010697 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010699 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10700 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010701 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010703 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10704 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010705 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010707 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10708 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010709 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010711 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10712 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010713 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010715 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10716 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010717 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10718 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010719 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10720 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
10721 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10722 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010723 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10724 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
10725 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10726 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010727};
10728
10729static const struct snd_kcontrol_new quat_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010730 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10731 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010732 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010734 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10735 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010736 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010738 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10739 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010740 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010742 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10743 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010744 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010746 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10747 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010748 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010750 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10751 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010752 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010754 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10755 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010756 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010758 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10759 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010760 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010762 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10763 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010764 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010766 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10767 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010768 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010770 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10771 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010772 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010774 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10775 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010776 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010778 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10779 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010780 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010782 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10783 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010784 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10785 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010786 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10787 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010788 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010790 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10791 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010792 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10793 msm_routing_put_audio_mixer),
10794};
10795
10796static const struct snd_kcontrol_new quat_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010797 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10798 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010799 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010801 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10802 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010803 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010805 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10806 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010807 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010809 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10810 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010811 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010813 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10814 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010815 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010817 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10818 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010819 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010821 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10822 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010823 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010825 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10826 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010827 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010829 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10830 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010831 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010833 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10834 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010835 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010837 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10838 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010839 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010841 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10842 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010843 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010845 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10846 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010847 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010849 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10850 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010851 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010853 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10854 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010855 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010857 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10858 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010859 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010861 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10862 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010863 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10864 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010865 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10866 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
10867 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10868 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010869 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10870 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
10871 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10872 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010873};
10874
10875static const struct snd_kcontrol_new quat_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010876 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10877 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010878 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010880 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10881 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010882 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010884 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10885 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010886 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010888 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10889 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010890 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010892 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10893 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010894 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010896 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10897 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010898 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010900 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10901 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010902 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010904 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10905 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010906 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010908 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10909 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010910 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010912 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10913 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010914 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010916 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10917 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010918 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010920 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10921 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010922 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010924 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10925 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010926 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010928 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10929 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010930 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10931 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010932 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10933 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010934 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010936 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10937 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010938 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010940 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10941 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010942 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10943 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010944 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10945 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
10946 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10947 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010948 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10949 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
10950 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10951 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010952};
10953
10954static const struct snd_kcontrol_new quat_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010955 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10956 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010957 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10958 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010959 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10960 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010961 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10962 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010963 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10964 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010965 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10966 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010967 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10968 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010969 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10970 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010971 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10972 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010973 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10974 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010975 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10976 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010977 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10978 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010979 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10980 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010981 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10982 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010983 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10984 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
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("MultiMedia9", SND_SOC_NOPM,
10988 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010989 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10990 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010991 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10992 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010993 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010995 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10996 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010997 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010999 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11000 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011001 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011003 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11004 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011005 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11006 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011007 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11008 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011009 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11010 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011011 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11012 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011013 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11014 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011015 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11016 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011017 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11018 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011019 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11020 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011021 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11022 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011023 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11024 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
11025 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11026 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070011027 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
11028 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
11029 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
11030 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011031};
11032
Rohit Kumara5077932017-09-10 22:05:05 +053011033static const struct snd_kcontrol_new quin_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011034 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11035 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011036 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11037 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011038 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11039 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011040 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11041 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011042 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11043 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011044 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11045 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011046 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11047 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011048 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11049 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011050 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11051 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011052 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11053 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011054 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11055 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011056 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11057 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011058 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11059 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011060 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11061 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011062 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11063 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011064 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11065 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011066 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11067 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011068 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11069 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011070 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11071 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011072 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11073 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011074 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11075 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011076 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11077 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011078 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11079 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011080 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11081 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011082 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11083 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011084 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11085 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011086 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11087 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011088 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11089 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011090 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11091 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011092 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011094 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11095 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011096 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11097 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011098 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11099 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011100 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11101 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011102 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11103 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
11104 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11105 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070011106 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
11107 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
11108 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
11109 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053011110};
11111
11112static const struct snd_kcontrol_new quin_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011113 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11114 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011115 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11116 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011117 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11118 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011119 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011121 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11122 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011123 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11124 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011125 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11126 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011127 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011129 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11130 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011131 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011133 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11134 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011135 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011137 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11138 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011139 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011141 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11142 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011143 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011145 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11146 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011147 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011149 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11150 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011151 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011153 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11154 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011155 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011157 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11158 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011159 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011161 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11162 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011163 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011165 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11166 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011167 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011169 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11170 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011171 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011173 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11174 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011175 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11176 msm_routing_put_audio_mixer),
11177};
11178
11179static const struct snd_kcontrol_new quin_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011180 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11181 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011182 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011184 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11185 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011186 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011188 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11189 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011190 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011192 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11193 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011194 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11195 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011196 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11197 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011198 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11199 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011200 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11201 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011202 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011204 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11205 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011206 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11207 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011208 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11209 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011210 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11211 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011212 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11213 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011214 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11215 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011216 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11217 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011218 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11219 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011220 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11221 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011222 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11223 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011224 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11225 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011226 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11227 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011228 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11229 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011230 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11231 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011232 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11233 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011234 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11235 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011236 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11237 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011238 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11239 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011240 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11241 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011242 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11243 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011244 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11245 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011246 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11247 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011248 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11249 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
11250 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11251 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070011252 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
11253 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
11254 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
11255 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053011256};
11257
11258static const struct snd_kcontrol_new quin_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011259 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11260 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011261 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011263 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11264 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011265 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011267 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11268 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011269 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11270 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011271 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11272 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011273 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011275 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11276 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011277 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011279 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11280 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011281 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011283 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11284 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011285 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11286 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011287 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11288 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011289 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11290 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011291 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11292 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011293 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11294 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011295 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11296 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011297 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011299 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11300 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011301 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11302 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011303 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11304 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011305 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11306 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011307 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11308 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011309 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11310 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011311 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11312 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011313 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11314 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011315 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11316 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011317 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11318 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011319 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11320 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011321 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11322 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011323 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11324 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011325 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11326 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011327 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11328 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
11329 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11330 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070011331 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
11332 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
11333 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
11334 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053011335};
11336
11337static const struct snd_kcontrol_new quin_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011338 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11339 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011340 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011342 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11343 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011344 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011346 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11347 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011348 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011350 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11351 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011352 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011354 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11355 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011356 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011358 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11359 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011360 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011362 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11363 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011364 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011366 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11367 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011368 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011370 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11371 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011372 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011374 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11375 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011376 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11377 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011378 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11379 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011380 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11381 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011382 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11383 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011384 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11385 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011386 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11387 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011388 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11389 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011390 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11391 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011392 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11393 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011394 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11395 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011396 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011398 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11399 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011400 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11401 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011402 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11403 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011404 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11405 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011406 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11407 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
11408 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11409 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070011410 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
11411 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
11412 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
11413 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053011414};
11415
Karthikeyan Manic3700752019-03-11 18:33:53 -070011416static const struct snd_kcontrol_new sen_tdm_rx_0_mixer_controls[] = {
11417 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11418 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11419 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11420 msm_routing_put_audio_mixer),
11421 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11422 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11423 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11424 msm_routing_put_audio_mixer),
11425 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11426 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11427 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11428 msm_routing_put_audio_mixer),
11429 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11430 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11431 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11432 msm_routing_put_audio_mixer),
11433 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11434 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11435 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11436 msm_routing_put_audio_mixer),
11437 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11438 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11439 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11440 msm_routing_put_audio_mixer),
11441 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11442 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11443 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11444 msm_routing_put_audio_mixer),
11445 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11446 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11447 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11448 msm_routing_put_audio_mixer),
11449 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11450 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11451 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11452 msm_routing_put_audio_mixer),
11453 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11454 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11455 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11456 msm_routing_put_audio_mixer),
11457 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11458 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11459 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11460 msm_routing_put_audio_mixer),
11461 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11462 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11463 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11464 msm_routing_put_audio_mixer),
11465 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11466 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11467 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11468 msm_routing_put_audio_mixer),
11469 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11470 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11471 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11472 msm_routing_put_audio_mixer),
11473 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11474 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11475 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11476 msm_routing_put_audio_mixer),
11477 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11478 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11479 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11480 msm_routing_put_audio_mixer),
11481 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11482 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11483 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11484 msm_routing_put_audio_mixer),
11485 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11486 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11487 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11488 msm_routing_put_audio_mixer),
11489};
11490
11491static const struct snd_kcontrol_new sen_tdm_tx_0_mixer_controls[] = {
11492 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11493 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11494 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11495 msm_routing_put_audio_mixer),
11496 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11497 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11498 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11499 msm_routing_put_audio_mixer),
11500 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11501 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11502 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11503 msm_routing_put_audio_mixer),
11504 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11505 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11506 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11507 msm_routing_put_audio_mixer),
11508 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11509 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11510 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11511 msm_routing_put_audio_mixer),
11512 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11513 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11514 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11515 msm_routing_put_audio_mixer),
11516 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11517 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11518 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11519 msm_routing_put_audio_mixer),
11520 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11521 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11522 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11523 msm_routing_put_audio_mixer),
11524 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11525 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11526 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11527 msm_routing_put_audio_mixer),
11528 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11529 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11530 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11531 msm_routing_put_audio_mixer),
11532 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11533 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11534 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11535 msm_routing_put_audio_mixer),
11536 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11537 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11538 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11539 msm_routing_put_audio_mixer),
11540 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11541 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11542 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11543 msm_routing_put_audio_mixer),
11544 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11545 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11546 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11547 msm_routing_put_audio_mixer),
11548 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11549 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11550 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11551 msm_routing_put_audio_mixer),
11552 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11553 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11554 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11555 msm_routing_put_audio_mixer),
11556};
11557
11558static const struct snd_kcontrol_new sen_tdm_rx_1_mixer_controls[] = {
11559 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11560 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11561 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11562 msm_routing_put_audio_mixer),
11563 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11564 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11565 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11566 msm_routing_put_audio_mixer),
11567 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11568 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11569 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11570 msm_routing_put_audio_mixer),
11571 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11572 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11573 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11574 msm_routing_put_audio_mixer),
11575 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11576 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11577 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11578 msm_routing_put_audio_mixer),
11579 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11580 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11581 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11582 msm_routing_put_audio_mixer),
11583 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11584 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11585 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11586 msm_routing_put_audio_mixer),
11587 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11588 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11589 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11590 msm_routing_put_audio_mixer),
11591 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11592 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11593 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11594 msm_routing_put_audio_mixer),
11595 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11596 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11597 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11598 msm_routing_put_audio_mixer),
11599 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11600 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11601 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11602 msm_routing_put_audio_mixer),
11603 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11604 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11605 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11606 msm_routing_put_audio_mixer),
11607 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11608 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11609 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11610 msm_routing_put_audio_mixer),
11611 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11612 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11613 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11614 msm_routing_put_audio_mixer),
11615 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11616 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11617 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11618 msm_routing_put_audio_mixer),
11619 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11620 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11621 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11622 msm_routing_put_audio_mixer),
11623 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11624 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11625 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11626 msm_routing_put_audio_mixer),
11627 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11628 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11629 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11630 msm_routing_put_audio_mixer),
11631};
11632
11633static const struct snd_kcontrol_new sen_tdm_rx_2_mixer_controls[] = {
11634 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11635 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11636 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11637 msm_routing_put_audio_mixer),
11638 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11639 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11640 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11641 msm_routing_put_audio_mixer),
11642 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11643 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11644 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11645 msm_routing_put_audio_mixer),
11646 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11647 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11648 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11649 msm_routing_put_audio_mixer),
11650 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11651 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11652 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11653 msm_routing_put_audio_mixer),
11654 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11655 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11656 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11657 msm_routing_put_audio_mixer),
11658 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11659 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11660 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11661 msm_routing_put_audio_mixer),
11662 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11663 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11664 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11665 msm_routing_put_audio_mixer),
11666 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11667 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11668 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11669 msm_routing_put_audio_mixer),
11670 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11671 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11672 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11673 msm_routing_put_audio_mixer),
11674 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11675 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11676 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11677 msm_routing_put_audio_mixer),
11678 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11679 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11680 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11681 msm_routing_put_audio_mixer),
11682 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11683 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11684 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11685 msm_routing_put_audio_mixer),
11686 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11687 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11688 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11689 msm_routing_put_audio_mixer),
11690 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11691 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11692 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11693 msm_routing_put_audio_mixer),
11694 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11695 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11696 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11697 msm_routing_put_audio_mixer),
11698 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11699 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11700 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11701 msm_routing_put_audio_mixer),
11702 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11703 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11704 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11705 msm_routing_put_audio_mixer),
11706};
11707
11708static const struct snd_kcontrol_new sen_tdm_rx_3_mixer_controls[] = {
11709 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11710 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11711 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11712 msm_routing_put_audio_mixer),
11713 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11714 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11715 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11716 msm_routing_put_audio_mixer),
11717 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11718 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11719 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11720 msm_routing_put_audio_mixer),
11721 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11722 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11723 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11724 msm_routing_put_audio_mixer),
11725 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11726 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11727 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11728 msm_routing_put_audio_mixer),
11729 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11730 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11731 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11732 msm_routing_put_audio_mixer),
11733 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11734 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11735 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11736 msm_routing_put_audio_mixer),
11737 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11738 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11739 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11740 msm_routing_put_audio_mixer),
11741 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11742 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11743 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11744 msm_routing_put_audio_mixer),
11745 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11746 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11747 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11748 msm_routing_put_audio_mixer),
11749 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11750 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11751 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11752 msm_routing_put_audio_mixer),
11753 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11754 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11755 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11756 msm_routing_put_audio_mixer),
11757 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11758 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11759 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11760 msm_routing_put_audio_mixer),
11761 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11762 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11763 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11764 msm_routing_put_audio_mixer),
11765 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11766 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11767 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11768 msm_routing_put_audio_mixer),
11769 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11770 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11771 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11772 msm_routing_put_audio_mixer),
11773 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11774 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11775 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11776 msm_routing_put_audio_mixer),
11777 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11778 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11779 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11780 msm_routing_put_audio_mixer),
11781};
11782
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011783static const struct snd_kcontrol_new mmul1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011784 SOC_DOUBLE_EXT("PRI_TX", SND_SOC_NOPM,
11785 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011786 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011788 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11789 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011790 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011792 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11793 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011794 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11795 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011796 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11797 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011798 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11799 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011800 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11801 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011802 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011804 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
11805 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011806 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011808 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11809 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011810 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011812 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11813 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011814 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011816 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11817 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011818 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11819 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011820 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11821 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11822 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11823 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011824 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11825 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011826 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011828 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11829 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011830 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011832 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
11833 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011834 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11835 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011836 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
11837 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011838 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11839 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011840 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
11841 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053011842 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11843 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070011844 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
11845 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
11846 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11847 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011848 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11849 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011850 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11851 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011852 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11853 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011854 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011856 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11857 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011858 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011860 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11861 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011862 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011864 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11865 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011866 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011868 SOC_DOUBLE_EXT("SLIM_4_TX", SND_SOC_NOPM,
11869 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011870 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011872 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11873 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011874 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011876 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11877 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011878 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11879 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070011880 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
11881 MSM_BACKEND_DAI_SENARY_MI2S_TX,
11882 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011884 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11885 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011886 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011888 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11889 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011890 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011892 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11893 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011894 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011896 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11897 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011898 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011900 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11901 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011902 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011904 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11905 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011906 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011908 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11909 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011910 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011912 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11913 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011914 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011916 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11917 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011918 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011920 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11921 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011922 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011924 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11925 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011926 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011928 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11929 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011930 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11931 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011932 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11933 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011934 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011936 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11937 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011938 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011940 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11941 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011942 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011944 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11945 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011946 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11947 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011948 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11949 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011950 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11951 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011952 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11953 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011954 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011956 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11957 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011958 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011960 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11961 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011962 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11963 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070011964 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
11965 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11966 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11967 msm_routing_put_audio_mixer),
11968 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
11969 MSM_BACKEND_DAI_SEN_TDM_TX_1,
11970 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11971 msm_routing_put_audio_mixer),
11972 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
11973 MSM_BACKEND_DAI_SEN_TDM_TX_2,
11974 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11975 msm_routing_put_audio_mixer),
11976 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
11977 MSM_BACKEND_DAI_SEN_TDM_TX_3,
11978 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011980 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11981 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011982 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011984 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
11985 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011986 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011988 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
11989 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011990 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11991 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011992 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11993 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11994 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11995 msm_routing_put_audio_mixer),
11996 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11997 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11998 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11999 msm_routing_put_audio_mixer),
12000 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12001 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12002 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12003 msm_routing_put_audio_mixer),
12004 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12005 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12006 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12007 msm_routing_put_audio_mixer),
12008 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12009 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12010 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12011 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012012 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12013 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12014 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12015 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012016 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12017 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12018 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12019 msm_routing_put_audio_mixer),
12020 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12021 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12022 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12023 msm_routing_put_audio_mixer),
12024 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12025 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12026 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12027 msm_routing_put_audio_mixer),
12028 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12029 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12030 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12031 msm_routing_put_audio_mixer),
12032 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12033 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12034 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12035 msm_routing_put_audio_mixer),
12036 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12037 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12038 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12039 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012040 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12041 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12042 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12043 msm_routing_put_audio_mixer),
12044 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12045 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12046 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12047 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053012048 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
12049 MSM_BACKEND_DAI_SLIMBUS_9_TX,
12050 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12051 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012052 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12053 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12054 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12055 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012056};
12057
12058static const struct snd_kcontrol_new mmul2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012059 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12060 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012061 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012063 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
12064 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012065 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12066 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012067 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12068 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012069 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12070 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012071 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12072 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012073 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12074 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012075 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12076 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012077 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12078 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012079 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12080 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012081 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012083 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12084 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012085 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012087 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12088 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012089 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012091 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12092 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012093 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012095 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
12096 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012097 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012099 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12100 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012101 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012103 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
12104 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012105 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12106 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012107 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
12108 MSM_BACKEND_DAI_SENARY_MI2S_TX,
12109 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12110 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012111 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12112 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012113 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12114 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012115 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12116 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012117 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12118 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012119 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12120 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012121 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12122 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012123 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12124 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012125 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12126 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012127 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12128 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012129 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012131 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12132 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012133 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012135 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12136 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012137 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012139 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12140 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012141 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012143 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12144 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012145 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012147 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12148 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012149 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012151 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12152 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012153 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012155 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12156 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012157 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012159 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12160 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012161 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012163 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12164 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012165 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012167 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12168 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012169 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012171 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12172 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012173 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012175 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12176 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012177 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012179 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12180 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012181 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012183 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12184 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012185 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012187 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12188 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012189 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12190 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012191 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12192 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12193 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12194 msm_routing_put_audio_mixer),
12195 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12196 MSM_BACKEND_DAI_SEN_TDM_TX_1,
12197 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12198 msm_routing_put_audio_mixer),
12199 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
12200 MSM_BACKEND_DAI_SEN_TDM_TX_2,
12201 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12202 msm_routing_put_audio_mixer),
12203 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
12204 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12205 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012207 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
12208 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012209 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12210 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012211 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
12212 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012213 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12214 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012215 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12216 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12217 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12218 msm_routing_put_audio_mixer),
12219 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12220 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12221 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12222 msm_routing_put_audio_mixer),
12223 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12224 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12225 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12226 msm_routing_put_audio_mixer),
12227 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12228 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12229 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12230 msm_routing_put_audio_mixer),
12231 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12232 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12233 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12234 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012235 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12236 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12237 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12238 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012239 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12240 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12241 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12242 msm_routing_put_audio_mixer),
12243 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12244 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12245 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12246 msm_routing_put_audio_mixer),
12247 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12248 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12249 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12250 msm_routing_put_audio_mixer),
12251 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12252 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12253 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12254 msm_routing_put_audio_mixer),
12255 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12256 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12257 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12258 msm_routing_put_audio_mixer),
12259 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12260 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12261 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12262 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012263 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12264 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12265 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12266 msm_routing_put_audio_mixer),
12267 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12268 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12269 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12270 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053012271 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
12272 MSM_BACKEND_DAI_SLIMBUS_9_TX,
12273 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12274 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012275 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12276 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12277 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12278 msm_routing_put_audio_mixer),
Asish Bhattacharyaf4d24122019-07-30 12:39:15 +053012279 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
12280 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
12281 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12282 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012283};
12284
12285static const struct snd_kcontrol_new mmul3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012286 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12287 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012288 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12289 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012290 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12291 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12292 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012294 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12295 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012296 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012298 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
12299 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012300 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012302 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12303 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012304 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012306 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12307 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012308 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012310 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
12311 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012312 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012314 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
12315 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012316 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012318 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
12319 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012320 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012322 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
12323 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012324 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012326 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
12327 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053012328 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12329 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012330 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX", SND_SOC_NOPM,
12331 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
12332 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012334 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12335 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012336 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012338 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12339 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012340 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012342 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12343 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012344 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012346 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12347 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012348 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012350 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12351 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012352 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012354 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12355 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012356 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012358 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12359 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012360 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012362 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12363 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012364 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012366 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12367 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012368 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012370 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12371 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012372 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012374 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12375 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012376 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12377 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012378 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12379 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012380 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12381 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012382 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12383 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012384 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12385 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012386 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12387 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012388 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12389 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012390 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12391 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012392 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12393 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012394 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12395 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012396 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012398 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12399 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012400 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12401 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012402 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12403 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012404 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12405 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012406 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12407 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012408 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012410 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12411 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012412 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012414 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12415 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012416 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12417 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012418 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12419 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012420 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012422 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12423 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012424 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12425 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012426 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12427 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012428 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12429 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012430 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12431 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12432 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12433 msm_routing_put_audio_mixer),
12434 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12435 MSM_BACKEND_DAI_SEN_TDM_TX_1,
12436 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12437 msm_routing_put_audio_mixer),
12438 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
12439 MSM_BACKEND_DAI_SEN_TDM_TX_2,
12440 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12441 msm_routing_put_audio_mixer),
12442 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
12443 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12444 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12445 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012446 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12447 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12448 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12449 msm_routing_put_audio_mixer),
12450 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12451 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12452 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12453 msm_routing_put_audio_mixer),
12454 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12455 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12456 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12457 msm_routing_put_audio_mixer),
12458 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12459 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12460 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12461 msm_routing_put_audio_mixer),
12462 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12463 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12464 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12465 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012466 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12467 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12468 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12469 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012470 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12471 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12472 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12473 msm_routing_put_audio_mixer),
12474 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12475 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12476 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12477 msm_routing_put_audio_mixer),
12478 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12479 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12480 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12481 msm_routing_put_audio_mixer),
12482 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12483 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12484 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12485 msm_routing_put_audio_mixer),
12486 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12487 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12488 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12489 msm_routing_put_audio_mixer),
12490 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12491 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12492 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12493 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012494 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12495 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12496 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12497 msm_routing_put_audio_mixer),
12498 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12499 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12500 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12501 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012502 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12503 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12504 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12505 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012506};
12507
12508static const struct snd_kcontrol_new mmul4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012509 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12510 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012511 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12512 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012513 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12514 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12515 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012517 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12518 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012519 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012521 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12522 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012523 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012525 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12526 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012527 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012529 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12530 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012531 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012533 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12534 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012535 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012537 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12538 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012539 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012541 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12542 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012543 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012545 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12546 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012547 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012549 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12550 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012551 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012553 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12554 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012555 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012557 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12558 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012559 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012561 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12562 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012563 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012565 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12566 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012567 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012569 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12570 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012571 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012573 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12574 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012575 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012577 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12578 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012579 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012581 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12582 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012583 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012585 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12586 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012587 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12588 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012589 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12590 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012591 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12592 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012593 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12594 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012595 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12596 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012597 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12598 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012599 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12600 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012601 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12602 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012603 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12604 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012605 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12606 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012607 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12608 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012609 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12610 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012611 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12612 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012613 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12614 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012615 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12616 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012617 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12618 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012619 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12620 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012621 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12622 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12623 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12624 msm_routing_put_audio_mixer),
12625 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12626 MSM_BACKEND_DAI_SEN_TDM_TX_1,
12627 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12628 msm_routing_put_audio_mixer),
12629 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
12630 MSM_BACKEND_DAI_SEN_TDM_TX_2,
12631 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12632 msm_routing_put_audio_mixer),
12633 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
12634 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12635 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012637 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12638 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012639 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012641 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12642 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012643 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012645 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12646 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012647 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012649 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12650 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012651 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012653 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12654 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012655 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012657 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
12658 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012659 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12660 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012661 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12662 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12663 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12664 msm_routing_put_audio_mixer),
12665 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12666 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12667 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12668 msm_routing_put_audio_mixer),
12669 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12670 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12671 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12672 msm_routing_put_audio_mixer),
12673 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12674 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12675 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12676 msm_routing_put_audio_mixer),
12677 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12678 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12679 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12680 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012681 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12682 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12683 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12684 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012685 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12686 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12687 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12688 msm_routing_put_audio_mixer),
12689 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12690 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12691 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12692 msm_routing_put_audio_mixer),
12693 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12694 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12695 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12696 msm_routing_put_audio_mixer),
12697 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12698 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12699 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12700 msm_routing_put_audio_mixer),
12701 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12702 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12703 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12704 msm_routing_put_audio_mixer),
12705 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12706 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12707 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12708 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012709 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12710 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12711 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12712 msm_routing_put_audio_mixer),
12713 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12714 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12715 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12716 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012717 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12718 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12719 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12720 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012721};
12722
12723static const struct snd_kcontrol_new mmul5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012724 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12725 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012726 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12727 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012728 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12729 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12730 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12731 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012732 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12733 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012734 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12735 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012736 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
12737 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012738 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12739 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012740 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12741 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012742 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12743 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012744 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12745 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012746 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12747 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012748 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12749 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012750 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12751 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012752 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
12753 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012754 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12755 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012756 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
12757 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012758 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12759 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012760 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
12761 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012762 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12763 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012764 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
12765 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053012766 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12767 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012768 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX", SND_SOC_NOPM,
12769 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
12770 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12771 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012772 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12773 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012774 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12775 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012776 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12777 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012778 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012780 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12781 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012782 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012784 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12785 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012786 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012788 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12789 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012790 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012792 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12793 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012794 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12795 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012796 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12797 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012798 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12799 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012800 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12801 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012802 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012804 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12805 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012806 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012808 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12809 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012810 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012812 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12813 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012814 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012816 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12817 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012818 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12819 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012820 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12821 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012822 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12823 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012824 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12825 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012826 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012828 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12829 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012830 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012832 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12833 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012834 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12835 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012836 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12837 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012838 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12839 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012840 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12841 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012842 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12843 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012844 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12845 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012846 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12847 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012848 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12849 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012850 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12851 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012852 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12853 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012854 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012856 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12857 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012858 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012860 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12861 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012862 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012864 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12865 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012866 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12867 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012868 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12869 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12870 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12871 msm_routing_put_audio_mixer),
12872 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12873 MSM_BACKEND_DAI_SEN_TDM_TX_1,
12874 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12875 msm_routing_put_audio_mixer),
12876 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
12877 MSM_BACKEND_DAI_SEN_TDM_TX_2,
12878 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12879 msm_routing_put_audio_mixer),
12880 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
12881 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12882 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012884 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12885 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012886 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012888 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12889 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012890 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012892 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
12893 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012894 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012896 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
12897 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012898 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012900 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
12901 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012902 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12903 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012904 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12905 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12906 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12907 msm_routing_put_audio_mixer),
12908 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12909 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12910 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12911 msm_routing_put_audio_mixer),
12912 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12913 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12914 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12915 msm_routing_put_audio_mixer),
12916 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12917 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12918 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12919 msm_routing_put_audio_mixer),
12920 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12921 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12922 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12923 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012924 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12925 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12926 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12927 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012928 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12929 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12930 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12931 msm_routing_put_audio_mixer),
12932 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12933 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12934 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12935 msm_routing_put_audio_mixer),
12936 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12937 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12938 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12939 msm_routing_put_audio_mixer),
12940 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12941 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12942 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12943 msm_routing_put_audio_mixer),
12944 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12945 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12946 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12947 msm_routing_put_audio_mixer),
12948 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12949 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12950 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12951 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012952 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12953 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12954 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12955 msm_routing_put_audio_mixer),
12956 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12957 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12958 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12959 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053012960 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
12961 MSM_BACKEND_DAI_SLIMBUS_9_TX,
12962 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12963 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012964 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12965 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12966 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12967 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012968};
12969
12970static const struct snd_kcontrol_new mmul6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012971 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12972 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012973 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12974 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012975 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12976 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012977 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12978 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012979 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12980 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12981 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12982 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012983 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12984 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012985 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12986 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012987 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12988 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012989 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12990 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012991 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12992 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012993 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012995 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12996 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012997 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012999 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13000 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013001 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013003 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13004 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013005 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13006 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013007 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13008 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013009 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13010 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013011 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
13012 MSM_BACKEND_DAI_SENARY_MI2S_TX,
13013 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13014 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013015 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13016 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013017 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13018 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013019 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13020 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013021 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13022 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013023 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13024 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013025 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13026 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013027 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13028 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013029 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13030 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013031 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
13032 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013033 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13034 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013035 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
13036 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013037 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13038 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013039 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13040 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013041 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13042 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013043 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13044 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013045 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13046 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013047 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
13048 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013049 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13050 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013051 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
13052 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013053 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13054 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013055 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
13056 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013057 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13058 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013059 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
13060 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013061 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013063 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13064 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013065 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13066 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013067 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13068 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013069 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13070 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013071 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13072 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013073 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13074 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013075 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13076 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013077 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13078 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013079 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13080 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013081 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013083 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13084 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013085 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013087 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13088 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013089 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013091 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13092 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013093 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013095 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13096 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013097 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013099 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13100 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013101 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013103 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13104 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013105 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013107 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13108 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013109 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13110 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013111 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
13112 MSM_BACKEND_DAI_SEN_TDM_TX_0,
13113 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13114 msm_routing_put_audio_mixer),
13115 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
13116 MSM_BACKEND_DAI_SEN_TDM_TX_1,
13117 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13118 msm_routing_put_audio_mixer),
13119 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
13120 MSM_BACKEND_DAI_SEN_TDM_TX_2,
13121 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13122 msm_routing_put_audio_mixer),
13123 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
13124 MSM_BACKEND_DAI_SEN_TDM_TX_3,
13125 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13126 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013127 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
13128 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013129 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13130 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013131 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13132 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13133 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13134 msm_routing_put_audio_mixer),
13135 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13136 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13137 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13138 msm_routing_put_audio_mixer),
13139 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13140 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13141 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13142 msm_routing_put_audio_mixer),
13143 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13144 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13145 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13146 msm_routing_put_audio_mixer),
13147 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13148 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13149 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13150 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013151 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13152 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13153 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13154 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013155 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13156 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13157 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13158 msm_routing_put_audio_mixer),
13159 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13160 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13161 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13162 msm_routing_put_audio_mixer),
13163 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13164 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13165 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13166 msm_routing_put_audio_mixer),
13167 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13168 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13169 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13170 msm_routing_put_audio_mixer),
13171 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13172 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13173 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13174 msm_routing_put_audio_mixer),
13175 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13176 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13177 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13178 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013179 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13180 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13181 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13182 msm_routing_put_audio_mixer),
13183 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13184 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13185 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13186 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013187 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13188 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13189 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13190 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013191};
13192
13193static const struct snd_kcontrol_new mmul8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013194 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13195 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013196 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13197 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013198 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13199 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13200 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013202 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13203 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013204 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013206 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13207 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013208 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13209 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013210 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13211 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013212 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13213 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013214 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
13215 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013216 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13217 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013218 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13219 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013220 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13221 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013222 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13223 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013224 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013226 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13227 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013228 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013230 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13231 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013232 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13233 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013234 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13235 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013236 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13237 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013238 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
13239 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013240 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13241 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013242 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
13243 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013244 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13245 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013246 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
13247 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013248 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13249 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013250 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
13251 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013252 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013254 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
13255 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013256 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13257 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013258 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13259 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013260 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13261 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013262 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13263 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013264 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13265 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013266 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
13267 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013268 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13269 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013270 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
13271 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013272 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13273 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013274 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
13275 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013276 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13277 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013278 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
13279 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013280 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13281 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013282 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13283 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013284 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013286 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13287 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013288 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13289 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013290 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13291 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013292 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013294 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13295 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013296 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013298 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13299 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013300 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013302 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13303 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013304 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013306 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13307 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013308 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013310 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13311 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013312 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013314 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13315 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013316 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013318 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13319 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013320 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013322 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13323 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013324 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013326 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13327 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013328 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13329 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013330 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
13331 MSM_BACKEND_DAI_SEN_TDM_TX_0,
13332 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13333 msm_routing_put_audio_mixer),
13334 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
13335 MSM_BACKEND_DAI_SEN_TDM_TX_1,
13336 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13337 msm_routing_put_audio_mixer),
13338 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
13339 MSM_BACKEND_DAI_SEN_TDM_TX_2,
13340 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13341 msm_routing_put_audio_mixer),
13342 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
13343 MSM_BACKEND_DAI_SEN_TDM_TX_3,
13344 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013346 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13347 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013348 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013350 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
13351 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013352 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13353 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013354 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13355 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13356 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13357 msm_routing_put_audio_mixer),
13358 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13359 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13360 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13361 msm_routing_put_audio_mixer),
13362 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13363 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13364 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13365 msm_routing_put_audio_mixer),
13366 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13367 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13368 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13369 msm_routing_put_audio_mixer),
13370 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13371 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13372 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13373 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013374 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13375 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13376 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13377 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013378 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13379 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13380 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13381 msm_routing_put_audio_mixer),
13382 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13383 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13384 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13385 msm_routing_put_audio_mixer),
13386 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13387 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13388 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13389 msm_routing_put_audio_mixer),
13390 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13391 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13392 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13393 msm_routing_put_audio_mixer),
13394 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13395 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13396 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13397 msm_routing_put_audio_mixer),
13398 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13399 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13400 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13401 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013402 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13403 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13404 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13405 msm_routing_put_audio_mixer),
13406 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13407 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13408 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13409 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013410 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13411 MSM_BACKEND_DAI_SLIMBUS_9_TX,
13412 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13413 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013414 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13415 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13416 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13417 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013418};
13419
Asish Bhattacharya34504582017-08-08 12:55:01 +053013420static const struct snd_kcontrol_new mmul16_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013421 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13422 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013423 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13424 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013425 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13426 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13427 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13428 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013429 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13430 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013431 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13432 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013433 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13434 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013435 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13436 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013437 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13438 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013439 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13440 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013441 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
13442 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013443 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13444 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013445 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13446 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013447 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13448 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013449 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13450 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013451 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13452 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013453 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13454 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013455 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13456 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013457 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13458 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013459 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13460 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013461 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13462 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013463 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13464 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013465 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
13466 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013467 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13468 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013469 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
13470 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013471 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013473 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
13474 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013475 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013477 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
13478 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013479 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013481 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
13482 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013483 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013485 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13486 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013487 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013489 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13490 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013491 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013493 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
13494 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013495 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013497 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
13498 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013499 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013501 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
13502 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013503 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013505 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
13506 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013507 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013509 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13510 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013511 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013513 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13514 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013515 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013517 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13518 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013519 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013521 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13522 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013523 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013525 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13526 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013527 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013529 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13530 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013531 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013533 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13534 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013535 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013537 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13538 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013539 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013541 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13542 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013543 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013545 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
13546 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013547 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013549 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13550 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013551 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013553 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
13554 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013555 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013557 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
13558 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013559 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013561 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
13562 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013563 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13564 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013565 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13566 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13567 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13568 msm_routing_put_audio_mixer),
13569 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13570 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13571 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13572 msm_routing_put_audio_mixer),
13573 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13574 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13575 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13576 msm_routing_put_audio_mixer),
13577 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13578 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13579 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13580 msm_routing_put_audio_mixer),
13581 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13582 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13583 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13584 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013585 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13586 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13587 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13588 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013589 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13590 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13591 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13592 msm_routing_get_audio_mixer,
13593 msm_routing_put_audio_mixer),
13594 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13595 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13596 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13597 msm_routing_get_audio_mixer,
13598 msm_routing_put_audio_mixer),
13599 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13600 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13601 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13602 msm_routing_get_audio_mixer,
13603 msm_routing_put_audio_mixer),
13604 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13605 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13606 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13607 msm_routing_get_audio_mixer,
13608 msm_routing_put_audio_mixer),
13609 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13610 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13611 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13612 msm_routing_get_audio_mixer,
13613 msm_routing_put_audio_mixer),
13614 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13615 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13616 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13617 msm_routing_get_audio_mixer,
13618 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013619 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13620 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13621 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13622 msm_routing_put_audio_mixer),
13623 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13624 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13625 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13626 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013627 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13628 MSM_BACKEND_DAI_SLIMBUS_9_TX,
13629 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13630 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013631 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13632 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13633 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13634 msm_routing_put_audio_mixer),
Asish Bhattacharya34504582017-08-08 12:55:01 +053013635};
13636
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013637static const struct snd_kcontrol_new mmul9_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013638 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13639 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013640 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13641 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013642 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13643 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13644 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013646 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13647 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013648 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013650 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13651 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013652 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013654 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13655 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013656 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013658 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13659 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013660 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013662 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
13663 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013664 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13665 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013666 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
13667 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013668 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013670 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
13671 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013672 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013674 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13675 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013676 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013678 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13679 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013680 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013682 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13683 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013684 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013686 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13687 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013688 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013690 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13691 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013692 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013694 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13695 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013696 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013698 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13699 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013700 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013702 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13703 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013704 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13705 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013706 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13707 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013708 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13709 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013710 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13711 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013712 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013714 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13715 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013716 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013718 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13719 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013720 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13721 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013722 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
13723 MSM_BACKEND_DAI_SEN_TDM_TX_0,
13724 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13725 msm_routing_put_audio_mixer),
13726 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
13727 MSM_BACKEND_DAI_SEN_TDM_TX_1,
13728 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13729 msm_routing_put_audio_mixer),
13730 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
13731 MSM_BACKEND_DAI_SEN_TDM_TX_2,
13732 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13733 msm_routing_put_audio_mixer),
13734 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
13735 MSM_BACKEND_DAI_SEN_TDM_TX_3,
13736 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13737 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013738 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13739 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13740 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13741 msm_routing_put_audio_mixer),
13742 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13743 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13744 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13745 msm_routing_put_audio_mixer),
13746 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13747 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13748 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13749 msm_routing_put_audio_mixer),
13750 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13751 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13752 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13753 msm_routing_put_audio_mixer),
13754 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13755 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13756 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13757 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013758 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13759 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13760 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13761 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013762 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13763 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13764 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13765 msm_routing_put_audio_mixer),
13766 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13767 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13768 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13769 msm_routing_put_audio_mixer),
13770 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13771 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13772 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13773 msm_routing_put_audio_mixer),
13774 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13775 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13776 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13777 msm_routing_put_audio_mixer),
13778 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13779 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13780 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13781 msm_routing_put_audio_mixer),
13782 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13783 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13784 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13785 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013786 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13787 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13788 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13789 msm_routing_put_audio_mixer),
13790 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13791 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13792 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13793 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013794 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13795 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13796 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13797 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013798};
13799
Laxminath Kasam38070be2017-08-17 18:21:59 +053013800static const struct snd_kcontrol_new mmul10_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013801 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13802 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013803 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13804 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013805 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13806 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13807 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013809 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13810 MSM_BACKEND_DAI_PRI_MI2S_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013811 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013813 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13814 MSM_BACKEND_DAI_INT_FM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013815 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013817 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13818 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013819 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013821 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13822 MSM_BACKEND_DAI_AFE_PCM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013823 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013825 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
13826 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013827 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013829 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
13830 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013831 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013833 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
13834 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013835 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013837 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13838 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Vikram Panduranga72863152017-09-06 15:47:35 -070013839 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013841 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13842 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013843 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013845 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13846 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013847 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013849 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13850 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013851 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013853 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13854 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013855 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013857 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13858 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013859 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013861 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13862 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013863 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013865 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13866 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013867 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13868 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013869 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13870 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013871 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013873 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
13874 MSM_BACKEND_DAI_USB_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013875 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013877 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13878 MSM_BACKEND_DAI_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013879 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013881 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
13882 MSM_BACKEND_DAI_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013883 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13884 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013885 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
13886 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013887 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13888 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013889 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
13890 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013891 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13892 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013893 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
13894 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013895 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13896 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013897 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13898 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013899 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13900 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013901 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
13902 MSM_BACKEND_DAI_INT2_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013903 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13904 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013905 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13906 MSM_BACKEND_DAI_INT3_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013907 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13908 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013909 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13910 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13911 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13912 msm_routing_put_audio_mixer),
13913 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13914 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13915 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13916 msm_routing_put_audio_mixer),
13917 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13918 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13919 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13920 msm_routing_put_audio_mixer),
13921 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13922 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13923 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13924 msm_routing_put_audio_mixer),
13925 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13926 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13927 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13928 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013929 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13930 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13931 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13932 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013933 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13934 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13935 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
13936 msm_routing_get_audio_mixer,
13937 msm_routing_put_audio_mixer),
13938 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13939 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13940 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
13941 msm_routing_get_audio_mixer,
13942 msm_routing_put_audio_mixer),
13943 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13944 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13945 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
13946 msm_routing_get_audio_mixer,
13947 msm_routing_put_audio_mixer),
13948 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13949 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13950 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
13951 msm_routing_get_audio_mixer,
13952 msm_routing_put_audio_mixer),
13953 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13954 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13955 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
13956 msm_routing_get_audio_mixer,
13957 msm_routing_put_audio_mixer),
13958 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13959 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13960 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
13961 msm_routing_get_audio_mixer,
13962 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013963 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13964 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13965 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13966 msm_routing_put_audio_mixer),
13967 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13968 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13969 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13970 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013971 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13972 MSM_BACKEND_DAI_SLIMBUS_9_TX,
13973 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13974 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013975 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13976 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13977 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13978 msm_routing_put_audio_mixer),
Laxminath Kasam38070be2017-08-17 18:21:59 +053013979};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013980static const struct snd_kcontrol_new mmul17_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013981 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13982 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013983 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13984 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013985 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13986 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13987 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13988 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013989 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13990 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013991 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013993 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13994 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053013995 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013997 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13998 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013999 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014001 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14002 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014003 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14004 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014005 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14006 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014007 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014009 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
14010 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014011 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014013 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
14014 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014015 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14016 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080014017 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14018 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14019 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14020 msm_routing_put_audio_mixer),
14021 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14022 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
14023 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14024 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014025 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14026 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14027 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14028 msm_routing_put_audio_mixer),
14029 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14030 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14031 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14032 msm_routing_put_audio_mixer),
14033 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14034 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14035 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14036 msm_routing_put_audio_mixer),
14037 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14038 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14039 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14040 msm_routing_put_audio_mixer),
14041 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14042 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14043 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14044 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014045 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14046 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14047 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14048 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014049 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14050 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14051 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
14052 msm_routing_get_audio_mixer,
14053 msm_routing_put_audio_mixer),
14054 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14055 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14056 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
14057 msm_routing_get_audio_mixer,
14058 msm_routing_put_audio_mixer),
14059 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14060 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14061 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
14062 msm_routing_get_audio_mixer,
14063 msm_routing_put_audio_mixer),
14064 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14065 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14066 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
14067 msm_routing_get_audio_mixer,
14068 msm_routing_put_audio_mixer),
14069 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14070 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14071 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
14072 msm_routing_get_audio_mixer,
14073 msm_routing_put_audio_mixer),
14074 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14075 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14076 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
14077 msm_routing_get_audio_mixer,
14078 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014079 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14080 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14081 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14082 msm_routing_put_audio_mixer),
14083 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14084 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14085 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14086 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014087 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14088 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14089 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14090 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014091};
14092
14093static const struct snd_kcontrol_new mmul18_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014094 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14095 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014096 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14097 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014098 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14099 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14100 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14101 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014102 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14103 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014104 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14105 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014106 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14107 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014108 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14109 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014110 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14111 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
14112 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14113 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080014114 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14115 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14116 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014118 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14119 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014120 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014122 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14123 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014124 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014126 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14127 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014128 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014130 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14131 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014132 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014134 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
14135 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014136 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14137 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014138 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
14139 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014140 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14141 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014142 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14143 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14144 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14145 msm_routing_put_audio_mixer),
14146 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14147 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14148 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14149 msm_routing_put_audio_mixer),
14150 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14151 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14152 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14153 msm_routing_put_audio_mixer),
14154 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14155 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14156 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14157 msm_routing_put_audio_mixer),
14158 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14159 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14160 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14161 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014162 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14163 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14164 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14165 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014166 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14167 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14168 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14169 msm_routing_get_audio_mixer,
14170 msm_routing_put_audio_mixer),
14171 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14172 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14173 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14174 msm_routing_get_audio_mixer,
14175 msm_routing_put_audio_mixer),
14176 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14177 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14178 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14179 msm_routing_get_audio_mixer,
14180 msm_routing_put_audio_mixer),
14181 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14182 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14183 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14184 msm_routing_get_audio_mixer,
14185 msm_routing_put_audio_mixer),
14186 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14187 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14188 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14189 msm_routing_get_audio_mixer,
14190 msm_routing_put_audio_mixer),
14191 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14192 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14193 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14194 msm_routing_get_audio_mixer,
14195 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014196 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14197 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14198 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14199 msm_routing_put_audio_mixer),
14200 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14201 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14202 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14203 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014204 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14205 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14206 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14207 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014208};
14209
14210static const struct snd_kcontrol_new mmul19_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014211 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14212 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014213 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14214 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014215 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14216 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14217 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14218 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014219 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14220 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014221 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014223 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14224 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014225 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014227 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14228 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014229 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014231 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14232 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014233 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014235 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14236 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014237 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014239 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
14240 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014241 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014243 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
14244 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014245 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14246 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010014247 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14248 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
14249 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14250 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080014251 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14252 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14253 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14254 msm_routing_put_audio_mixer),
14255 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14256 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
14257 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14258 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014259 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14260 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14261 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14262 msm_routing_put_audio_mixer),
14263 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14264 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14265 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14266 msm_routing_put_audio_mixer),
14267 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14268 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14269 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14270 msm_routing_put_audio_mixer),
14271 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14272 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14273 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14274 msm_routing_put_audio_mixer),
14275 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14276 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14277 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14278 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014279 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14280 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14281 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14282 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014283 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14284 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14285 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14286 msm_routing_get_audio_mixer,
14287 msm_routing_put_audio_mixer),
14288 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14289 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14290 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14291 msm_routing_get_audio_mixer,
14292 msm_routing_put_audio_mixer),
14293 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14294 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14295 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14296 msm_routing_get_audio_mixer,
14297 msm_routing_put_audio_mixer),
14298 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14299 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14300 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14301 msm_routing_get_audio_mixer,
14302 msm_routing_put_audio_mixer),
14303 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14304 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14305 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14306 msm_routing_get_audio_mixer,
14307 msm_routing_put_audio_mixer),
14308 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14309 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14310 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14311 msm_routing_get_audio_mixer,
14312 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014313 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14314 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14315 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14316 msm_routing_put_audio_mixer),
14317 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14318 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14319 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14320 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014321 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14322 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14323 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14324 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014325};
14326
14327static const struct snd_kcontrol_new mmul20_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014328 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14329 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014330 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14331 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014332 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14333 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014334 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14335 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014336 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14337 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014338 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14339 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014340 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14341 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014342 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14343 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014344 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14345 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053014346 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14347 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014348 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
14349 MSM_BACKEND_DAI_SENARY_MI2S_TX,
14350 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14351 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014352 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14353 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014354 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14355 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014356 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14357 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014358 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14359 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014360 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14361 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014362 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14363 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014364 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14365 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014366 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14367 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014368 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14369 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014370 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14371 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014372 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14373 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014374 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14375 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014376 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14377 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014378 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14379 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014380 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14381 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014382 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14383 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014384 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14385 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014386 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14387 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014388 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14389 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014390 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14391 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014392 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14393 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014394 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14395 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014396 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14397 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014398 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14399 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014400 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14401 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014402 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14403 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014404 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14405 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014406 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14407 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014408 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14409 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014410 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14411 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014412 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14413 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014414 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14415 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014416 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14417 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014418 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14419 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014420 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14421 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014422 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014424 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14425 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014426 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014428 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14429 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014430 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14431 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014432 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
14433 MSM_BACKEND_DAI_SEN_TDM_TX_0,
14434 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14435 msm_routing_put_audio_mixer),
14436 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
14437 MSM_BACKEND_DAI_SEN_TDM_TX_1,
14438 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14439 msm_routing_put_audio_mixer),
14440 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
14441 MSM_BACKEND_DAI_SEN_TDM_TX_2,
14442 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14443 msm_routing_put_audio_mixer),
14444 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
14445 MSM_BACKEND_DAI_SEN_TDM_TX_3,
14446 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14447 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014448 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14449 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14450 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14451 msm_routing_put_audio_mixer),
14452 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14453 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14454 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14455 msm_routing_put_audio_mixer),
14456 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14457 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14458 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14459 msm_routing_put_audio_mixer),
14460 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14461 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14462 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14463 msm_routing_put_audio_mixer),
14464 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14465 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14466 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14467 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014468 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14469 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14470 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14471 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014472 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14473 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14474 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14475 msm_routing_put_audio_mixer),
14476 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14477 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14478 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14479 msm_routing_put_audio_mixer),
14480 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14481 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14482 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14483 msm_routing_put_audio_mixer),
14484 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14485 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14486 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14487 msm_routing_put_audio_mixer),
14488 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14489 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14490 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14491 msm_routing_put_audio_mixer),
14492 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14493 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14494 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14495 msm_routing_put_audio_mixer),
14496 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14497 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14498 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14499 msm_routing_put_audio_mixer),
14500 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14501 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14502 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14503 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014504 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14505 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14506 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14507 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070014508};
14509
14510static const struct snd_kcontrol_new mmul21_mixer_controls[] = {
14511 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14512 MSM_BACKEND_DAI_AUXPCM_TX,
14513 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14514 msm_routing_put_audio_mixer),
14515 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14516 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
14517 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14518 msm_routing_put_audio_mixer),
14519 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14520 MSM_BACKEND_DAI_PRI_TDM_TX_0,
14521 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14522 msm_routing_put_audio_mixer),
14523 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14524 MSM_BACKEND_DAI_PRI_TDM_TX_1,
14525 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14526 msm_routing_put_audio_mixer),
14527 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14528 MSM_BACKEND_DAI_PRI_TDM_TX_2,
14529 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14530 msm_routing_put_audio_mixer),
14531 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14532 MSM_BACKEND_DAI_PRI_TDM_TX_3,
14533 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14534 msm_routing_put_audio_mixer),
14535 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14536 MSM_BACKEND_DAI_SEC_TDM_TX_0,
14537 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14538 msm_routing_put_audio_mixer),
14539 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14540 MSM_BACKEND_DAI_SEC_TDM_TX_1,
14541 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14542 msm_routing_put_audio_mixer),
14543 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14544 MSM_BACKEND_DAI_SEC_TDM_TX_2,
14545 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14546 msm_routing_put_audio_mixer),
14547 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14548 MSM_BACKEND_DAI_SEC_TDM_TX_3,
14549 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14550 msm_routing_put_audio_mixer),
14551 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14552 MSM_BACKEND_DAI_TERT_TDM_TX_0,
14553 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14554 msm_routing_put_audio_mixer),
14555 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14556 MSM_BACKEND_DAI_TERT_TDM_TX_1,
14557 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14558 msm_routing_put_audio_mixer),
14559 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14560 MSM_BACKEND_DAI_TERT_TDM_TX_2,
14561 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14562 msm_routing_put_audio_mixer),
14563 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14564 MSM_BACKEND_DAI_TERT_TDM_TX_3,
14565 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14566 msm_routing_put_audio_mixer),
14567 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14568 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
14569 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14570 msm_routing_put_audio_mixer),
14571 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14572 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
14573 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14574 msm_routing_put_audio_mixer),
14575 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14576 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
14577 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14578 msm_routing_put_audio_mixer),
14579 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14580 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
14581 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14582 msm_routing_put_audio_mixer),
14583 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14584 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
14585 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14586 msm_routing_put_audio_mixer),
14587 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14588 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
14589 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14590 msm_routing_put_audio_mixer),
14591 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14592 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
14593 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14594 msm_routing_put_audio_mixer),
14595 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14596 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
14597 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14598 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014599 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
14600 MSM_BACKEND_DAI_SEN_TDM_TX_0,
14601 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14602 msm_routing_put_audio_mixer),
14603 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
14604 MSM_BACKEND_DAI_SEN_TDM_TX_1,
14605 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14606 msm_routing_put_audio_mixer),
14607 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
14608 MSM_BACKEND_DAI_SEN_TDM_TX_2,
14609 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14610 msm_routing_put_audio_mixer),
14611 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
14612 MSM_BACKEND_DAI_SEN_TDM_TX_3,
14613 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14614 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014615 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014616 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14617 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014618 msm_routing_put_audio_mixer),
14619 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014620 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14621 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014622 msm_routing_put_audio_mixer),
14623 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014624 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14625 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014626 msm_routing_put_audio_mixer),
14627 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014628 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14629 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014630 msm_routing_put_audio_mixer),
14631 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014632 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14633 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014634 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014635 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14636 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14637 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14638 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014639 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014640 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14641 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14642 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014643 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014644 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14645 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14646 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014647 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014648 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14649 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14650 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014651 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014652 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14653 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14654 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014655 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014656 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14657 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14658 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014659 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014660 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14661 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14662 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014663 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14664 MSM_BACKEND_DAI_PRI_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014665 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020014666 msm_routing_put_audio_mixer),
14667 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14668 MSM_BACKEND_DAI_SEC_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014669 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020014670 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014671 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14672 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14673 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14674 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014675};
14676
Derek Chenb097d922019-07-31 17:28:02 -070014677static const struct snd_kcontrol_new mmul22_mixer_controls[] = {
14678 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14679 MSM_BACKEND_DAI_PRI_TDM_TX_0,
14680 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14681 msm_routing_put_audio_mixer),
14682 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14683 MSM_BACKEND_DAI_PRI_TDM_TX_1,
14684 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14685 msm_routing_put_audio_mixer),
14686 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14687 MSM_BACKEND_DAI_PRI_TDM_TX_2,
14688 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14689 msm_routing_put_audio_mixer),
14690 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14691 MSM_BACKEND_DAI_PRI_TDM_TX_3,
14692 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14693 msm_routing_put_audio_mixer),
14694 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14695 MSM_BACKEND_DAI_SEC_TDM_TX_0,
14696 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14697 msm_routing_put_audio_mixer),
14698 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14699 MSM_BACKEND_DAI_SEC_TDM_TX_1,
14700 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14701 msm_routing_put_audio_mixer),
14702 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14703 MSM_BACKEND_DAI_SEC_TDM_TX_2,
14704 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14705 msm_routing_put_audio_mixer),
14706 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14707 MSM_BACKEND_DAI_SEC_TDM_TX_3,
14708 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14709 msm_routing_put_audio_mixer),
14710 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14711 MSM_BACKEND_DAI_TERT_TDM_TX_0,
14712 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14713 msm_routing_put_audio_mixer),
14714 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14715 MSM_BACKEND_DAI_TERT_TDM_TX_1,
14716 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14717 msm_routing_put_audio_mixer),
14718 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14719 MSM_BACKEND_DAI_TERT_TDM_TX_2,
14720 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14721 msm_routing_put_audio_mixer),
14722 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14723 MSM_BACKEND_DAI_TERT_TDM_TX_3,
14724 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14725 msm_routing_put_audio_mixer),
14726 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14727 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
14728 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14729 msm_routing_put_audio_mixer),
14730 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14731 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
14732 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14733 msm_routing_put_audio_mixer),
14734 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14735 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
14736 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14737 msm_routing_put_audio_mixer),
14738 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14739 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
14740 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14741 msm_routing_put_audio_mixer),
14742 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14743 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
14744 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14745 msm_routing_put_audio_mixer),
14746 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14747 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
14748 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14749 msm_routing_put_audio_mixer),
14750 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14751 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
14752 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14753 msm_routing_put_audio_mixer),
14754 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14755 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
14756 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14757 msm_routing_put_audio_mixer),
14758};
14759
Surendar Karkac1cde372018-08-14 18:56:24 +053014760static const struct snd_kcontrol_new mmul27_mixer_controls[] = {
14761 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14762 MSM_BACKEND_DAI_SLIMBUS_0_TX,
14763 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14764 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014765 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14766 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14767 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14768 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053014769 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
14770 MSM_BACKEND_DAI_SLIMBUS_6_TX,
14771 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14772 msm_routing_put_audio_mixer),
14773 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14774 MSM_BACKEND_DAI_SLIMBUS_7_TX,
14775 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14776 msm_routing_put_audio_mixer),
14777 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14778 MSM_BACKEND_DAI_PRI_MI2S_TX,
14779 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14780 msm_routing_put_audio_mixer),
14781 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14782 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
14783 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14784 msm_routing_put_audio_mixer),
14785 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14786 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14787 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14788 msm_routing_put_audio_mixer),
14789 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14790 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
14791 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14792 msm_routing_put_audio_mixer),
14793 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14794 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
14795 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14796 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014797 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
14798 MSM_BACKEND_DAI_SENARY_MI2S_TX,
14799 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14800 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053014801 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14802 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14803 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14804 msm_routing_put_audio_mixer),
14805 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14806 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14807 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14808 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053014809 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14810 MSM_BACKEND_DAI_SLIMBUS_9_TX,
14811 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14812 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014813 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14814 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14815 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14816 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053014817};
14818
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014819static const struct snd_kcontrol_new mmul28_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014820 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14821 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014822 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14823 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014824 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14825 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14826 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014828 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14829 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014830 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014832 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14833 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014834 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14835 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014836 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14837 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014838 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14839 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014840 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14841 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014842 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14843 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014844 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14845 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014846 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14847 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014848 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
14849 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014850 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14851 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014852 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
14853 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014854 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14855 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010014856 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14857 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
14858 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14859 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080014860 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14861 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14862 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14863 msm_routing_put_audio_mixer),
14864 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14865 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053014866 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
Meng Wang5c4bab72018-04-25 10:40:01 +080014867 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014868 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14869 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14870 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14871 msm_routing_put_audio_mixer),
14872 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14873 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14874 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14875 msm_routing_put_audio_mixer),
14876 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14877 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14878 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14879 msm_routing_put_audio_mixer),
14880 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14881 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14882 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14883 msm_routing_put_audio_mixer),
14884 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14885 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14886 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14887 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014888 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14889 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14890 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14891 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014892 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14893 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14894 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
14895 msm_routing_get_audio_mixer,
14896 msm_routing_put_audio_mixer),
14897 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14898 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14899 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
14900 msm_routing_get_audio_mixer,
14901 msm_routing_put_audio_mixer),
14902 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14903 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14904 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
14905 msm_routing_get_audio_mixer,
14906 msm_routing_put_audio_mixer),
14907 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14908 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14909 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
14910 msm_routing_get_audio_mixer,
14911 msm_routing_put_audio_mixer),
14912 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14913 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14914 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
14915 msm_routing_get_audio_mixer,
14916 msm_routing_put_audio_mixer),
14917 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14918 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14919 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
14920 msm_routing_get_audio_mixer,
14921 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014922 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14923 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14924 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14925 msm_routing_put_audio_mixer),
14926 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14927 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14928 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14929 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014930 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14931 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14932 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14933 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014934};
14935
14936static const struct snd_kcontrol_new mmul29_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014937 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14938 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014939 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14940 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014941 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14942 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14943 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14944 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014945 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14946 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014947 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14948 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014949 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14950 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014951 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14952 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014953 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14954 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014955 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14956 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014957 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14958 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014959 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14960 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014961 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14962 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014963 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14964 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014965 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
14966 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014967 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014969 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
14970 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014971 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14972 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010014973 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14974 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
14975 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14976 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080014977 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14978 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14979 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14980 msm_routing_put_audio_mixer),
14981 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14982 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
14983 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14984 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014985 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14986 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14987 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14988 msm_routing_put_audio_mixer),
14989 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14990 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14991 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14992 msm_routing_put_audio_mixer),
14993 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14994 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14995 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14996 msm_routing_put_audio_mixer),
14997 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14998 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14999 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15000 msm_routing_put_audio_mixer),
15001 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
15002 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
15003 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15004 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080015005 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
15006 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
15007 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15008 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053015009 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
15010 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
15011 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15012 msm_routing_get_audio_mixer,
15013 msm_routing_put_audio_mixer),
15014 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
15015 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
15016 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15017 msm_routing_get_audio_mixer,
15018 msm_routing_put_audio_mixer),
15019 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
15020 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
15021 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15022 msm_routing_get_audio_mixer,
15023 msm_routing_put_audio_mixer),
15024 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
15025 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
15026 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15027 msm_routing_get_audio_mixer,
15028 msm_routing_put_audio_mixer),
15029 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
15030 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
15031 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15032 msm_routing_get_audio_mixer,
15033 msm_routing_put_audio_mixer),
15034 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
15035 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
15036 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15037 msm_routing_get_audio_mixer,
15038 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020015039 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
15040 MSM_BACKEND_DAI_PRI_SPDIF_TX,
15041 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15042 msm_routing_put_audio_mixer),
15043 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
15044 MSM_BACKEND_DAI_SEC_SPDIF_TX,
15045 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15046 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053015047 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
15048 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
15049 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15050 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015051};
15052
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053015053static const struct snd_kcontrol_new mmul30_mixer_controls[] = {
15054 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15055 MSM_BACKEND_DAI_SLIMBUS_0_TX,
15056 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15057 msm_routing_put_audio_mixer),
15058 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
15059 MSM_BACKEND_DAI_SLIMBUS_1_TX,
15060 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15061 msm_routing_put_audio_mixer),
15062 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15063 MSM_BACKEND_DAI_PRI_MI2S_TX,
15064 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15065 msm_routing_put_audio_mixer),
15066 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
15067 MSM_BACKEND_DAI_INT3_MI2S_TX,
15068 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15069 msm_routing_put_audio_mixer),
15070 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15071 MSM_BACKEND_DAI_INT_FM_TX,
15072 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15073 msm_routing_put_audio_mixer),
15074 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15075 MSM_BACKEND_DAI_INT_BT_SCO_TX,
15076 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15077 msm_routing_put_audio_mixer),
15078 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15079 MSM_BACKEND_DAI_AFE_PCM_TX,
15080 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15081 msm_routing_put_audio_mixer),
15082 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
15083 MSM_BACKEND_DAI_INCALL_RECORD_RX,
15084 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15085 msm_routing_put_audio_mixer),
15086 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
15087 MSM_BACKEND_DAI_INCALL_RECORD_TX,
15088 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15089 msm_routing_put_audio_mixer),
15090 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15091 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
15092 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15093 msm_routing_put_audio_mixer),
15094 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15095 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
15096 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15097 msm_routing_put_audio_mixer),
15098 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15099 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
15100 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15101 msm_routing_put_audio_mixer),
15102 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
15103 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
15104 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15105 msm_routing_put_audio_mixer),
15106 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
15107 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
15108 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15109 msm_routing_put_audio_mixer),
15110 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
15111 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
15112 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15113 msm_routing_put_audio_mixer),
15114 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
15115 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
15116 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15117 msm_routing_put_audio_mixer),
15118 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
15119 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
15120 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15121 msm_routing_put_audio_mixer),
15122 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
15123 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
15124 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15125 msm_routing_get_audio_mixer,
15126 msm_routing_put_audio_mixer),
15127 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
15128 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
15129 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15130 msm_routing_get_audio_mixer,
15131 msm_routing_put_audio_mixer),
15132 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
15133 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
15134 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15135 msm_routing_get_audio_mixer,
15136 msm_routing_put_audio_mixer),
15137 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
15138 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
15139 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15140 msm_routing_get_audio_mixer,
15141 msm_routing_put_audio_mixer),
15142 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
15143 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
15144 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15145 msm_routing_get_audio_mixer,
15146 msm_routing_put_audio_mixer),
15147 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
15148 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
15149 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15150 msm_routing_get_audio_mixer,
15151 msm_routing_put_audio_mixer),
15152 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
15153 MSM_BACKEND_DAI_PRI_SPDIF_TX,
15154 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15155 msm_routing_put_audio_mixer),
15156 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
15157 MSM_BACKEND_DAI_SEC_SPDIF_TX,
15158 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15159 msm_routing_put_audio_mixer),
15160 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
15161 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
15162 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15163 msm_routing_put_audio_mixer),
15164};
15165
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015166static const struct snd_kcontrol_new pri_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015167 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15168 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015169 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15170 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015171 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15172 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015173 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15174 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015175 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15176 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015177 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15178 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015179 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15180 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015181 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15182 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015183 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15184 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015185 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15186 msm_routing_put_voice_mixer),
15187};
15188
15189static const struct snd_kcontrol_new sec_i2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015190 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15191 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015192 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15193 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015194 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15195 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015196 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15197 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015198 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15199 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015200 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15201 msm_routing_put_voice_mixer),
15202};
15203
15204static const struct snd_kcontrol_new sec_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015205 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15206 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015207 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15208 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015209 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15210 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
15211 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15212 msm_routing_put_voice_mixer),
15213 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15214 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
15215 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15216 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015217 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15218 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015219 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15220 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015221 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15222 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015223 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15224 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015225 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15226 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015227 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15228 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015229 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15230 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015231 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15232 msm_routing_put_voice_mixer),
15233};
15234
15235static const struct snd_kcontrol_new slimbus_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015236 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15237 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015238 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15239 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015240 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15241 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015242 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15243 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015244 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15245 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015246 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15247 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015248 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15249 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015250 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15251 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015252 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15253 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015254 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15255 msm_routing_put_voice_mixer),
15256};
15257
15258static const struct snd_kcontrol_new slimbus_6_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015259 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15260MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015261 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15262 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015263 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15264MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015265 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15266 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015267 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15268MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015269 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15270 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015271 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15272MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015273 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15274 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015275 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15276MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015277 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15278 msm_routing_put_voice_mixer),
15279};
15280
15281static const struct snd_kcontrol_new usb_audio_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015282 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15283 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015284 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15285 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015286 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15287 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015288 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15289 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015290 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15291 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015292 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15293 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015294 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15295 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015296 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15297 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015298 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15299 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015300 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15301 msm_routing_put_voice_mixer),
15302};
15303
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015304static const struct snd_kcontrol_new display_port_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015305 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15306MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015307 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15308 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015309 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15310MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015311 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15312 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015313 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15314MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015315 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15316 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015317 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15318MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015319 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15320 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015321 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15322MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015323 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15324 msm_routing_put_voice_mixer),
15325};
15326
Karthikeyan Mani57550082018-05-03 18:43:58 -070015327static const struct snd_kcontrol_new display_port_rx1_voice_mixer_controls[] = {
15328 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15329 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15330 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15331 msm_routing_put_voice_mixer),
15332 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15333 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15334 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15335 msm_routing_put_voice_mixer),
15336 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15337 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15338 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15339 msm_routing_put_voice_mixer),
15340 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15341 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15342 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15343 msm_routing_put_voice_mixer),
15344 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15345 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15346 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15347 msm_routing_put_voice_mixer),
15348};
15349
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015350static const struct snd_kcontrol_new bt_sco_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015351 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15352 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015353 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15354 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015355 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15356 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015357 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15358 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015359 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15360 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015361 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15362 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015363 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15364 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015365 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15366 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015367 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15368 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015369 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15370 msm_routing_put_voice_mixer),
15371};
15372
15373static const struct snd_kcontrol_new mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015374 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15375 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015376 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15377 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015378 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15379 MSM_BACKEND_DAI_MI2S_RX,
15380 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15381 msm_routing_put_voice_mixer),
15382 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15383 MSM_BACKEND_DAI_MI2S_RX,
15384 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15385 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015386 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15387 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015388 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15389 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015390 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15391 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015392 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15393 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015394 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15395 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015396 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15397 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015398 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15399 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015400 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15401 msm_routing_put_voice_mixer),
15402};
15403
15404static const struct snd_kcontrol_new pri_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015405 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015406 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015407 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15408 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015409 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15410 MSM_BACKEND_DAI_PRI_MI2S_RX,
15411 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15412 msm_routing_put_voice_mixer),
15413 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15414 MSM_BACKEND_DAI_PRI_MI2S_RX,
15415 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15416 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015417 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015418 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015419 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15420 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015421 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015422 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015423 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15424 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015425 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015426 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015427 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15428 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015429 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015430 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015431 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15432 msm_routing_put_voice_mixer),
15433};
15434
15435static const struct snd_kcontrol_new int0_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015436 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15437MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015438 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15439 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015440 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15441MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015442 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15443 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015444 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15445MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015446 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15447 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015448 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15449MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015450 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15451 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015452 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15453MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015454 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15455 msm_routing_put_voice_mixer),
15456};
15457
15458static const struct snd_kcontrol_new int4_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015459 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15460 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015461 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15462 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015463 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15464 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015465 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15466 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015467 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15468 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015469 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15470 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015471 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15472 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015473 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15474 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015475 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15476 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015477 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15478 msm_routing_put_voice_mixer),
15479};
15480
15481static const struct snd_kcontrol_new tert_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015482 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15483 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015484 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15485 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015486 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15487 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
15488 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15489 msm_routing_put_voice_mixer),
15490 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15491 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
15492 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15493 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015494 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15495 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015496 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15497 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015498 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15499 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015500 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15501 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015502 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15503 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015504 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15505 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015506 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15507 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015508 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15509 msm_routing_put_voice_mixer),
15510};
15511
15512static const struct snd_kcontrol_new quat_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015513 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15514 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015515 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15516 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015517 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15518 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
15519 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15520 msm_routing_put_voice_mixer),
15521 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15522 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
15523 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15524 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015525 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15526 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015527 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15528 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015529 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15530 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015531 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15532 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015533 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15534 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015535 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15536 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015537 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15538 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015539 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15540 msm_routing_put_voice_mixer),
15541};
15542
15543static const struct snd_kcontrol_new quin_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015544 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15545 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015546 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15547 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015548 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15549 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
15550 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15551 msm_routing_put_voice_stub_mixer),
15552 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15553 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
15554 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15555 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015556 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15557 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015558 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15559 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015560 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15561 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015562 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15563 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015564 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15565 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015566 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15567 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015568 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15569 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015570 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15571 msm_routing_put_voice_mixer),
15572};
15573
Karthikeyan Manic3700752019-03-11 18:33:53 -070015574static const struct snd_kcontrol_new sen_mi2s_rx_voice_mixer_controls[] = {
15575 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15576 MSM_BACKEND_DAI_SENARY_MI2S_RX,
15577 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15578 msm_routing_put_voice_mixer),
15579 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15580 MSM_BACKEND_DAI_SENARY_MI2S_RX,
15581 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15582 msm_routing_put_voice_mixer),
15583 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15584 MSM_BACKEND_DAI_SENARY_MI2S_RX,
15585 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15586 msm_routing_put_voice_mixer),
15587 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15588 MSM_BACKEND_DAI_SENARY_MI2S_RX,
15589 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15590 msm_routing_put_voice_mixer),
15591 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15592 MSM_BACKEND_DAI_SENARY_MI2S_RX,
15593 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15594 msm_routing_put_voice_mixer),
15595};
15596
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015597static const struct snd_kcontrol_new afe_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015598 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15599 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015600 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15601 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015602 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15603 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015604 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15605 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015606 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15607 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015608 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15609 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015610 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15611 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015612 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15613 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015614 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15615 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015616 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15617 msm_routing_put_voice_mixer),
15618};
15619
15620static const struct snd_kcontrol_new aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015621 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15622 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015623 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15624 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015625 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15626 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015627 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15628 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015629 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15630 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015631 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15632 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015633 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15634 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015635 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15636 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015637 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15638 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015639 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15640 msm_routing_put_voice_mixer),
15641};
15642
15643static const struct snd_kcontrol_new sec_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015644 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15645MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015646 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15647 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015648 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15649MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015650 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15651 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015652 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15653MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015654 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15655 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015656 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15657MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015658 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15659 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015660 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15661MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015662 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15663 msm_routing_put_voice_mixer),
15664};
15665
15666static const struct snd_kcontrol_new tert_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015667 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15668MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015669 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15670 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015671 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15672MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015673 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15674 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015675 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15676MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015677 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15678 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015679 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15680MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015681 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15682 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015683 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15684MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015685 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15686 msm_routing_put_voice_mixer),
15687};
15688
15689static const struct snd_kcontrol_new quat_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015690 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15691MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015692 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15693 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015694 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15695MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015696 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15697 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015698 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15699MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015700 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15701 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015702 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15703MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015704 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15705 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015706 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15707MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015708 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15709 msm_routing_put_voice_mixer),
15710};
15711
Rohit Kumara5077932017-09-10 22:05:05 +053015712static const struct snd_kcontrol_new quin_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015713 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15714MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015715 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15716 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015717 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15718MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015719 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15720 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015721 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15722MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015723 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15724 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015725 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15726MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015727 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15728 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015729 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15730MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015731 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15732 msm_routing_put_voice_mixer),
15733};
15734
Karthikeyan Manic3700752019-03-11 18:33:53 -070015735static const struct snd_kcontrol_new sen_aux_pcm_rx_voice_mixer_controls[] = {
15736 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM, MSM_BACKEND_DAI_SEN_AUXPCM_RX,
15737 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15738 msm_routing_put_voice_mixer),
15739 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM, MSM_BACKEND_DAI_SEN_AUXPCM_RX,
15740 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15741 msm_routing_put_voice_mixer),
15742 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM, MSM_BACKEND_DAI_SEN_AUXPCM_RX,
15743 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15744 msm_routing_put_voice_mixer),
15745 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15746 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
15747 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15748 msm_routing_put_voice_mixer),
15749 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15750 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
15751 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15752 msm_routing_put_voice_mixer),
15753};
15754
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015755static const struct snd_kcontrol_new hdmi_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015756 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15757 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015758 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15759 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015760 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15761 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015762 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15763 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015764 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15765 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015766 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15767 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015768 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15769 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015770 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15771 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015772 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15773 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015774 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15775 msm_routing_put_voice_mixer),
15776};
15777
15778static const struct snd_kcontrol_new slimbus_7_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015779 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15780MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015781 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15782 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015783 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15784MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015785 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15786 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015787 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15788MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015789 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15790 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015791 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15792MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015793 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15794 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015795 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15796MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015797 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15798 msm_routing_put_voice_mixer),
15799};
15800
15801static const struct snd_kcontrol_new slimbus_8_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015802 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15803 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015804 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15805 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015806 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15807 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015808 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15809 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015810 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15811 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015812 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15813 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015814 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15815 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015816 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15817 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015818 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15819 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015820 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15821 msm_routing_put_voice_mixer),
15822};
15823
15824static const struct snd_kcontrol_new quat_tdm_rx_2_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015825 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15826 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015827 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15828 msm_routing_put_voice_mixer),
15829};
15830
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053015831static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_voice_mixer_controls[] = {
15832 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15833 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
15834 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15835 msm_routing_put_voice_mixer),
15836 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15837 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
15838 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15839 msm_routing_put_voice_mixer),
15840 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15841 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
15842 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15843 msm_routing_put_voice_mixer),
15844 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15845 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
15846 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15847 msm_routing_put_voice_mixer),
15848 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15849 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
15850 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15851 msm_routing_put_voice_mixer),
15852};
15853
15854static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_voice_mixer_controls[] = {
15855 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15856 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
15857 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15858 msm_routing_put_voice_mixer),
15859 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15860 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
15861 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15862 msm_routing_put_voice_mixer),
15863 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15864 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
15865 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15866 msm_routing_put_voice_mixer),
15867 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15868 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
15869 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15870 msm_routing_put_voice_mixer),
15871 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15872 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
15873 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15874 msm_routing_put_voice_mixer),
15875};
15876
Aditya Bavanari1e84a932018-06-18 19:40:08 +053015877static const struct snd_kcontrol_new rx_cdc_dma_rx_0_voice_mixer_controls[] = {
15878 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15879 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
15880 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15881 msm_routing_put_voice_mixer),
15882 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15883 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
15884 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15885 msm_routing_put_voice_mixer),
15886 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15887 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
15888 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15889 msm_routing_put_voice_mixer),
15890 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15891 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
15892 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15893 msm_routing_put_voice_mixer),
15894 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15895 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
15896 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15897 msm_routing_put_voice_mixer),
15898};
15899
15900static const struct snd_kcontrol_new rx_cdc_dma_rx_1_voice_mixer_controls[] = {
15901 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15902 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
15903 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15904 msm_routing_put_voice_mixer),
15905 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15906 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
15907 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15908 msm_routing_put_voice_mixer),
15909 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15910 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
15911 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15912 msm_routing_put_voice_mixer),
15913 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15914 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
15915 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15916 msm_routing_put_voice_mixer),
15917 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15918 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
15919 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15920 msm_routing_put_voice_mixer),
15921};
15922
15923static const struct snd_kcontrol_new rx_cdc_dma_rx_2_voice_mixer_controls[] = {
15924 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15925 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
15926 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15927 msm_routing_put_voice_mixer),
15928 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15929 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
15930 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15931 msm_routing_put_voice_mixer),
15932 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15933 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
15934 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15935 msm_routing_put_voice_mixer),
15936 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15937 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
15938 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15939 msm_routing_put_voice_mixer),
15940 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15941 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
15942 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15943 msm_routing_put_voice_mixer),
15944};
15945
15946static const struct snd_kcontrol_new rx_cdc_dma_rx_3_voice_mixer_controls[] = {
15947 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15948 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
15949 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15950 msm_routing_put_voice_mixer),
15951 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15952 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
15953 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15954 msm_routing_put_voice_mixer),
15955 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15956 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
15957 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15958 msm_routing_put_voice_mixer),
15959 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15960 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
15961 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15962 msm_routing_put_voice_mixer),
15963 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15964 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
15965 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15966 msm_routing_put_voice_mixer),
15967};
15968
15969static const struct snd_kcontrol_new rx_cdc_dma_rx_4_voice_mixer_controls[] = {
15970 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15971 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
15972 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15973 msm_routing_put_voice_mixer),
15974 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15975 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
15976 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15977 msm_routing_put_voice_mixer),
15978 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15979 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
15980 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15981 msm_routing_put_voice_mixer),
15982 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15983 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
15984 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15985 msm_routing_put_voice_mixer),
15986 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15987 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
15988 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15989 msm_routing_put_voice_mixer),
15990};
15991
15992static const struct snd_kcontrol_new rx_cdc_dma_rx_5_voice_mixer_controls[] = {
15993 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15994 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
15995 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15996 msm_routing_put_voice_mixer),
15997 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15998 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
15999 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16000 msm_routing_put_voice_mixer),
16001 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16002 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
16003 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16004 msm_routing_put_voice_mixer),
16005 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16006 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
16007 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16008 msm_routing_put_voice_mixer),
16009 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16010 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
16011 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16012 msm_routing_put_voice_mixer),
16013};
16014
16015static const struct snd_kcontrol_new rx_cdc_dma_rx_6_voice_mixer_controls[] = {
16016 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16017 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
16018 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16019 msm_routing_put_voice_mixer),
16020 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16021 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
16022 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16023 msm_routing_put_voice_mixer),
16024 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16025 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
16026 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16027 msm_routing_put_voice_mixer),
16028 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16029 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
16030 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16031 msm_routing_put_voice_mixer),
16032 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16033 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
16034 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16035 msm_routing_put_voice_mixer),
16036};
16037
16038static const struct snd_kcontrol_new rx_cdc_dma_rx_7_voice_mixer_controls[] = {
16039 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16040 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
16041 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16042 msm_routing_put_voice_mixer),
16043 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16044 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
16045 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16046 msm_routing_put_voice_mixer),
16047 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16048 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
16049 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16050 msm_routing_put_voice_mixer),
16051 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16052 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
16053 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16054 msm_routing_put_voice_mixer),
16055 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16056 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
16057 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16058 msm_routing_put_voice_mixer),
16059};
16060
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053016061static const struct snd_kcontrol_new pri_tdm_rx_0_voice_mixer_controls[] = {
16062 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16063 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16064 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16065 msm_routing_put_voice_mixer),
16066 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
16067 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16068 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16069 msm_routing_put_voice_stub_mixer),
16070 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
16071 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16072 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16073 msm_routing_put_voice_stub_mixer),
16074 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
16075 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16076 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
16077 msm_routing_put_voice_mixer),
16078 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16079 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16080 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16081 msm_routing_put_voice_mixer),
16082 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16083 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16084 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16085 msm_routing_put_voice_mixer),
16086 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16087 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16088 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16089 msm_routing_put_voice_mixer),
16090 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16091 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16092 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16093 msm_routing_put_voice_mixer),
16094};
16095
16096static const struct snd_kcontrol_new pri_tdm_rx_1_voice_mixer_controls[] = {
16097 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16098 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16099 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16100 msm_routing_put_voice_mixer),
16101 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
16102 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16103 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16104 msm_routing_put_voice_stub_mixer),
16105 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
16106 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16107 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16108 msm_routing_put_voice_stub_mixer),
16109 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
16110 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16111 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
16112 msm_routing_put_voice_mixer),
16113 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16114 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16115 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16116 msm_routing_put_voice_mixer),
16117 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16118 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16119 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16120 msm_routing_put_voice_mixer),
16121 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16122 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16123 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16124 msm_routing_put_voice_mixer),
16125 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16126 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16127 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16128 msm_routing_put_voice_mixer),
16129};
16130
16131static const struct snd_kcontrol_new pri_tdm_rx_2_voice_mixer_controls[] = {
16132 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16133 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16134 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16135 msm_routing_put_voice_mixer),
16136 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
16137 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16138 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16139 msm_routing_put_voice_stub_mixer),
16140 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
16141 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16142 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16143 msm_routing_put_voice_stub_mixer),
16144 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
16145 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16146 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
16147 msm_routing_put_voice_mixer),
16148 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16149 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16150 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16151 msm_routing_put_voice_mixer),
16152 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16153 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16154 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16155 msm_routing_put_voice_mixer),
16156 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16157 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16158 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16159 msm_routing_put_voice_mixer),
16160 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16161 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16162 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16163 msm_routing_put_voice_mixer),
16164};
16165
16166static const struct snd_kcontrol_new pri_tdm_rx_3_voice_mixer_controls[] = {
16167 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16168 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16169 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16170 msm_routing_put_voice_mixer),
16171 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
16172 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16173 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16174 msm_routing_put_voice_stub_mixer),
16175 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
16176 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16177 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16178 msm_routing_put_voice_stub_mixer),
16179 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
16180 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16181 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
16182 msm_routing_put_voice_mixer),
16183 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16184 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16185 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16186 msm_routing_put_voice_mixer),
16187 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16188 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16189 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16190 msm_routing_put_voice_mixer),
16191 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16192 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16193 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16194 msm_routing_put_voice_mixer),
16195 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16196 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16197 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16198 msm_routing_put_voice_mixer),
16199};
16200
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016201static const struct snd_kcontrol_new stub_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016202 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16203 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016204 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16205 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016206 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16207 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016208 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16209 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016210};
16211
16212static const struct snd_kcontrol_new slimbus_1_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016213 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16214 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016215 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16216 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016217 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16218 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016219 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16220 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016221};
16222
16223static const struct snd_kcontrol_new slimbus_3_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016224 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16225 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016226 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16227 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016228 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16229 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016230 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16231 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016232};
16233
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016234static const struct snd_kcontrol_new tx_voicemmode1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016235 SOC_DOUBLE_EXT("PRI_TX_MMode1", SND_SOC_NOPM,
16236 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016237 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16238 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016239 SOC_DOUBLE_EXT("MI2S_TX_MMode1", SND_SOC_NOPM,
16240 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016241 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16242 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016243 SOC_DOUBLE_EXT("SLIM_0_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016244 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16245 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016246 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016247 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16248 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016249 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016250 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
16251 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016252 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016253 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
16254 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016255 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016256 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16257 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016258 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016259 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16260 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016261 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016262 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16263 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016264 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053016265 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16266 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016267 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
16268 MSM_BACKEND_DAI_SEN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16269 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016270 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016271 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
16272 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang93b92622019-07-24 14:45:19 +080016273 SOC_DOUBLE_EXT("SEC_MI2S_TX_MMode1", SND_SOC_NOPM,
16274 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
16275 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016276 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016277 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
16278 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016279 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016280 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
16281 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016282 SOC_DOUBLE_EXT("SLIM_7_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016283 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16284 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016285 SOC_DOUBLE_EXT("SLIM_8_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016286 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16287 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016288 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode1", SND_SOC_NOPM,
16289 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016290 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16291 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016292 SOC_DOUBLE_EXT("QUAT_TDM_TX_0_MMode1", SND_SOC_NOPM,
Meng Wang93b92622019-07-24 14:45:19 +080016293 MSM_BACKEND_DAI_QUAT_TDM_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016294 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016295 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
16296 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
16297 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16298 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
16299 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
16300 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016301 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
16302 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
16303 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016304 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
16305 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
16306 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16307 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
16308 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
16309 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16310 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
16311 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
16312 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16313 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode1", SND_SOC_NOPM,
16314 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
16315 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16316 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode1", SND_SOC_NOPM,
16317 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE1,
16318 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16319 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode1", SND_SOC_NOPM,
16320 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE1,
16321 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e349b82018-02-23 16:34:40 +053016322 SOC_DOUBLE_EXT("QUAT_MI2S_TX_MMode1", SND_SOC_NOPM,
16323 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
16324 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16325 SOC_DOUBLE_EXT("QUIN_MI2S_TX_MMode1", SND_SOC_NOPM,
16326 MSM_BACKEND_DAI_QUINARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
16327 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Vignesh Kulothungan1572b9f2019-05-16 14:56:31 -070016328 SOC_DOUBLE_EXT("PRI_TDM_TX_3_MMode1", SND_SOC_NOPM,
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053016329 MSM_BACKEND_DAI_PRI_TDM_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
16330 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016331};
16332
16333static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016334 SOC_DOUBLE_EXT("PRI_TX_MMode2", SND_SOC_NOPM,
16335 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016336 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16337 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016338 SOC_DOUBLE_EXT("MI2S_TX_MMode2", SND_SOC_NOPM,
16339 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016340 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16341 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016342 SOC_DOUBLE_EXT("SLIM_0_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016343 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16344 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016345 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016346 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16347 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016348 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016349 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
16350 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016351 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016352 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
16353 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016354 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016355 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16356 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016357 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016358 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16359 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016360 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016361 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16362 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016363 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053016364 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16365 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016366 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
16367 MSM_BACKEND_DAI_SEN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16368 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016369 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016370 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
16371 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang93b92622019-07-24 14:45:19 +080016372 SOC_DOUBLE_EXT("SEC_MI2S_TX_MMode2", SND_SOC_NOPM,
16373 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
16374 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016375 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016376 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
16377 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016378 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016379 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
16380 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016381 SOC_DOUBLE_EXT("SLIM_7_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016382 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16383 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016384 SOC_DOUBLE_EXT("SLIM_8_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016385 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16386 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016387 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016388 MSM_BACKEND_DAI_USB_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16389 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016390 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
16391 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
16392 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16393 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
16394 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
16395 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016396 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
16397 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
16398 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016399 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
16400 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
16401 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16402 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
16403 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
16404 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16405 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
16406 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
16407 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16408 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode2", SND_SOC_NOPM,
16409 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
16410 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16411 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode2", SND_SOC_NOPM,
16412 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE2,
16413 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16414 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode2", SND_SOC_NOPM,
16415 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE2,
16416 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e349b82018-02-23 16:34:40 +053016417 SOC_DOUBLE_EXT("QUAT_MI2S_TX_MMode2", SND_SOC_NOPM,
16418 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
16419 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16420 SOC_DOUBLE_EXT("QUIN_MI2S_TX_MMode2", SND_SOC_NOPM,
16421 MSM_BACKEND_DAI_QUINARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
16422 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Vignesh Kulothungan1572b9f2019-05-16 14:56:31 -070016423 SOC_DOUBLE_EXT("PRI_TDM_TX_3_MMode2", SND_SOC_NOPM,
16424 MSM_BACKEND_DAI_PRI_TDM_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053016425 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016426};
16427
16428static const struct snd_kcontrol_new tx_voip_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016429 SOC_DOUBLE_EXT("PRI_TX_Voip", SND_SOC_NOPM,
16430 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016431 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16432 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016433 SOC_DOUBLE_EXT("MI2S_TX_Voip", SND_SOC_NOPM,
16434 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016435 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16436 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016437 SOC_DOUBLE_EXT("SLIM_0_TX_Voip", SND_SOC_NOPM,
16438 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016439 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16440 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016441 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_Voip", SND_SOC_NOPM,
16442 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016443 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16444 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016445 SOC_DOUBLE_EXT("AFE_PCM_TX_Voip", SND_SOC_NOPM,
16446 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016447 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16448 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016449 SOC_DOUBLE_EXT("AUX_PCM_TX_Voip", SND_SOC_NOPM,
16450 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016451 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16452 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016453 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16454 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016455 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16456 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016457 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16458 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016459 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16460 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016461 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16462 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016463 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16464 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016465 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16466 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053016467 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16468 msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016469 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16470 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
16471 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16472 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016473 SOC_DOUBLE_EXT("PRI_MI2S_TX_Voip", SND_SOC_NOPM,
16474 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016475 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16476 msm_routing_put_voice_mixer),
Meng Wang93b92622019-07-24 14:45:19 +080016477 SOC_DOUBLE_EXT("SEC_MI2S_TX_Voip", SND_SOC_NOPM,
16478 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
16479 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16480 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016481 SOC_DOUBLE_EXT("TERT_MI2S_TX_Voip", SND_SOC_NOPM,
16482 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016483 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16484 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016485 SOC_DOUBLE_EXT("INT3_MI2S_TX_Voip", SND_SOC_NOPM,
16486 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016487 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16488 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016489 SOC_DOUBLE_EXT("SLIM_7_TX_Voip", SND_SOC_NOPM,
16490 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016491 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16492 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016493 SOC_DOUBLE_EXT("SLIM_8_TX_Voip", SND_SOC_NOPM,
16494 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016495 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16496 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016497 SOC_DOUBLE_EXT("USB_AUDIO_TX_Voip", SND_SOC_NOPM,
16498 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016499 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16500 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016501 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
16502 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
16503 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16504 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
16505 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
16506 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016507 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
16508 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
16509 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016510 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
16511 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
16512 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16513 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
16514 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
16515 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16516 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
16517 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
16518 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16519 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_Voip", SND_SOC_NOPM,
16520 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOIP,
16521 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16522 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_Voip", SND_SOC_NOPM,
16523 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOIP,
16524 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16525 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_Voip", SND_SOC_NOPM,
16526 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOIP,
16527 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Bala Kishore Patibdc425e2018-06-15 17:38:40 +053016528 SOC_SINGLE_EXT("PRI_TDM_TX_3_Voip", MSM_BACKEND_DAI_PRI_TDM_TX_3,
16529 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16530 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016531};
16532
16533static const struct snd_kcontrol_new tx_voice_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016534 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
16535 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016536 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16537 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016538 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16539 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016540 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16541 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016542 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
16543 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016544 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16545 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016546 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
16547 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016548 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16549 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016550 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
16551 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016552 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16553 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016554 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16555 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016556 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16557 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016558 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16559 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016560 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16561 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016562 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16563 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016564 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16565 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016566 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16567 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016568 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16569 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016570 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16571 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016572 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16573 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016574 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16575 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016576 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16577 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016578 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
16579 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016580 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16581 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016582 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
16583 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016584 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16585 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016586 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
16587 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053016588 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16589 msm_routing_put_voice_stub_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016590 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
16591 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
16592 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16593 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016594 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16595 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016596 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16597 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016598 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
16599 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016600 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16601 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016602 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16603 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016604 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16605 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016606 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
16607 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016608 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16609 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016610 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16611 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016612 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16613 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016614 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16615 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
16616 1, 0, msm_routing_get_voice_stub_mixer,
16617 msm_routing_put_voice_stub_mixer),
16618 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16619 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
16620 1, 0, msm_routing_get_voice_stub_mixer,
16621 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016622 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16623 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
16624 1, 0, msm_routing_get_voice_stub_mixer,
16625 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016626 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
16627 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
16628 1, 0, msm_routing_get_voice_stub_mixer,
16629 msm_routing_put_voice_stub_mixer),
16630 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
16631 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
16632 1, 0, msm_routing_get_voice_stub_mixer,
16633 msm_routing_put_voice_stub_mixer),
16634 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
16635 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
16636 1, 0, msm_routing_get_voice_stub_mixer,
16637 msm_routing_put_voice_stub_mixer),
16638 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16639 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE_STUB,
16640 1, 0, msm_routing_get_voice_stub_mixer,
16641 msm_routing_put_voice_stub_mixer),
16642 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
16643 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE_STUB,
16644 1, 0, msm_routing_get_voice_stub_mixer,
16645 msm_routing_put_voice_stub_mixer),
16646 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
16647 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE_STUB,
16648 1, 0, msm_routing_get_voice_stub_mixer,
16649 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016650};
16651
16652static const struct snd_kcontrol_new tx_voice2_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016653 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
16654 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016655 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16656 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016657 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
16658 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016659 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16660 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016661 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
16662 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016663 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16664 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016665 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16666 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016667 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16668 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016669 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16670 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016671 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16672 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016673 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
16674 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016675 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16676 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016677 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
16678 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016679 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16680 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016681 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
16682 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053016683 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16684 msm_routing_put_voice_stub_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016685 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
16686 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
16687 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16688 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016689 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16690 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016691 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16692 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016693 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
16694 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016695 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16696 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016697 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16698 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016699 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16700 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016701 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16702 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016703 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16704 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016705 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16706 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016707 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16708 msm_routing_put_voice_stub_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070016709 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16710 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
16711 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16712 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016713 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
16714 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016715 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16716 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016717 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16718 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016719 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16720 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016721 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16722 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
16723 1, 0, msm_routing_get_voice_stub_mixer,
16724 msm_routing_put_voice_stub_mixer),
16725 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16726 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
16727 1, 0, msm_routing_get_voice_stub_mixer,
16728 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016729 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16730 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
16731 1, 0, msm_routing_get_voice_stub_mixer,
16732 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016733 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
16734 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
16735 1, 0, msm_routing_get_voice_stub_mixer,
16736 msm_routing_put_voice_stub_mixer),
16737 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
16738 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
16739 1, 0, msm_routing_get_voice_stub_mixer,
16740 msm_routing_put_voice_stub_mixer),
16741 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
16742 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
16743 1, 0, msm_routing_get_voice_stub_mixer,
16744 msm_routing_put_voice_stub_mixer),
16745 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16746 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE2_STUB,
16747 1, 0, msm_routing_get_voice_stub_mixer,
16748 msm_routing_put_voice_stub_mixer),
16749 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
16750 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE2_STUB,
16751 1, 0, msm_routing_get_voice_stub_mixer,
16752 msm_routing_put_voice_stub_mixer),
16753 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
16754 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE2_STUB,
16755 1, 0, msm_routing_get_voice_stub_mixer,
16756 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016757};
16758
16759static const struct snd_kcontrol_new tx_volte_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016760 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
16761 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016762 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16763 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016764 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
16765 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016766 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16767 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016768 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
16769 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016770 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16771 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016772 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16773 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016774 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16775 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016776 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16777 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016778 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16779 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016780 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
16781 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016782 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16783 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016784 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
16785 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016786 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16787 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016788 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
16789 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053016790 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16791 msm_routing_put_voice_stub_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016792 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
16793 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
16794 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16795 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016796 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16797 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016798 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16799 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016800 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
16801 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016802 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16803 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016804 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16805 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016806 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16807 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016808 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16809 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016810 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16811 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016812 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16813 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016814 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16815 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016816 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
16817 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016818 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16819 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016820 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16821 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016822 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16823 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016824 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16825 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
16826 1, 0, msm_routing_get_voice_stub_mixer,
16827 msm_routing_put_voice_stub_mixer),
16828 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16829 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
16830 1, 0, msm_routing_get_voice_stub_mixer,
16831 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016832 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16833 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
16834 1, 0, msm_routing_get_voice_stub_mixer,
16835 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016836 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
16837 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
16838 1, 0, msm_routing_get_voice_stub_mixer,
16839 msm_routing_put_voice_stub_mixer),
16840 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
16841 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
16842 1, 0, msm_routing_get_voice_stub_mixer,
16843 msm_routing_put_voice_stub_mixer),
16844 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
16845 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
16846 1, 0, msm_routing_get_voice_stub_mixer,
16847 msm_routing_put_voice_stub_mixer),
16848 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16849 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOLTE_STUB,
16850 1, 0, msm_routing_get_voice_stub_mixer,
16851 msm_routing_put_voice_stub_mixer),
16852 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
16853 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOLTE_STUB,
16854 1, 0, msm_routing_get_voice_stub_mixer,
16855 msm_routing_put_voice_stub_mixer),
16856 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
16857 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOLTE_STUB,
16858 1, 0, msm_routing_get_voice_stub_mixer,
16859 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016860};
16861
16862static const struct snd_kcontrol_new tx_qchat_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016863 SOC_DOUBLE_EXT("PRI_TX_QCHAT", SND_SOC_NOPM,
16864 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016865 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16866 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016867 SOC_DOUBLE_EXT("SLIM_0_TX_QCHAT", SND_SOC_NOPM,
16868 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016869 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16870 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016871 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_QCHAT", SND_SOC_NOPM,
16872 MSM_BACKEND_DAI_INT_BT_SCO_TX,
16873 MSM_FRONTEND_DAI_QCHAT, 1, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016874 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016875 SOC_DOUBLE_EXT("AFE_PCM_TX_QCHAT", SND_SOC_NOPM,
16876 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016877 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16878 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016879 SOC_DOUBLE_EXT("AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
16880 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016881 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16882 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016883 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
16884 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016885 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16886 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016887 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
16888 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016889 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16890 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016891 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
16892 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016893 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16894 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016895 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
16896 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053016897 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16898 msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016899 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
16900 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
16901 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16902 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016903 SOC_DOUBLE_EXT("MI2S_TX_QCHAT", SND_SOC_NOPM,
16904 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016905 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16906 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016907 SOC_DOUBLE_EXT("PRI_MI2S_TX_QCHAT", SND_SOC_NOPM,
16908 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016909 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16910 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016911 SOC_DOUBLE_EXT("TERT_MI2S_TX_QCHAT", SND_SOC_NOPM,
16912 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016913 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16914 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016915 SOC_DOUBLE_EXT("INT3_MI2S_TX_QCHAT", SND_SOC_NOPM,
16916 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016917 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16918 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016919 SOC_DOUBLE_EXT("SLIM_7_TX_QCHAT", SND_SOC_NOPM,
16920 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016921 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16922 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016923 SOC_DOUBLE_EXT("SLIM_8_TX_QCHAT", SND_SOC_NOPM,
16924 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016925 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16926 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016927 SOC_DOUBLE_EXT("USB_AUDIO_TX_QCHAT", SND_SOC_NOPM,
16928 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016929 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16930 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016931 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
16932 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
16933 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16934 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
16935 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
16936 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016937 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
16938 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
16939 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016940 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
16941 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
16942 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16943 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
16944 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
16945 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16946 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
16947 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
16948 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16949 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_QCHAT", SND_SOC_NOPM,
16950 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_QCHAT,
16951 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16952 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_QCHAT", SND_SOC_NOPM,
16953 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_QCHAT,
16954 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16955 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_QCHAT", SND_SOC_NOPM,
16956 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_QCHAT,
16957 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016958};
16959
16960static const struct snd_kcontrol_new int0_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016961 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16962 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016963 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16964 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016965 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16966 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016967 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16968 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016969 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16970 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016971 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16972 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016973 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16974 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016975 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16976 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016977 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16978 MSM_BACKEND_DAI_INT0_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016979 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16980 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016981 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
16982 MSM_BACKEND_DAI_INT0_MI2S_RX,
16983 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16984 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016985 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16986 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016987 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16988 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016989 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16990 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016991 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
16992 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016993 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16994 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016995 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
16996 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016997 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
16998 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016999 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
17000 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017001 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17002 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017003 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17004 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017005 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
17006 MSM_BACKEND_DAI_INT0_MI2S_RX,
17007 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
17008 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017009};
17010
17011static const struct snd_kcontrol_new int4_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017012 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17013 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017014 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17015 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017016 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17017 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017018 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17019 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017020 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17021 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017022 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17023 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017024 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17025 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017026 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17027 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017028 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17029 MSM_BACKEND_DAI_INT4_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017030 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17031 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017032 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17033 MSM_BACKEND_DAI_INT4_MI2S_RX,
17034 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17035 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017036 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17037 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017038 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17039 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017040 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17041 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017042 MSM_BACKEND_DAI_INT_FM_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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17045 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017046 MSM_BACKEND_DAI_INT_BT_SCO_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("SLIM_7_TX", SND_SOC_NOPM,
17049 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017050 MSM_BACKEND_DAI_SLIMBUS_7_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("SLIM_8_TX", SND_SOC_NOPM,
17053 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017054 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17055 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017056 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
17057 MSM_BACKEND_DAI_INT4_MI2S_RX,
17058 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
17059 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017060};
17061
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053017062static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_port_mixer_controls[] = {
17063 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17064 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
17065 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, 1, 0, msm_routing_get_port_mixer,
17066 msm_routing_put_port_mixer),
17067 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17068 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
17069 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
17070 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080017071 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17072 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
17073 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17074 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080017075 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17076 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
17077 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17078 msm_routing_put_port_mixer),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053017079};
17080
17081static const struct snd_kcontrol_new rx_cdc_dma_rx_0_port_mixer_controls[] = {
17082 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17083 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
17084 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
17085 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080017086 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17087 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
17088 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17089 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017090 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
Meng Wang3f8ba542018-12-10 14:17:10 +080017091 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
Surendar Karka3ef3d812018-09-28 18:52:35 +053017092 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
17093 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080017094 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17095 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
17096 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17097 msm_routing_put_port_mixer),
17098
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053017099};
17100
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017101static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017102 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17103 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017104 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17105 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017106 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17107 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017108 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17109 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017110 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17111 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017112 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17113 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017114 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
17115 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017116 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
17117 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017118 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17119 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017120 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17121 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017122 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17123 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017124 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17125 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017126 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17127 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017128 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17129 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017130 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
17131 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017132 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17133 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017134 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
17135 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017136 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17137 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017138 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
17139 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017140 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17141 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017142 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
17143 MSM_BACKEND_DAI_SLIMBUS_0_RX,
17144 MSM_BACKEND_DAI_SEN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17145 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017146 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17147 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017148 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17149 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017150 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17151 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017152 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17153 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017154 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17155 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017156 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17157 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017158 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17159 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017160 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17161 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017162 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17163 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017164 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17165 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017166 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17167 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017168 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17169 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017170 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17171 MSM_BACKEND_DAI_SLIMBUS_0_RX,
17172 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17173 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017174 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17175 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017176 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17177 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017178 SOC_DOUBLE_EXT("PRI_MI2S_RX", SND_SOC_NOPM,
17179 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017180 MSM_BACKEND_DAI_PRI_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17181 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017182 SOC_DOUBLE_EXT("SEC_MI2S_RX", SND_SOC_NOPM,
17183 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017184 MSM_BACKEND_DAI_SECONDARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17185 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017186 SOC_DOUBLE_EXT("TERT_MI2S_RX", SND_SOC_NOPM,
17187 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017188 MSM_BACKEND_DAI_TERTIARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17189 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017190 SOC_DOUBLE_EXT("QUAT_MI2S_RX", SND_SOC_NOPM,
17191 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017192 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17193 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017194 SOC_DOUBLE_EXT("QUIN_MI2S_RX", SND_SOC_NOPM,
17195 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Surendar Karka3ef3d812018-09-28 18:52:35 +053017196 MSM_BACKEND_DAI_QUINARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17197 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017198 SOC_DOUBLE_EXT("SEN_MI2S_RX", SND_SOC_NOPM,
17199 MSM_BACKEND_DAI_SLIMBUS_0_RX,
17200 MSM_BACKEND_DAI_SENARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17201 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017202 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
17203 MSM_BACKEND_DAI_SLIMBUS_0_RX,
17204 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
Rohit Kumara5077932017-09-10 22:05:05 +053017205 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017206};
17207
17208static const struct snd_kcontrol_new aux_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017209 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17210 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017211 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17212 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017213 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17214 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017215 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17216 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017217 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17218 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017219 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17220 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017221 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17222 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017223 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17224 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017225 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
17226 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017227 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
17228 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017229 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17230 MSM_BACKEND_DAI_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080017231 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17232 msm_routing_put_port_mixer),
Suprith Malligere Shankaregowda467f2c92019-04-19 19:35:41 +053017233 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
17234 MSM_BACKEND_DAI_AUXPCM_RX,
17235 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
17236 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017237};
17238
17239static const struct snd_kcontrol_new sec_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017240 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17241 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017242 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17243 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017244 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17245 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017246 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17247 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017248 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17249 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017250 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17251 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017252 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17253 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080017254 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17255 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017256};
17257
17258static const struct snd_kcontrol_new tert_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017259 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
17260 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017261 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17262 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017263 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17264 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017265 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17266 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017267 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17268 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017269 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17270 msm_routing_put_port_mixer),
17271};
17272
17273static const struct snd_kcontrol_new quat_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017274 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
17275 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017276 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17277 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017278 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17279 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017280 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17281 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017282 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17283 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017284 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17285 msm_routing_put_port_mixer),
17286};
17287
Rohit Kumara5077932017-09-10 22:05:05 +053017288static const struct snd_kcontrol_new quin_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017289 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
17290 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017291 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17292 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017293 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17294 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017295 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17296 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017297 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17298 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017299 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17300 msm_routing_put_port_mixer),
17301};
17302
Karthikeyan Manic3700752019-03-11 18:33:53 -070017303static const struct snd_kcontrol_new sen_auxpcm_rx_port_mixer_controls[] = {
17304 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
17305 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
17306 MSM_BACKEND_DAI_SEN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17307 msm_routing_put_port_mixer),
17308 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17309 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
17310 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17311 msm_routing_put_port_mixer),
17312 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17313 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
17314 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17315 msm_routing_put_port_mixer),
17316};
17317
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017318static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017319 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17320 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017321 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17322 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017323 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17324 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017325 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0, msm_routing_get_port_mixer,
17326 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017327 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17328 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017329 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17330 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017331 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17332 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017333 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17334 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017335 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
17336 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017337 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17338 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017339 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
17340 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017341 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17342 msm_routing_put_port_mixer),
17343};
17344
17345static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017346 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_RX", SND_SOC_NOPM,
17347 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017348 MSM_BACKEND_DAI_INT_BT_SCO_RX, 1, 0, msm_routing_get_port_mixer,
17349 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017350 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17351 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017352 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17353 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017354 SOC_DOUBLE_EXT("AFE_PCM_RX", SND_SOC_NOPM,
17355 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017356 MSM_BACKEND_DAI_AFE_PCM_RX, 1, 0, msm_routing_get_port_mixer,
17357 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017358 SOC_DOUBLE_EXT("AUX_PCM_RX", SND_SOC_NOPM,
17359 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017360 MSM_BACKEND_DAI_AUXPCM_RX, 1, 0, msm_routing_get_port_mixer,
17361 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017362 SOC_DOUBLE_EXT("SLIM_0_RX", SND_SOC_NOPM,
17363 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017364 MSM_BACKEND_DAI_SLIMBUS_0_RX, 1, 0, msm_routing_get_port_mixer,
17365 msm_routing_put_port_mixer),
17366};
17367
17368static const struct snd_kcontrol_new sbus_6_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017369 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17370 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017371 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17372 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017373 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17374 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017375 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17376 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017377 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17378 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017379 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17380 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017381 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
17382 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017383 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
17384 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017385 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17386 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017387 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17388 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017389 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17390 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017391 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17392 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017393 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17394 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017395 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17396 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017397 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17398 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017399 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17400 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017401 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17402 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017403 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17404 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017405 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17406 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017407 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17408 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017409 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17410 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017411 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17412 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017413 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17414 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017415 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17416 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017417 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
17418 MSM_BACKEND_DAI_SLIMBUS_6_RX,
17419 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
17420 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017421};
17422
17423static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017424 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17425 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017426 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17427 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017428 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17429 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017430 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17431 msm_routing_put_port_mixer),
17432};
17433
17434static const struct snd_kcontrol_new afe_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017435 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17436 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017437 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17438 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017439 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17440 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017441 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17442 msm_routing_put_port_mixer),
17443};
17444
17445
17446static const struct snd_kcontrol_new hdmi_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017447 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17448 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017449 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17450 msm_routing_put_port_mixer),
17451};
17452
17453static const struct snd_kcontrol_new display_port_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017454 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17455 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017456 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17457 msm_routing_put_port_mixer),
17458};
17459
Karthikeyan Mani57550082018-05-03 18:43:58 -070017460static const struct snd_kcontrol_new display_port_rx1_port_mixer_controls[] = {
17461 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17462 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
17463 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17464 msm_routing_put_port_mixer),
17465};
17466
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017467static const struct snd_kcontrol_new sec_i2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017468 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17469 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017470 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17471 msm_routing_put_port_mixer),
17472};
17473
17474static const struct snd_kcontrol_new mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017475 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17476 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017477 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17478 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017479 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17480 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017481 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17482 msm_routing_put_port_mixer),
17483};
17484
17485static const struct snd_kcontrol_new primary_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017486 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17487 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017488 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17489 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017490 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17491 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017492 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17493 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017494 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17495 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017496 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17497 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017498 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17499 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017500 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17501 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017502 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17503 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017504 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17505 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017506 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17507 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017508 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17509 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017510 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17511 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017512 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17513 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017514 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17515 MSM_BACKEND_DAI_PRI_MI2S_RX,
17516 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17517 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017518 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17519 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017520 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17521 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017522 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17523 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017524 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17525 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017526 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17527 MSM_BACKEND_DAI_PRI_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080017528 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17529 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017530};
17531
17532static const struct snd_kcontrol_new usb_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017533 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
17534 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017535 MSM_BACKEND_DAI_USB_TX, 1, 0, msm_routing_get_port_mixer,
17536 msm_routing_put_port_mixer),
17537};
17538
17539static const struct snd_kcontrol_new quat_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017540 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17541 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017542 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17543 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017544 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17545 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017546 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17547 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017548 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17549 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017550 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17551 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017552 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17553 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017554 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17555 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017556 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17557 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017558 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17559 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017560 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17561 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017562 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17563 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017564 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17565 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017566 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17567 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017568 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17569 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017570 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17571 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017572 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17573 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
17574 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17575 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017576 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17577 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017578 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17579 msm_routing_put_port_mixer),
17580};
17581
Rohit Kumara5077932017-09-10 22:05:05 +053017582static const struct snd_kcontrol_new quin_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017583 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17584 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017585 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17586 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017587 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17588 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017589 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17590 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017591 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17592 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017593 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17594 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017595 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17596 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017597 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17598 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017599 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17600 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017601 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17602 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017603 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17604 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
17605 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17606 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017607 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17608 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017609 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17610 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017611 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17612 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017613 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17614 msm_routing_put_port_mixer),
17615};
17616
Karthikeyan Manic3700752019-03-11 18:33:53 -070017617static const struct snd_kcontrol_new sen_mi2s_rx_port_mixer_controls[] = {
17618 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17619 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17620 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17621 msm_routing_put_port_mixer),
17622 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17623 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17624 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17625 msm_routing_put_port_mixer),
17626 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17627 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17628 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17629 msm_routing_put_port_mixer),
17630 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17631 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17632 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17633 msm_routing_put_port_mixer),
17634 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17635 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17636 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17637 msm_routing_put_port_mixer),
17638 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17639 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17640 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17641 msm_routing_put_port_mixer),
17642 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17643 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17644 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17645 msm_routing_put_port_mixer),
17646 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17647 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17648 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17649 msm_routing_put_port_mixer),
17650};
17651
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017652static const struct snd_kcontrol_new pri_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017653 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17654 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017655 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
17656 msm_routing_get_port_mixer,
17657 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017658 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17659 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017660 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
17661 msm_routing_get_port_mixer,
17662 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017663 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17664 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017665 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
17666 msm_routing_get_port_mixer,
17667 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017668 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17669 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017670 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
17671 msm_routing_get_port_mixer,
17672 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017673 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17674 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017675 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
17676 msm_routing_get_port_mixer,
17677 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017678 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17679 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017680 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
17681 msm_routing_get_port_mixer,
17682 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017683 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17684 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017685 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
17686 msm_routing_get_port_mixer,
17687 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017688 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17689 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017690 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
17691 msm_routing_get_port_mixer,
17692 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017693 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
17694 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017695 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
17696 msm_routing_get_port_mixer,
17697 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017698 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
17699 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017700 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
17701 msm_routing_get_port_mixer,
17702 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017703 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
17704 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017705 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
17706 msm_routing_get_port_mixer,
17707 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017708 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
17709 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017710 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
17711 msm_routing_get_port_mixer,
17712 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017713 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
17714 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017715 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
17716 msm_routing_get_port_mixer,
17717 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017718 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
17719 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017720 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
17721 msm_routing_get_port_mixer,
17722 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017723 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
17724 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017725 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
17726 msm_routing_get_port_mixer,
17727 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017728 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
17729 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017730 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
17731 msm_routing_get_port_mixer,
17732 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017733 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17734 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017735 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
17736 msm_routing_get_port_mixer,
17737 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017738 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
17739 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017740 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
17741 msm_routing_get_port_mixer,
17742 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017743 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
17744 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017745 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
17746 msm_routing_get_port_mixer,
17747 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017748 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
17749 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017750 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
17751 msm_routing_get_port_mixer,
17752 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017753 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
17754 MSM_BACKEND_DAI_PRI_TDM_RX_0,
17755 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
17756 msm_routing_get_port_mixer,
17757 msm_routing_put_port_mixer),
17758 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
17759 MSM_BACKEND_DAI_PRI_TDM_RX_0,
17760 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
17761 msm_routing_get_port_mixer,
17762 msm_routing_put_port_mixer),
17763 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
17764 MSM_BACKEND_DAI_PRI_TDM_RX_0,
17765 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
17766 msm_routing_get_port_mixer,
17767 msm_routing_put_port_mixer),
17768 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
17769 MSM_BACKEND_DAI_PRI_TDM_RX_0,
17770 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
17771 msm_routing_get_port_mixer,
17772 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017773};
17774
17775static const struct snd_kcontrol_new pri_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017776 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17777 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017778 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
17779 msm_routing_get_port_mixer,
17780 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017781 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17782 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017783 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
17784 msm_routing_get_port_mixer,
17785 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017786 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17787 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017788 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
17789 msm_routing_get_port_mixer,
17790 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017791 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17792 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017793 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
17794 msm_routing_get_port_mixer,
17795 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017796 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17797 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017798 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
17799 msm_routing_get_port_mixer,
17800 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017801 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17802 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017803 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
17804 msm_routing_get_port_mixer,
17805 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017806 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17807 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017808 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
17809 msm_routing_get_port_mixer,
17810 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017811 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17812 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017813 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
17814 msm_routing_get_port_mixer,
17815 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017816 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
17817 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017818 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
17819 msm_routing_get_port_mixer,
17820 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017821 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
17822 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017823 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
17824 msm_routing_get_port_mixer,
17825 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017826 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
17827 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017828 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
17829 msm_routing_get_port_mixer,
17830 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017831 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
17832 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017833 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
17834 msm_routing_get_port_mixer,
17835 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017836 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
17837 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017838 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
17839 msm_routing_get_port_mixer,
17840 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017841 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
17842 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017843 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
17844 msm_routing_get_port_mixer,
17845 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017846 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
17847 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017848 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
17849 msm_routing_get_port_mixer,
17850 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017851 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
17852 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017853 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
17854 msm_routing_get_port_mixer,
17855 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017856 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17857 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053017858 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
17859 msm_routing_get_port_mixer,
17860 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017861 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
17862 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053017863 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
17864 msm_routing_get_port_mixer,
17865 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017866 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
17867 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053017868 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
17869 msm_routing_get_port_mixer,
17870 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017871 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
17872 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053017873 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
17874 msm_routing_get_port_mixer,
17875 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017876 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
17877 MSM_BACKEND_DAI_PRI_TDM_RX_1,
17878 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
17879 msm_routing_get_port_mixer,
17880 msm_routing_put_port_mixer),
17881 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
17882 MSM_BACKEND_DAI_PRI_TDM_RX_1,
17883 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
17884 msm_routing_get_port_mixer,
17885 msm_routing_put_port_mixer),
17886 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
17887 MSM_BACKEND_DAI_PRI_TDM_RX_1,
17888 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
17889 msm_routing_get_port_mixer,
17890 msm_routing_put_port_mixer),
17891 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
17892 MSM_BACKEND_DAI_PRI_TDM_RX_1,
17893 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
17894 msm_routing_get_port_mixer,
17895 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017896};
17897
17898static const struct snd_kcontrol_new pri_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017899 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17900 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017901 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
17902 msm_routing_get_port_mixer,
17903 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017904 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17905 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017906 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
17907 msm_routing_get_port_mixer,
17908 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017909 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17910 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017911 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
17912 msm_routing_get_port_mixer,
17913 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017914 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17915 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017916 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
17917 msm_routing_get_port_mixer,
17918 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017919 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17920 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017921 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
17922 msm_routing_get_port_mixer,
17923 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017924 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17925 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017926 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
17927 msm_routing_get_port_mixer,
17928 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017929 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17930 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017931 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
17932 msm_routing_get_port_mixer,
17933 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017934 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17935 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017936 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
17937 msm_routing_get_port_mixer,
17938 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017939 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
17940 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017941 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
17942 msm_routing_get_port_mixer,
17943 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017944 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
17945 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017946 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
17947 msm_routing_get_port_mixer,
17948 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017949 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
17950 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017951 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
17952 msm_routing_get_port_mixer,
17953 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017954 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
17955 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017956 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
17957 msm_routing_get_port_mixer,
17958 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017959 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
17960 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017961 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
17962 msm_routing_get_port_mixer,
17963 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017964 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
17965 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017966 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
17967 msm_routing_get_port_mixer,
17968 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017969 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
17970 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017971 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
17972 msm_routing_get_port_mixer,
17973 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017974 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
17975 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017976 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
17977 msm_routing_get_port_mixer,
17978 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017979 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17980 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053017981 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
17982 msm_routing_get_port_mixer,
17983 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017984 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
17985 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053017986 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
17987 msm_routing_get_port_mixer,
17988 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017989 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
17990 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053017991 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
17992 msm_routing_get_port_mixer,
17993 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017994 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
17995 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053017996 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
17997 msm_routing_get_port_mixer,
17998 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017999 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18000 MSM_BACKEND_DAI_PRI_TDM_RX_2,
18001 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18002 msm_routing_get_port_mixer,
18003 msm_routing_put_port_mixer),
18004 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18005 MSM_BACKEND_DAI_PRI_TDM_RX_2,
18006 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18007 msm_routing_get_port_mixer,
18008 msm_routing_put_port_mixer),
18009 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18010 MSM_BACKEND_DAI_PRI_TDM_RX_2,
18011 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18012 msm_routing_get_port_mixer,
18013 msm_routing_put_port_mixer),
18014 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18015 MSM_BACKEND_DAI_PRI_TDM_RX_2,
18016 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18017 msm_routing_get_port_mixer,
18018 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018019};
18020
18021static const struct snd_kcontrol_new pri_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018022 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18023 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018024 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18025 msm_routing_get_port_mixer,
18026 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018027 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18028 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018029 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18030 msm_routing_get_port_mixer,
18031 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018032 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18033 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018034 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18035 msm_routing_get_port_mixer,
18036 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018037 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18038 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018039 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18040 msm_routing_get_port_mixer,
18041 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018042 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18043 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018044 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18045 msm_routing_get_port_mixer,
18046 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018047 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18048 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018049 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18050 msm_routing_get_port_mixer,
18051 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018052 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18053 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018054 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18055 msm_routing_get_port_mixer,
18056 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018057 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18058 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018059 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18060 msm_routing_get_port_mixer,
18061 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018062 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
18063 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018064 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
18065 msm_routing_get_port_mixer,
18066 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018067 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
18068 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018069 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
18070 msm_routing_get_port_mixer,
18071 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018072 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
18073 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018074 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
18075 msm_routing_get_port_mixer,
18076 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018077 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
18078 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018079 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
18080 msm_routing_get_port_mixer,
18081 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018082 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18083 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018084 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18085 msm_routing_get_port_mixer,
18086 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018087 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18088 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018089 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18090 msm_routing_get_port_mixer,
18091 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018092 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18093 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018094 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18095 msm_routing_get_port_mixer,
18096 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018097 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18098 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018099 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18100 msm_routing_get_port_mixer,
18101 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018102 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18103 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018104 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18105 msm_routing_get_port_mixer,
18106 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018107 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18108 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018109 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18110 msm_routing_get_port_mixer,
18111 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018112 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18113 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018114 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18115 msm_routing_get_port_mixer,
18116 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018117 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18118 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018119 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18120 msm_routing_get_port_mixer,
18121 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018122 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18123 MSM_BACKEND_DAI_PRI_TDM_RX_3,
18124 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18125 msm_routing_get_port_mixer,
18126 msm_routing_put_port_mixer),
18127 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18128 MSM_BACKEND_DAI_PRI_TDM_RX_3,
18129 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18130 msm_routing_get_port_mixer,
18131 msm_routing_put_port_mixer),
18132 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18133 MSM_BACKEND_DAI_PRI_TDM_RX_3,
18134 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18135 msm_routing_get_port_mixer,
18136 msm_routing_put_port_mixer),
18137 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18138 MSM_BACKEND_DAI_PRI_TDM_RX_3,
18139 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18140 msm_routing_get_port_mixer,
18141 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018142};
18143
18144static const struct snd_kcontrol_new sec_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018145 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18146 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018147 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18148 msm_routing_get_port_mixer,
18149 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018150 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18151 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018152 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18153 msm_routing_get_port_mixer,
18154 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018155 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18156 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018157 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18158 msm_routing_get_port_mixer,
18159 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018160 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18161 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018162 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18163 msm_routing_get_port_mixer,
18164 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018165 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18166 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018167 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18168 msm_routing_get_port_mixer,
18169 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018170 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18171 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018172 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18173 msm_routing_get_port_mixer,
18174 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018175 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18176 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018177 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18178 msm_routing_get_port_mixer,
18179 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018180 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18181 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018182 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18183 msm_routing_get_port_mixer,
18184 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018185 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
18186 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018187 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
18188 msm_routing_get_port_mixer,
18189 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018190 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
18191 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018192 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
18193 msm_routing_get_port_mixer,
18194 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018195 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
18196 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018197 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
18198 msm_routing_get_port_mixer,
18199 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018200 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
18201 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018202 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
18203 msm_routing_get_port_mixer,
18204 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018205 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18206 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018207 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18208 msm_routing_get_port_mixer,
18209 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018210 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18211 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018212 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18213 msm_routing_get_port_mixer,
18214 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018215 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18216 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018217 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18218 msm_routing_get_port_mixer,
18219 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018220 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18221 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018222 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18223 msm_routing_get_port_mixer,
18224 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018225 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18226 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018227 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18228 msm_routing_get_port_mixer,
18229 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018230 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18231 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018232 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18233 msm_routing_get_port_mixer,
18234 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018235 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18236 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018237 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18238 msm_routing_get_port_mixer,
18239 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018240 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18241 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018242 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18243 msm_routing_get_port_mixer,
18244 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018245 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18246 MSM_BACKEND_DAI_SEC_TDM_RX_0,
18247 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18248 msm_routing_get_port_mixer,
18249 msm_routing_put_port_mixer),
18250 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18251 MSM_BACKEND_DAI_SEC_TDM_RX_0,
18252 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18253 msm_routing_get_port_mixer,
18254 msm_routing_put_port_mixer),
18255 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18256 MSM_BACKEND_DAI_SEC_TDM_RX_0,
18257 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18258 msm_routing_get_port_mixer,
18259 msm_routing_put_port_mixer),
18260 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18261 MSM_BACKEND_DAI_SEC_TDM_RX_0,
18262 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18263 msm_routing_get_port_mixer,
18264 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018265};
18266
18267static const struct snd_kcontrol_new sec_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018268 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18269 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018270 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18271 msm_routing_get_port_mixer,
18272 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018273 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18274 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018275 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18276 msm_routing_get_port_mixer,
18277 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018278 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18279 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018280 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18281 msm_routing_get_port_mixer,
18282 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018283 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18284 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018285 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18286 msm_routing_get_port_mixer,
18287 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018288 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18289 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018290 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18291 msm_routing_get_port_mixer,
18292 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018293 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18294 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018295 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18296 msm_routing_get_port_mixer,
18297 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018298 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18299 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018300 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18301 msm_routing_get_port_mixer,
18302 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018303 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18304 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018305 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18306 msm_routing_get_port_mixer,
18307 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018308 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
18309 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018310 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
18311 msm_routing_get_port_mixer,
18312 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018313 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
18314 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018315 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
18316 msm_routing_get_port_mixer,
18317 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018318 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
18319 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018320 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
18321 msm_routing_get_port_mixer,
18322 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018323 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
18324 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018325 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
18326 msm_routing_get_port_mixer,
18327 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018328 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18329 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018330 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18331 msm_routing_get_port_mixer,
18332 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018333 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18334 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018335 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18336 msm_routing_get_port_mixer,
18337 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018338 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18339 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018340 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18341 msm_routing_get_port_mixer,
18342 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018343 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18344 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018345 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18346 msm_routing_get_port_mixer,
18347 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018348 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18349 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018350 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18351 msm_routing_get_port_mixer,
18352 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018353 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18354 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018355 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18356 msm_routing_get_port_mixer,
18357 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018358 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18359 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018360 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18361 msm_routing_get_port_mixer,
18362 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018363 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18364 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018365 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18366 msm_routing_get_port_mixer,
18367 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018368 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18369 MSM_BACKEND_DAI_SEC_TDM_RX_1,
18370 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18371 msm_routing_get_port_mixer,
18372 msm_routing_put_port_mixer),
18373 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18374 MSM_BACKEND_DAI_SEC_TDM_RX_1,
18375 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18376 msm_routing_get_port_mixer,
18377 msm_routing_put_port_mixer),
18378 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18379 MSM_BACKEND_DAI_SEC_TDM_RX_1,
18380 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18381 msm_routing_get_port_mixer,
18382 msm_routing_put_port_mixer),
18383 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18384 MSM_BACKEND_DAI_SEC_TDM_RX_1,
18385 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18386 msm_routing_get_port_mixer,
18387 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018388};
18389
18390static const struct snd_kcontrol_new sec_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018391 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18392 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018393 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18394 msm_routing_get_port_mixer,
18395 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018396 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18397 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018398 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18399 msm_routing_get_port_mixer,
18400 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018401 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18402 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018403 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18404 msm_routing_get_port_mixer,
18405 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018406 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18407 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018408 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18409 msm_routing_get_port_mixer,
18410 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018411 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18412 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018413 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18414 msm_routing_get_port_mixer,
18415 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018416 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18417 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018418 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18419 msm_routing_get_port_mixer,
18420 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018421 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18422 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018423 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18424 msm_routing_get_port_mixer,
18425 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018426 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18427 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018428 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18429 msm_routing_get_port_mixer,
18430 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018431 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
18432 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018433 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
18434 msm_routing_get_port_mixer,
18435 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018436 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
18437 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018438 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
18439 msm_routing_get_port_mixer,
18440 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018441 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
18442 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018443 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
18444 msm_routing_get_port_mixer,
18445 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018446 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
18447 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018448 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
18449 msm_routing_get_port_mixer,
18450 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018451 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18452 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018453 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18454 msm_routing_get_port_mixer,
18455 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018456 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18457 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018458 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18459 msm_routing_get_port_mixer,
18460 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018461 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18462 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018463 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18464 msm_routing_get_port_mixer,
18465 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018466 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18467 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018468 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18469 msm_routing_get_port_mixer,
18470 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018471 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18472 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018473 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18474 msm_routing_get_port_mixer,
18475 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018476 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18477 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018478 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18479 msm_routing_get_port_mixer,
18480 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018481 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18482 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018483 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18484 msm_routing_get_port_mixer,
18485 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018486 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18487 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018488 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18489 msm_routing_get_port_mixer,
18490 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018491 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18492 MSM_BACKEND_DAI_SEC_TDM_RX_2,
18493 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18494 msm_routing_get_port_mixer,
18495 msm_routing_put_port_mixer),
18496 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18497 MSM_BACKEND_DAI_SEC_TDM_RX_2,
18498 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18499 msm_routing_get_port_mixer,
18500 msm_routing_put_port_mixer),
18501 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18502 MSM_BACKEND_DAI_SEC_TDM_RX_2,
18503 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18504 msm_routing_get_port_mixer,
18505 msm_routing_put_port_mixer),
18506 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18507 MSM_BACKEND_DAI_SEC_TDM_RX_2,
18508 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18509 msm_routing_get_port_mixer,
18510 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018511};
18512
18513static const struct snd_kcontrol_new sec_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018514 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18515 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018516 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18517 msm_routing_get_port_mixer,
18518 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018519 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18520 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018521 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18522 msm_routing_get_port_mixer,
18523 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018524 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18525 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018526 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18527 msm_routing_get_port_mixer,
18528 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018529 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18530 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018531 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18532 msm_routing_get_port_mixer,
18533 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018534 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18535 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018536 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18537 msm_routing_get_port_mixer,
18538 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018539 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18540 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018541 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18542 msm_routing_get_port_mixer,
18543 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018544 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18545 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018546 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18547 msm_routing_get_port_mixer,
18548 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018549 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18550 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018551 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18552 msm_routing_get_port_mixer,
18553 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018554 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
18555 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018556 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
18557 msm_routing_get_port_mixer,
18558 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018559 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
18560 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018561 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
18562 msm_routing_get_port_mixer,
18563 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018564 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
18565 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018566 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
18567 msm_routing_get_port_mixer,
18568 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018569 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
18570 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018571 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
18572 msm_routing_get_port_mixer,
18573 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018574 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18575 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018576 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18577 msm_routing_get_port_mixer,
18578 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018579 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18580 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018581 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18582 msm_routing_get_port_mixer,
18583 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018584 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18585 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018586 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18587 msm_routing_get_port_mixer,
18588 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018589 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18590 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018591 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18592 msm_routing_get_port_mixer,
18593 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018594 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18595 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018596 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18597 msm_routing_get_port_mixer,
18598 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018599 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18600 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018601 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18602 msm_routing_get_port_mixer,
18603 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018604 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18605 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018606 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18607 msm_routing_get_port_mixer,
18608 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018609 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18610 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018611 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18612 msm_routing_get_port_mixer,
18613 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018614 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18615 MSM_BACKEND_DAI_SEC_TDM_RX_3,
18616 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18617 msm_routing_get_port_mixer,
18618 msm_routing_put_port_mixer),
18619 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18620 MSM_BACKEND_DAI_SEC_TDM_RX_3,
18621 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18622 msm_routing_get_port_mixer,
18623 msm_routing_put_port_mixer),
18624 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18625 MSM_BACKEND_DAI_SEC_TDM_RX_3,
18626 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18627 msm_routing_get_port_mixer,
18628 msm_routing_put_port_mixer),
18629 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18630 MSM_BACKEND_DAI_SEC_TDM_RX_3,
18631 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18632 msm_routing_get_port_mixer,
18633 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018634};
18635
Derek Chenfdcc0982018-10-02 15:14:03 -070018636static const struct snd_kcontrol_new sec_tdm_rx_7_port_mixer_controls[] = {
18637 SOC_DOUBLE_EXT("TERT_TDM_TX_7", SND_SOC_NOPM,
18638 MSM_BACKEND_DAI_SEC_TDM_RX_7,
18639 MSM_BACKEND_DAI_TERT_TDM_TX_7, 1, 0,
18640 msm_routing_get_port_mixer,
18641 msm_routing_put_port_mixer),
18642};
18643
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018644static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018645 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18646 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018647 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18648 msm_routing_get_port_mixer,
18649 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018650 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18651 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018652 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18653 msm_routing_get_port_mixer,
18654 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018655 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18656 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018657 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18658 msm_routing_get_port_mixer,
18659 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018660 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18661 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018662 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18663 msm_routing_get_port_mixer,
18664 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018665 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18666 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018667 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18668 msm_routing_get_port_mixer,
18669 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018670 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18671 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018672 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18673 msm_routing_get_port_mixer,
18674 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018675 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18676 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018677 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18678 msm_routing_get_port_mixer,
18679 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018680 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18681 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018682 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18683 msm_routing_get_port_mixer,
18684 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018685 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
18686 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018687 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
18688 msm_routing_get_port_mixer,
18689 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018690 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
18691 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018692 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
18693 msm_routing_get_port_mixer,
18694 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018695 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
18696 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018697 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
18698 msm_routing_get_port_mixer,
18699 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018700 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
18701 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018702 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
18703 msm_routing_get_port_mixer,
18704 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018705 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18706 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018707 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18708 msm_routing_get_port_mixer,
18709 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018710 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18711 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018712 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18713 msm_routing_get_port_mixer,
18714 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018715 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18716 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018717 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18718 msm_routing_get_port_mixer,
18719 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018720 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18721 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018722 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18723 msm_routing_get_port_mixer,
18724 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018725 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18726 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018727 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18728 msm_routing_get_port_mixer,
18729 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018730 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18731 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018732 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18733 msm_routing_get_port_mixer,
18734 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018735 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18736 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018737 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18738 msm_routing_get_port_mixer,
18739 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018740 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18741 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018742 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18743 msm_routing_get_port_mixer,
18744 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018745 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18746 MSM_BACKEND_DAI_TERT_TDM_RX_0,
18747 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18748 msm_routing_get_port_mixer,
18749 msm_routing_put_port_mixer),
18750 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18751 MSM_BACKEND_DAI_TERT_TDM_RX_0,
18752 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18753 msm_routing_get_port_mixer,
18754 msm_routing_put_port_mixer),
18755 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18756 MSM_BACKEND_DAI_TERT_TDM_RX_0,
18757 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18758 msm_routing_get_port_mixer,
18759 msm_routing_put_port_mixer),
18760 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18761 MSM_BACKEND_DAI_TERT_TDM_RX_0,
18762 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18763 msm_routing_get_port_mixer,
18764 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018765};
18766
18767static const struct snd_kcontrol_new tert_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018768 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18769 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018770 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18771 msm_routing_get_port_mixer,
18772 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018773 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18774 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018775 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18776 msm_routing_get_port_mixer,
18777 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018778 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18779 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018780 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18781 msm_routing_get_port_mixer,
18782 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018783 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18784 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018785 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18786 msm_routing_get_port_mixer,
18787 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018788 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18789 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018790 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18791 msm_routing_get_port_mixer,
18792 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018793 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18794 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018795 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18796 msm_routing_get_port_mixer,
18797 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018798 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18799 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018800 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18801 msm_routing_get_port_mixer,
18802 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018803 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18804 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018805 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18806 msm_routing_get_port_mixer,
18807 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018808 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
18809 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018810 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
18811 msm_routing_get_port_mixer,
18812 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018813 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
18814 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018815 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
18816 msm_routing_get_port_mixer,
18817 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018818 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
18819 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018820 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
18821 msm_routing_get_port_mixer,
18822 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018823 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
18824 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018825 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
18826 msm_routing_get_port_mixer,
18827 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018828 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18829 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018830 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18831 msm_routing_get_port_mixer,
18832 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018833 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18834 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018835 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18836 msm_routing_get_port_mixer,
18837 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018838 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18839 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018840 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18841 msm_routing_get_port_mixer,
18842 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018843 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18844 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018845 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18846 msm_routing_get_port_mixer,
18847 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018848 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18849 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018850 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18851 msm_routing_get_port_mixer,
18852 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018853 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18854 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018855 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18856 msm_routing_get_port_mixer,
18857 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018858 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18859 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018860 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18861 msm_routing_get_port_mixer,
18862 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018863 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18864 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018865 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18866 msm_routing_get_port_mixer,
18867 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018868 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18869 MSM_BACKEND_DAI_TERT_TDM_RX_1,
18870 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18871 msm_routing_get_port_mixer,
18872 msm_routing_put_port_mixer),
18873 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18874 MSM_BACKEND_DAI_TERT_TDM_RX_1,
18875 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18876 msm_routing_get_port_mixer,
18877 msm_routing_put_port_mixer),
18878 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18879 MSM_BACKEND_DAI_TERT_TDM_RX_1,
18880 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18881 msm_routing_get_port_mixer,
18882 msm_routing_put_port_mixer),
18883 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18884 MSM_BACKEND_DAI_TERT_TDM_RX_1,
18885 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18886 msm_routing_get_port_mixer,
18887 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018888};
18889
18890static const struct snd_kcontrol_new tert_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018891 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18892 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018893 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18894 msm_routing_get_port_mixer,
18895 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018896 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18897 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018898 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18899 msm_routing_get_port_mixer,
18900 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018901 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18902 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018903 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18904 msm_routing_get_port_mixer,
18905 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018906 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18907 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018908 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18909 msm_routing_get_port_mixer,
18910 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018911 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18912 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018913 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18914 msm_routing_get_port_mixer,
18915 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018916 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18917 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018918 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18919 msm_routing_get_port_mixer,
18920 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018921 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18922 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018923 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18924 msm_routing_get_port_mixer,
18925 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018926 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18927 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018928 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18929 msm_routing_get_port_mixer,
18930 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018931 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
18932 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018933 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
18934 msm_routing_get_port_mixer,
18935 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018936 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
18937 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018938 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
18939 msm_routing_get_port_mixer,
18940 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018941 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
18942 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018943 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
18944 msm_routing_get_port_mixer,
18945 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018946 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
18947 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018948 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
18949 msm_routing_get_port_mixer,
18950 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018951 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18952 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018953 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18954 msm_routing_get_port_mixer,
18955 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018956 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18957 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018958 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18959 msm_routing_get_port_mixer,
18960 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018961 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18962 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018963 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18964 msm_routing_get_port_mixer,
18965 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018966 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18967 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018968 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18969 msm_routing_get_port_mixer,
18970 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018971 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18972 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018973 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18974 msm_routing_get_port_mixer,
18975 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018976 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18977 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018978 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18979 msm_routing_get_port_mixer,
18980 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018981 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18982 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018983 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18984 msm_routing_get_port_mixer,
18985 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018986 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18987 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018988 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18989 msm_routing_get_port_mixer,
18990 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018991 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18992 MSM_BACKEND_DAI_TERT_TDM_RX_2,
18993 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18994 msm_routing_get_port_mixer,
18995 msm_routing_put_port_mixer),
18996 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18997 MSM_BACKEND_DAI_TERT_TDM_RX_2,
18998 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18999 msm_routing_get_port_mixer,
19000 msm_routing_put_port_mixer),
19001 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19002 MSM_BACKEND_DAI_TERT_TDM_RX_2,
19003 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19004 msm_routing_get_port_mixer,
19005 msm_routing_put_port_mixer),
19006 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19007 MSM_BACKEND_DAI_TERT_TDM_RX_2,
19008 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19009 msm_routing_get_port_mixer,
19010 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019011};
19012
19013static const struct snd_kcontrol_new tert_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019014 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19015 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019016 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19017 msm_routing_get_port_mixer,
19018 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019019 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19020 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019021 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19022 msm_routing_get_port_mixer,
19023 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019024 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19025 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019026 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
19027 msm_routing_get_port_mixer,
19028 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019029 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19030 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019031 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19032 msm_routing_get_port_mixer,
19033 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019034 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19035 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019036 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19037 msm_routing_get_port_mixer,
19038 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019039 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19040 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019041 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19042 msm_routing_get_port_mixer,
19043 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019044 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19045 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019046 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19047 msm_routing_get_port_mixer,
19048 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019049 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19050 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019051 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19052 msm_routing_get_port_mixer,
19053 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019054 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19055 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019056 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19057 msm_routing_get_port_mixer,
19058 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019059 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19060 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019061 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19062 msm_routing_get_port_mixer,
19063 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019064 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19065 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019066 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19067 msm_routing_get_port_mixer,
19068 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019069 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19070 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019071 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19072 msm_routing_get_port_mixer,
19073 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019074 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19075 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019076 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19077 msm_routing_get_port_mixer,
19078 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019079 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19080 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019081 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19082 msm_routing_get_port_mixer,
19083 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019084 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19085 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019086 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19087 msm_routing_get_port_mixer,
19088 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019089 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19090 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019091 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19092 msm_routing_get_port_mixer,
19093 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019094 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19095 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019096 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19097 msm_routing_get_port_mixer,
19098 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019099 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19100 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019101 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19102 msm_routing_get_port_mixer,
19103 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019104 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19105 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019106 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19107 msm_routing_get_port_mixer,
19108 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019109 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19110 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019111 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19112 msm_routing_get_port_mixer,
19113 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019114 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19115 MSM_BACKEND_DAI_TERT_TDM_RX_3,
19116 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19117 msm_routing_get_port_mixer,
19118 msm_routing_put_port_mixer),
19119 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19120 MSM_BACKEND_DAI_TERT_TDM_RX_3,
19121 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19122 msm_routing_get_port_mixer,
19123 msm_routing_put_port_mixer),
19124 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19125 MSM_BACKEND_DAI_TERT_TDM_RX_3,
19126 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19127 msm_routing_get_port_mixer,
19128 msm_routing_put_port_mixer),
19129 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19130 MSM_BACKEND_DAI_TERT_TDM_RX_3,
19131 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19132 msm_routing_get_port_mixer,
19133 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019134};
19135
19136static const struct snd_kcontrol_new quat_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019137 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19138 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019139 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19140 msm_routing_get_port_mixer,
19141 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019142 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19143 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019144 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19145 msm_routing_get_port_mixer,
19146 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019147 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19148 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019149 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19150 msm_routing_get_port_mixer,
19151 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019152 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19153 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019154 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19155 msm_routing_get_port_mixer,
19156 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019157 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19158 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019159 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19160 msm_routing_get_port_mixer,
19161 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019162 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19163 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019164 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19165 msm_routing_get_port_mixer,
19166 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019167 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19168 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019169 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19170 msm_routing_get_port_mixer,
19171 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019172 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19173 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019174 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19175 msm_routing_get_port_mixer,
19176 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019177 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19178 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019179 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19180 msm_routing_get_port_mixer,
19181 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019182 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19183 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019184 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19185 msm_routing_get_port_mixer,
19186 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019187 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19188 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019189 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19190 msm_routing_get_port_mixer,
19191 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019192 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19193 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019194 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19195 msm_routing_get_port_mixer,
19196 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019197 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19198 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019199 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19200 msm_routing_get_port_mixer,
19201 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019202 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19203 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019204 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19205 msm_routing_get_port_mixer,
19206 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019207 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19208 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019209 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19210 msm_routing_get_port_mixer,
19211 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019212 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19213 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019214 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19215 msm_routing_get_port_mixer,
19216 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019217 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19218 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019219 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19220 msm_routing_get_port_mixer,
19221 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019222 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19223 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019224 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19225 msm_routing_get_port_mixer,
19226 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019227 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19228 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019229 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19230 msm_routing_get_port_mixer,
19231 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019232 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19233 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019234 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19235 msm_routing_get_port_mixer,
19236 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019237 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19238 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
19239 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19240 msm_routing_get_port_mixer,
19241 msm_routing_put_port_mixer),
19242 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19243 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
19244 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19245 msm_routing_get_port_mixer,
19246 msm_routing_put_port_mixer),
19247 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19248 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
19249 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19250 msm_routing_get_port_mixer,
19251 msm_routing_put_port_mixer),
19252 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19253 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
19254 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19255 msm_routing_get_port_mixer,
19256 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019257};
19258
19259static const struct snd_kcontrol_new quat_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019260 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19261 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019262 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19263 msm_routing_get_port_mixer,
19264 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019265 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19266 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019267 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19268 msm_routing_get_port_mixer,
19269 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019270 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19271 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019272 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19273 msm_routing_get_port_mixer,
19274 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019275 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19276 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019277 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19278 msm_routing_get_port_mixer,
19279 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019280 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19281 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019282 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19283 msm_routing_get_port_mixer,
19284 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019285 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19286 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019287 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19288 msm_routing_get_port_mixer,
19289 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019290 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19291 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019292 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19293 msm_routing_get_port_mixer,
19294 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019295 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19296 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019297 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19298 msm_routing_get_port_mixer,
19299 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019300 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19301 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019302 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19303 msm_routing_get_port_mixer,
19304 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019305 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19306 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019307 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19308 msm_routing_get_port_mixer,
19309 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019310 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19311 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019312 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19313 msm_routing_get_port_mixer,
19314 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019315 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19316 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019317 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19318 msm_routing_get_port_mixer,
19319 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019320 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19321 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019322 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19323 msm_routing_get_port_mixer,
19324 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019325 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19326 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019327 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19328 msm_routing_get_port_mixer,
19329 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019330 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19331 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019332 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19333 msm_routing_get_port_mixer,
19334 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019335 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19336 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019337 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19338 msm_routing_get_port_mixer,
19339 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019340 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19341 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019342 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19343 msm_routing_get_port_mixer,
19344 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019345 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19346 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019347 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19348 msm_routing_get_port_mixer,
19349 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019350 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19351 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019352 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19353 msm_routing_get_port_mixer,
19354 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019355 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19356 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019357 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19358 msm_routing_get_port_mixer,
19359 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019360 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19361 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
19362 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19363 msm_routing_get_port_mixer,
19364 msm_routing_put_port_mixer),
19365 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19366 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
19367 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19368 msm_routing_get_port_mixer,
19369 msm_routing_put_port_mixer),
19370 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19371 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
19372 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19373 msm_routing_get_port_mixer,
19374 msm_routing_put_port_mixer),
19375 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19376 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
19377 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19378 msm_routing_get_port_mixer,
19379 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019380};
19381
19382static const struct snd_kcontrol_new quat_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019383 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19384 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019385 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19386 msm_routing_get_port_mixer,
19387 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019388 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19389 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019390 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19391 msm_routing_get_port_mixer,
19392 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019393 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19394 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019395 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19396 msm_routing_get_port_mixer,
19397 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019398 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19399 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019400 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19401 msm_routing_get_port_mixer,
19402 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019403 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19404 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019405 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19406 msm_routing_get_port_mixer,
19407 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019408 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19409 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019410 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19411 msm_routing_get_port_mixer,
19412 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019413 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19414 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019415 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19416 msm_routing_get_port_mixer,
19417 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019418 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19419 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019420 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19421 msm_routing_get_port_mixer,
19422 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019423 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19424 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019425 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19426 msm_routing_get_port_mixer,
19427 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019428 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19429 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019430 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19431 msm_routing_get_port_mixer,
19432 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019433 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19434 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019435 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19436 msm_routing_get_port_mixer,
19437 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019438 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19439 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019440 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19441 msm_routing_get_port_mixer,
19442 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019443 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19444 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019445 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19446 msm_routing_get_port_mixer,
19447 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019448 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19449 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019450 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19451 msm_routing_get_port_mixer,
19452 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019453 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19454 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019455 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19456 msm_routing_get_port_mixer,
19457 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019458 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19459 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019460 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19461 msm_routing_get_port_mixer,
19462 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019463 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19464 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019465 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19466 msm_routing_get_port_mixer,
19467 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019468 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19469 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019470 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19471 msm_routing_get_port_mixer,
19472 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019473 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19474 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019475 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19476 msm_routing_get_port_mixer,
19477 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019478 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19479 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019480 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19481 msm_routing_get_port_mixer,
19482 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019483 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19484 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
19485 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19486 msm_routing_get_port_mixer,
19487 msm_routing_put_port_mixer),
19488 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19489 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
19490 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19491 msm_routing_get_port_mixer,
19492 msm_routing_put_port_mixer),
19493 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19494 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
19495 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19496 msm_routing_get_port_mixer,
19497 msm_routing_put_port_mixer),
19498 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19499 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
19500 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19501 msm_routing_get_port_mixer,
19502 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019503};
19504
19505static const struct snd_kcontrol_new quat_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019506 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19507 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019508 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19509 msm_routing_get_port_mixer,
19510 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019511 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19512 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019513 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19514 msm_routing_get_port_mixer,
19515 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019516 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19517 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019518 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19519 msm_routing_get_port_mixer,
19520 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019521 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19522 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019523 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19524 msm_routing_get_port_mixer,
19525 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019526 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19527 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019528 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19529 msm_routing_get_port_mixer,
19530 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019531 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19532 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019533 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19534 msm_routing_get_port_mixer,
19535 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019536 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19537 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019538 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19539 msm_routing_get_port_mixer,
19540 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019541 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19542 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019543 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19544 msm_routing_get_port_mixer,
19545 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019546 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19547 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019548 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19549 msm_routing_get_port_mixer,
19550 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019551 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19552 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019553 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19554 msm_routing_get_port_mixer,
19555 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019556 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19557 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019558 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19559 msm_routing_get_port_mixer,
19560 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019561 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19562 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019563 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19564 msm_routing_get_port_mixer,
19565 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019566 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19567 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019568 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19569 msm_routing_get_port_mixer,
19570 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019571 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19572 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019573 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19574 msm_routing_get_port_mixer,
19575 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019576 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19577 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019578 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19579 msm_routing_get_port_mixer,
19580 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019581 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19582 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019583 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19584 msm_routing_get_port_mixer,
19585 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019586 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19587 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019588 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19589 msm_routing_get_port_mixer,
19590 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019591 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19592 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019593 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19594 msm_routing_get_port_mixer,
19595 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019596 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19597 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019598 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19599 msm_routing_get_port_mixer,
19600 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019601 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19602 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019603 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19604 msm_routing_get_port_mixer,
19605 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019606 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19607 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
19608 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19609 msm_routing_get_port_mixer,
19610 msm_routing_put_port_mixer),
19611 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19612 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
19613 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19614 msm_routing_get_port_mixer,
19615 msm_routing_put_port_mixer),
19616 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19617 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
19618 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19619 msm_routing_get_port_mixer,
19620 msm_routing_put_port_mixer),
19621 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19622 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
19623 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19624 msm_routing_get_port_mixer,
19625 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053019626};
19627
Derek Chenb9048cb2019-03-07 14:54:13 -050019628static const struct snd_kcontrol_new quat_tdm_rx_7_port_mixer_controls[] = {
19629 SOC_DOUBLE_EXT("QUAT_TDM_TX_7", SND_SOC_NOPM,
19630 MSM_BACKEND_DAI_QUAT_TDM_RX_7,
19631 MSM_BACKEND_DAI_QUAT_TDM_TX_7, 1, 0,
19632 msm_routing_get_port_mixer,
19633 msm_routing_put_port_mixer),
Derek Chen728c5cc2019-06-26 14:21:52 -070019634 SOC_DOUBLE_EXT("QUIN_TDM_TX_7", SND_SOC_NOPM,
19635 MSM_BACKEND_DAI_QUAT_TDM_RX_7,
19636 MSM_BACKEND_DAI_QUIN_TDM_TX_7, 1, 0,
19637 msm_routing_get_port_mixer,
19638 msm_routing_put_port_mixer),
Derek Chenb9048cb2019-03-07 14:54:13 -050019639};
19640
Rohit Kumara5077932017-09-10 22:05:05 +053019641static const struct snd_kcontrol_new quin_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019642 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19643 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019644 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19645 msm_routing_get_port_mixer,
19646 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019647 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19648 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019649 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19650 msm_routing_get_port_mixer,
19651 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019652 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19653 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019654 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19655 msm_routing_get_port_mixer,
19656 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019657 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19658 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019659 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19660 msm_routing_get_port_mixer,
19661 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019662 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19663 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019664 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19665 msm_routing_get_port_mixer,
19666 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019667 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19668 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019669 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19670 msm_routing_get_port_mixer,
19671 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019672 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19673 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019674 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19675 msm_routing_get_port_mixer,
19676 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019677 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19678 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019679 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19680 msm_routing_get_port_mixer,
19681 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019682 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19683 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019684 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19685 msm_routing_get_port_mixer,
19686 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019687 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19688 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019689 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19690 msm_routing_get_port_mixer,
19691 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019692 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19693 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019694 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19695 msm_routing_get_port_mixer,
19696 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019697 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19698 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019699 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19700 msm_routing_get_port_mixer,
19701 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019702 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19703 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019704 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19705 msm_routing_get_port_mixer,
19706 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019707 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19708 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019709 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19710 msm_routing_get_port_mixer,
19711 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019712 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19713 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019714 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19715 msm_routing_get_port_mixer,
19716 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019717 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19718 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019719 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19720 msm_routing_get_port_mixer,
19721 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019722 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19723 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019724 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19725 msm_routing_get_port_mixer,
19726 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019727 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19728 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019729 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19730 msm_routing_get_port_mixer,
19731 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019732 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19733 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019734 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19735 msm_routing_get_port_mixer,
19736 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019737 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19738 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019739 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19740 msm_routing_get_port_mixer,
19741 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019742 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19743 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
19744 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19745 msm_routing_get_port_mixer,
19746 msm_routing_put_port_mixer),
19747 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19748 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
19749 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19750 msm_routing_get_port_mixer,
19751 msm_routing_put_port_mixer),
19752 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19753 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
19754 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19755 msm_routing_get_port_mixer,
19756 msm_routing_put_port_mixer),
19757 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19758 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
19759 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19760 msm_routing_get_port_mixer,
19761 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053019762};
19763
19764static const struct snd_kcontrol_new quin_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019765 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19766 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019767 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19768 msm_routing_get_port_mixer,
19769 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019770 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19771 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019772 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19773 msm_routing_get_port_mixer,
19774 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019775 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19776 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019777 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19778 msm_routing_get_port_mixer,
19779 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019780 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19781 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019782 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19783 msm_routing_get_port_mixer,
19784 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019785 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19786 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019787 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19788 msm_routing_get_port_mixer,
19789 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019790 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19791 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019792 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19793 msm_routing_get_port_mixer,
19794 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019795 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19796 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019797 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19798 msm_routing_get_port_mixer,
19799 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019800 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19801 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019802 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19803 msm_routing_get_port_mixer,
19804 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019805 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19806 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019807 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19808 msm_routing_get_port_mixer,
19809 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019810 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19811 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019812 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19813 msm_routing_get_port_mixer,
19814 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019815 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19816 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019817 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19818 msm_routing_get_port_mixer,
19819 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019820 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19821 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019822 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19823 msm_routing_get_port_mixer,
19824 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019825 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19826 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019827 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19828 msm_routing_get_port_mixer,
19829 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019830 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19831 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019832 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19833 msm_routing_get_port_mixer,
19834 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019835 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19836 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019837 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19838 msm_routing_get_port_mixer,
19839 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019840 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19841 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019842 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19843 msm_routing_get_port_mixer,
19844 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019845 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19846 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019847 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19848 msm_routing_get_port_mixer,
19849 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019850 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19851 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019852 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19853 msm_routing_get_port_mixer,
19854 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019855 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19856 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019857 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19858 msm_routing_get_port_mixer,
19859 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019860 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19861 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019862 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19863 msm_routing_get_port_mixer,
19864 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019865 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19866 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
19867 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19868 msm_routing_get_port_mixer,
19869 msm_routing_put_port_mixer),
19870 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19871 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
19872 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19873 msm_routing_get_port_mixer,
19874 msm_routing_put_port_mixer),
19875 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19876 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
19877 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19878 msm_routing_get_port_mixer,
19879 msm_routing_put_port_mixer),
19880 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19881 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
19882 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19883 msm_routing_get_port_mixer,
19884 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053019885};
19886
19887static const struct snd_kcontrol_new quin_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019888 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19889 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019890 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19891 msm_routing_get_port_mixer,
19892 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019893 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19894 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019895 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19896 msm_routing_get_port_mixer,
19897 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019898 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19899 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019900 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19901 msm_routing_get_port_mixer,
19902 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019903 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19904 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019905 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19906 msm_routing_get_port_mixer,
19907 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019908 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19909 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019910 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19911 msm_routing_get_port_mixer,
19912 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019913 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19914 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019915 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19916 msm_routing_get_port_mixer,
19917 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019918 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19919 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019920 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19921 msm_routing_get_port_mixer,
19922 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019923 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19924 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019925 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19926 msm_routing_get_port_mixer,
19927 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019928 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19929 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019930 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19931 msm_routing_get_port_mixer,
19932 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019933 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19934 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019935 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19936 msm_routing_get_port_mixer,
19937 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019938 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19939 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019940 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19941 msm_routing_get_port_mixer,
19942 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019943 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19944 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019945 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19946 msm_routing_get_port_mixer,
19947 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019948 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19949 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019950 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19951 msm_routing_get_port_mixer,
19952 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019953 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19954 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019955 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19956 msm_routing_get_port_mixer,
19957 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019958 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19959 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019960 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19961 msm_routing_get_port_mixer,
19962 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019963 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19964 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019965 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19966 msm_routing_get_port_mixer,
19967 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019968 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19969 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019970 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19971 msm_routing_get_port_mixer,
19972 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019973 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19974 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019975 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19976 msm_routing_get_port_mixer,
19977 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019978 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19979 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019980 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19981 msm_routing_get_port_mixer,
19982 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019983 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19984 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019985 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19986 msm_routing_get_port_mixer,
19987 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019988 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19989 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
19990 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19991 msm_routing_get_port_mixer,
19992 msm_routing_put_port_mixer),
19993 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19994 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
19995 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19996 msm_routing_get_port_mixer,
19997 msm_routing_put_port_mixer),
19998 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19999 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
20000 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20001 msm_routing_get_port_mixer,
20002 msm_routing_put_port_mixer),
20003 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20004 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
20005 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20006 msm_routing_get_port_mixer,
20007 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053020008};
20009
20010static const struct snd_kcontrol_new quin_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020011 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20012 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020013 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20014 msm_routing_get_port_mixer,
20015 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020016 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20017 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020018 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20019 msm_routing_get_port_mixer,
20020 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020021 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20022 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020023 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20024 msm_routing_get_port_mixer,
20025 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020026 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20027 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020028 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20029 msm_routing_get_port_mixer,
20030 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020031 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20032 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020033 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20034 msm_routing_get_port_mixer,
20035 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020036 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20037 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020038 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20039 msm_routing_get_port_mixer,
20040 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020041 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20042 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020043 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20044 msm_routing_get_port_mixer,
20045 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020046 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20047 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020048 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20049 msm_routing_get_port_mixer,
20050 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020051 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20052 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020053 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20054 msm_routing_get_port_mixer,
20055 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020056 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20057 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020058 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20059 msm_routing_get_port_mixer,
20060 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020061 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20062 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020063 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20064 msm_routing_get_port_mixer,
20065 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020066 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20067 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020068 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20069 msm_routing_get_port_mixer,
20070 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020071 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20072 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020073 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20074 msm_routing_get_port_mixer,
20075 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020076 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20077 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020078 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20079 msm_routing_get_port_mixer,
20080 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020081 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20082 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020083 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20084 msm_routing_get_port_mixer,
20085 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020086 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20087 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020088 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20089 msm_routing_get_port_mixer,
20090 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020091 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20092 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020093 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20094 msm_routing_get_port_mixer,
20095 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020096 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20097 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020098 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20099 msm_routing_get_port_mixer,
20100 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020101 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20102 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020103 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20104 msm_routing_get_port_mixer,
20105 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020106 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20107 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020108 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20109 msm_routing_get_port_mixer,
20110 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070020111 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20112 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
20113 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20114 msm_routing_get_port_mixer,
20115 msm_routing_put_port_mixer),
20116 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20117 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
20118 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20119 msm_routing_get_port_mixer,
20120 msm_routing_put_port_mixer),
20121 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20122 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
20123 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20124 msm_routing_get_port_mixer,
20125 msm_routing_put_port_mixer),
20126 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20127 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
20128 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20129 msm_routing_get_port_mixer,
20130 msm_routing_put_port_mixer),
20131};
20132
20133static const struct snd_kcontrol_new sen_tdm_rx_0_port_mixer_controls[] = {
20134 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20135 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20136 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20137 msm_routing_get_port_mixer,
20138 msm_routing_put_port_mixer),
20139 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20140 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20141 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20142 msm_routing_get_port_mixer,
20143 msm_routing_put_port_mixer),
20144 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20145 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20146 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20147 msm_routing_get_port_mixer,
20148 msm_routing_put_port_mixer),
20149 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20150 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20151 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20152 msm_routing_get_port_mixer,
20153 msm_routing_put_port_mixer),
20154 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20155 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20156 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20157 msm_routing_get_port_mixer,
20158 msm_routing_put_port_mixer),
20159 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20160 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20161 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20162 msm_routing_get_port_mixer,
20163 msm_routing_put_port_mixer),
20164 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20165 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20166 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20167 msm_routing_get_port_mixer,
20168 msm_routing_put_port_mixer),
20169 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20170 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20171 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20172 msm_routing_get_port_mixer,
20173 msm_routing_put_port_mixer),
20174 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20175 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20176 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20177 msm_routing_get_port_mixer,
20178 msm_routing_put_port_mixer),
20179 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20180 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20181 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20182 msm_routing_get_port_mixer,
20183 msm_routing_put_port_mixer),
20184 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20185 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20186 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20187 msm_routing_get_port_mixer,
20188 msm_routing_put_port_mixer),
20189 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20190 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20191 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20192 msm_routing_get_port_mixer,
20193 msm_routing_put_port_mixer),
20194 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20195 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20196 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20197 msm_routing_get_port_mixer,
20198 msm_routing_put_port_mixer),
20199 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20200 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20201 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20202 msm_routing_get_port_mixer,
20203 msm_routing_put_port_mixer),
20204 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20205 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20206 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20207 msm_routing_get_port_mixer,
20208 msm_routing_put_port_mixer),
20209 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20210 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20211 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20212 msm_routing_get_port_mixer,
20213 msm_routing_put_port_mixer),
20214 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20215 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20216 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20217 msm_routing_get_port_mixer,
20218 msm_routing_put_port_mixer),
20219 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20220 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20221 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20222 msm_routing_get_port_mixer,
20223 msm_routing_put_port_mixer),
20224 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20225 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20226 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20227 msm_routing_get_port_mixer,
20228 msm_routing_put_port_mixer),
20229 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20230 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20231 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20232 msm_routing_get_port_mixer,
20233 msm_routing_put_port_mixer),
20234 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20235 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20236 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20237 msm_routing_get_port_mixer,
20238 msm_routing_put_port_mixer),
20239 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20240 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20241 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20242 msm_routing_get_port_mixer,
20243 msm_routing_put_port_mixer),
20244 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20245 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20246 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20247 msm_routing_get_port_mixer,
20248 msm_routing_put_port_mixer),
20249 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20250 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20251 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20252 msm_routing_get_port_mixer,
20253 msm_routing_put_port_mixer),
20254};
20255
20256static const struct snd_kcontrol_new sen_tdm_rx_1_port_mixer_controls[] = {
20257 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20258 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20259 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20260 msm_routing_get_port_mixer,
20261 msm_routing_put_port_mixer),
20262 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20263 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20264 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20265 msm_routing_get_port_mixer,
20266 msm_routing_put_port_mixer),
20267 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20268 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20269 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20270 msm_routing_get_port_mixer,
20271 msm_routing_put_port_mixer),
20272 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20273 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20274 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20275 msm_routing_get_port_mixer,
20276 msm_routing_put_port_mixer),
20277 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20278 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20279 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20280 msm_routing_get_port_mixer,
20281 msm_routing_put_port_mixer),
20282 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20283 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20284 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20285 msm_routing_get_port_mixer,
20286 msm_routing_put_port_mixer),
20287 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20288 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20289 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20290 msm_routing_get_port_mixer,
20291 msm_routing_put_port_mixer),
20292 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20293 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20294 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20295 msm_routing_get_port_mixer,
20296 msm_routing_put_port_mixer),
20297 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20298 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20299 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20300 msm_routing_get_port_mixer,
20301 msm_routing_put_port_mixer),
20302 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20303 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20304 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20305 msm_routing_get_port_mixer,
20306 msm_routing_put_port_mixer),
20307 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20308 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20309 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20310 msm_routing_get_port_mixer,
20311 msm_routing_put_port_mixer),
20312 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20313 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20314 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20315 msm_routing_get_port_mixer,
20316 msm_routing_put_port_mixer),
20317 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20318 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20319 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20320 msm_routing_get_port_mixer,
20321 msm_routing_put_port_mixer),
20322 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20323 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20324 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20325 msm_routing_get_port_mixer,
20326 msm_routing_put_port_mixer),
20327 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20328 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20329 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20330 msm_routing_get_port_mixer,
20331 msm_routing_put_port_mixer),
20332 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20333 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20334 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20335 msm_routing_get_port_mixer,
20336 msm_routing_put_port_mixer),
20337 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20338 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20339 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20340 msm_routing_get_port_mixer,
20341 msm_routing_put_port_mixer),
20342 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20343 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20344 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20345 msm_routing_get_port_mixer,
20346 msm_routing_put_port_mixer),
20347 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20348 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20349 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20350 msm_routing_get_port_mixer,
20351 msm_routing_put_port_mixer),
20352 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20353 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20354 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20355 msm_routing_get_port_mixer,
20356 msm_routing_put_port_mixer),
20357 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20358 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20359 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20360 msm_routing_get_port_mixer,
20361 msm_routing_put_port_mixer),
20362 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20363 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20364 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20365 msm_routing_get_port_mixer,
20366 msm_routing_put_port_mixer),
20367 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20368 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20369 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20370 msm_routing_get_port_mixer,
20371 msm_routing_put_port_mixer),
20372 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20373 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20374 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20375 msm_routing_get_port_mixer,
20376 msm_routing_put_port_mixer),
20377};
20378
20379static const struct snd_kcontrol_new sen_tdm_rx_2_port_mixer_controls[] = {
20380 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20381 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20382 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20383 msm_routing_get_port_mixer,
20384 msm_routing_put_port_mixer),
20385 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20386 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20387 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20388 msm_routing_get_port_mixer,
20389 msm_routing_put_port_mixer),
20390 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20391 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20392 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20393 msm_routing_get_port_mixer,
20394 msm_routing_put_port_mixer),
20395 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20396 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20397 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20398 msm_routing_get_port_mixer,
20399 msm_routing_put_port_mixer),
20400 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20401 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20402 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20403 msm_routing_get_port_mixer,
20404 msm_routing_put_port_mixer),
20405 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20406 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20407 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20408 msm_routing_get_port_mixer,
20409 msm_routing_put_port_mixer),
20410 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20411 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20412 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20413 msm_routing_get_port_mixer,
20414 msm_routing_put_port_mixer),
20415 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20416 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20417 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20418 msm_routing_get_port_mixer,
20419 msm_routing_put_port_mixer),
20420 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20421 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20422 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20423 msm_routing_get_port_mixer,
20424 msm_routing_put_port_mixer),
20425 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20426 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20427 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20428 msm_routing_get_port_mixer,
20429 msm_routing_put_port_mixer),
20430 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20431 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20432 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20433 msm_routing_get_port_mixer,
20434 msm_routing_put_port_mixer),
20435 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20436 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20437 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20438 msm_routing_get_port_mixer,
20439 msm_routing_put_port_mixer),
20440 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20441 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20442 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20443 msm_routing_get_port_mixer,
20444 msm_routing_put_port_mixer),
20445 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20446 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20447 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20448 msm_routing_get_port_mixer,
20449 msm_routing_put_port_mixer),
20450 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20451 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20452 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20453 msm_routing_get_port_mixer,
20454 msm_routing_put_port_mixer),
20455 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20456 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20457 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20458 msm_routing_get_port_mixer,
20459 msm_routing_put_port_mixer),
20460 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20461 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20462 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20463 msm_routing_get_port_mixer,
20464 msm_routing_put_port_mixer),
20465 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20466 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20467 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20468 msm_routing_get_port_mixer,
20469 msm_routing_put_port_mixer),
20470 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20471 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20472 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20473 msm_routing_get_port_mixer,
20474 msm_routing_put_port_mixer),
20475 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20476 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20477 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20478 msm_routing_get_port_mixer,
20479 msm_routing_put_port_mixer),
20480 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20481 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20482 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20483 msm_routing_get_port_mixer,
20484 msm_routing_put_port_mixer),
20485 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20486 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20487 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20488 msm_routing_get_port_mixer,
20489 msm_routing_put_port_mixer),
20490 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20491 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20492 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20493 msm_routing_get_port_mixer,
20494 msm_routing_put_port_mixer),
20495 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20496 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20497 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20498 msm_routing_get_port_mixer,
20499 msm_routing_put_port_mixer),
20500};
20501
20502static const struct snd_kcontrol_new sen_tdm_rx_3_port_mixer_controls[] = {
20503 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20504 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20505 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20506 msm_routing_get_port_mixer,
20507 msm_routing_put_port_mixer),
20508 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20509 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20510 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20511 msm_routing_get_port_mixer,
20512 msm_routing_put_port_mixer),
20513 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20514 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20515 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20516 msm_routing_get_port_mixer,
20517 msm_routing_put_port_mixer),
20518 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20519 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20520 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20521 msm_routing_get_port_mixer,
20522 msm_routing_put_port_mixer),
20523 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20524 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20525 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20526 msm_routing_get_port_mixer,
20527 msm_routing_put_port_mixer),
20528 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20529 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20530 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20531 msm_routing_get_port_mixer,
20532 msm_routing_put_port_mixer),
20533 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20534 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20535 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20536 msm_routing_get_port_mixer,
20537 msm_routing_put_port_mixer),
20538 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20539 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20540 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20541 msm_routing_get_port_mixer,
20542 msm_routing_put_port_mixer),
20543 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20544 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20545 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20546 msm_routing_get_port_mixer,
20547 msm_routing_put_port_mixer),
20548 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20549 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20550 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20551 msm_routing_get_port_mixer,
20552 msm_routing_put_port_mixer),
20553 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20554 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20555 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20556 msm_routing_get_port_mixer,
20557 msm_routing_put_port_mixer),
20558 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20559 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20560 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20561 msm_routing_get_port_mixer,
20562 msm_routing_put_port_mixer),
20563 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20564 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20565 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20566 msm_routing_get_port_mixer,
20567 msm_routing_put_port_mixer),
20568 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20569 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20570 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20571 msm_routing_get_port_mixer,
20572 msm_routing_put_port_mixer),
20573 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20574 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20575 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20576 msm_routing_get_port_mixer,
20577 msm_routing_put_port_mixer),
20578 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20579 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20580 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20581 msm_routing_get_port_mixer,
20582 msm_routing_put_port_mixer),
20583 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20584 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20585 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20586 msm_routing_get_port_mixer,
20587 msm_routing_put_port_mixer),
20588 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20589 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20590 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20591 msm_routing_get_port_mixer,
20592 msm_routing_put_port_mixer),
20593 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20594 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20595 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20596 msm_routing_get_port_mixer,
20597 msm_routing_put_port_mixer),
20598 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20599 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20600 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20601 msm_routing_get_port_mixer,
20602 msm_routing_put_port_mixer),
20603 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20604 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20605 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20606 msm_routing_get_port_mixer,
20607 msm_routing_put_port_mixer),
20608 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20609 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20610 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20611 msm_routing_get_port_mixer,
20612 msm_routing_put_port_mixer),
20613 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20614 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20615 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20616 msm_routing_get_port_mixer,
20617 msm_routing_put_port_mixer),
20618 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20619 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20620 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20621 msm_routing_get_port_mixer,
20622 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020623};
20624
Han Lu7b6c5882019-06-09 16:03:21 +080020625static const struct snd_kcontrol_new quin_tdm_rx_7_port_mixer_controls[] = {
Derek Chen728c5cc2019-06-26 14:21:52 -070020626 SOC_DOUBLE_EXT("TERT_TDM_TX_7", SND_SOC_NOPM,
20627 MSM_BACKEND_DAI_QUIN_TDM_RX_7,
20628 MSM_BACKEND_DAI_TERT_TDM_TX_7, 1, 0,
20629 msm_routing_get_port_mixer,
20630 msm_routing_put_port_mixer),
20631 SOC_DOUBLE_EXT("QUAT_TDM_TX_7", SND_SOC_NOPM,
20632 MSM_BACKEND_DAI_QUIN_TDM_RX_7,
20633 MSM_BACKEND_DAI_QUAT_TDM_TX_7, 1, 0,
20634 msm_routing_get_port_mixer,
20635 msm_routing_put_port_mixer),
Han Lu7b6c5882019-06-09 16:03:21 +080020636 SOC_DOUBLE_EXT("QUIN_TDM_TX_7", SND_SOC_NOPM,
20637 MSM_BACKEND_DAI_QUIN_TDM_RX_7,
20638 MSM_BACKEND_DAI_QUIN_TDM_TX_7, 1, 0,
20639 msm_routing_get_port_mixer,
20640 msm_routing_put_port_mixer),
20641};
20642
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020643static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020644 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20645 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020646 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20647 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020648 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20649 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020650 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20651 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020652 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
20653 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020654 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
20655 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020656 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20657 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020658 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20659 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020660 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
20661 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053020662 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20663 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070020664 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
20665 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
20666 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20667 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020668 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20669 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020670 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20671 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020672 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
20673 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020674 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
20675 msm_routing_put_port_mixer),
20676};
20677
20678static const struct snd_kcontrol_new sec_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020679 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20680 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020681 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20682 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020683 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20684 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020685 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20686 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020687 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20688 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020689 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20690 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020691 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20692 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020693 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20694 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020695 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
20696 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053020697 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20698 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070020699 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
20700 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
20701 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20702 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020703 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
20704 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020705 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
20706 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020707 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20708 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020709 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
20710 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020711 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
20712 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020713 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
20714 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020715 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20716 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080020717 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
20718 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020719};
20720
20721static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020722 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20723 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020724 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20725 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020726 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
20727 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020728 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20729 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020730 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
20731 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020732 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20733 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020734 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
20735 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020736 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20737 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020738 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
20739 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020740 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20741 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020742 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20743 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020744 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20745 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020746 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20747 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020748 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20749 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020750 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
20751 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020752 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20753 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053020754 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
20755 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
20756 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20757 msm_routing_put_listen_mixer),
20758 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
20759 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
20760 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20761 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080020762 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
20763 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
20764 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20765 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053020766 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
20767 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
20768 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20769 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020770 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20771 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
20772 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20773 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020774};
20775
20776static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020777 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20778 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020779 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20780 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020781 SOC_DOUBLE_EXT("SLIMBUS_1_TX",
20782 SND_SOC_NOPM,
20783 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020784 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20785 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020786 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
20787 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020788 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20789 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020790 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
20791 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020792 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20793 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020794 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
20795 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020796 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20797 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020798 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20799 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020800 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20801 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020802 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20803 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020804 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20805 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020806 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
20807 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020808 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20809 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053020810 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
20811 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
20812 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20813 msm_routing_put_listen_mixer),
20814 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
20815 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
20816 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20817 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080020818 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
20819 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
20820 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20821 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053020822 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
20823 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
20824 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20825 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020826 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20827 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
20828 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20829 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020830};
20831
20832static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020833 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20834 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020835 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20836 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020837 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
20838 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020839 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20840 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020841 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
20842 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020843 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20844 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020845 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
20846 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020847 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20848 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020849 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
20850 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020851 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20852 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020853 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20854 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020855 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20856 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020857 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20858 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020859 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20860 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020861 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
20862 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020863 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20864 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053020865 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
20866 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
20867 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20868 msm_routing_put_listen_mixer),
20869 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
20870 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
20871 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20872 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080020873 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
20874 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
20875 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20876 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053020877 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
20878 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
20879 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20880 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020881 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20882 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
20883 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20884 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020885};
20886
20887static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020888 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20889 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020890 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20891 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020892 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
20893 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020894 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20895 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020896 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
20897 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020898 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20899 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020900 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
20901 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020902 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20903 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020904 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
20905 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020906 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20907 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020908 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20909 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020910 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20911 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020912 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20913 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020914 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20915 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020916 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
20917 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020918 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20919 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053020920 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
20921 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
20922 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20923 msm_routing_put_listen_mixer),
20924 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
20925 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
20926 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20927 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080020928 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
20929 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
20930 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20931 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053020932 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
20933 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
20934 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20935 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020936 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20937 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
20938 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20939 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020940};
20941
20942static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020943 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20944 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020945 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20946 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020947 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
20948 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020949 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20950 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020951 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
20952 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020953 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20954 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020955 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
20956 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020957 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20958 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020959 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
20960 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020961 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20962 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020963 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20964 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020965 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20966 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020967 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20968 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020969 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20970 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020971 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
20972 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020973 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20974 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053020975 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
20976 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
20977 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20978 msm_routing_put_listen_mixer),
20979 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
20980 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
20981 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20982 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080020983 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
20984 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
20985 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20986 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053020987 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
20988 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
20989 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20990 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020991 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20992 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
20993 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20994 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020995};
20996
20997static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020998 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20999 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021000 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21001 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021002 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21003 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021004 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21005 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021006 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
21007 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021008 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21009 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021010 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
21011 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021012 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21013 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021014 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
21015 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021016 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21017 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021018 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
21019 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021020 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21021 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021022 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
21023 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021024 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21025 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021026 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
21027 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021028 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21029 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021030 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21031 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21032 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21033 msm_routing_put_listen_mixer),
21034 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21035 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21036 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21037 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021038 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21039 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21040 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21041 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021042 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21043 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21044 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21045 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021046 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21047 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21048 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21049 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021050};
21051
21052static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021053 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21054 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021055 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21056 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021057 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21058 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021059 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21060 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021061 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
21062 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021063 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21064 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021065 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
21066 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021067 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21068 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021069 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
21070 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021071 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21072 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021073 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
21074 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021075 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21076 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021077 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
21078 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021079 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21080 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021081 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
21082 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021083 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21084 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021085 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21086 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21087 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21088 msm_routing_put_listen_mixer),
21089 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21090 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21091 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21092 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021093 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21094 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21095 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21096 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021097 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21098 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21099 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21100 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021101 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21102 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21103 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21104 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021105};
21106
21107static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021108 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21109 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021110 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21111 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021112 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21113 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021114 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21115 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021116 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
21117 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021118 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21119 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021120 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
21121 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021122 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21123 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021124 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
21125 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021126 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21127 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021128 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
21129 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021130 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21131 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021132 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
21133 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021134 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21135 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021136 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
21137 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021138 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21139 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021140 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21141 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21142 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21143 msm_routing_put_listen_mixer),
21144 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21145 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21146 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21147 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021148 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21149 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21150 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21151 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021152 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21153 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21154 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21155 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021156 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21157 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21158 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21159 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021160};
21161
21162static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
21163 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21164 0, 1, 0, msm_routing_get_switch_mixer,
21165 msm_routing_put_switch_mixer);
21166
21167static const struct snd_kcontrol_new slim1_fm_switch_mixer_controls =
21168 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21169 0, 1, 0, msm_routing_get_switch_mixer,
21170 msm_routing_put_switch_mixer);
21171
21172static const struct snd_kcontrol_new slim3_fm_switch_mixer_controls =
21173 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21174 0, 1, 0, msm_routing_get_switch_mixer,
21175 msm_routing_put_switch_mixer);
21176
21177static const struct snd_kcontrol_new slim4_fm_switch_mixer_controls =
21178 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21179 0, 1, 0, msm_routing_get_switch_mixer,
21180 msm_routing_put_switch_mixer);
21181
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053021182static const struct snd_kcontrol_new cdc_dma_wsa_switch_mixer_controls =
21183 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21184 0, 1, 0, msm_routing_get_switch_mixer,
21185 msm_routing_put_switch_mixer);
21186
21187static const struct snd_kcontrol_new cdc_dma_rx_switch_mixer_controls =
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053021188 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21189 0, 1, 0, msm_routing_get_switch_mixer,
21190 msm_routing_put_switch_mixer);
21191
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021192static const struct snd_kcontrol_new slim6_fm_switch_mixer_controls =
21193 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21194 0, 1, 0, msm_routing_get_switch_mixer,
21195 msm_routing_put_switch_mixer);
21196
21197static const struct snd_kcontrol_new pcm_rx_switch_mixer_controls =
21198 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21199 0, 1, 0, msm_routing_get_fm_pcmrx_switch_mixer,
21200 msm_routing_put_fm_pcmrx_switch_mixer);
21201
21202static const struct snd_kcontrol_new int0_mi2s_rx_switch_mixer_controls =
21203 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21204 0, 1, 0, msm_routing_get_int0_mi2s_switch_mixer,
21205 msm_routing_put_int0_mi2s_switch_mixer);
21206
21207static const struct snd_kcontrol_new int4_mi2s_rx_switch_mixer_controls =
21208 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21209 0, 1, 0, msm_routing_get_int4_mi2s_switch_mixer,
21210 msm_routing_put_int4_mi2s_switch_mixer);
21211
21212static const struct snd_kcontrol_new pri_mi2s_rx_switch_mixer_controls =
21213 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21214 0, 1, 0, msm_routing_get_pri_mi2s_switch_mixer,
21215 msm_routing_put_pri_mi2s_switch_mixer);
21216
21217static const struct snd_kcontrol_new sec_mi2s_rx_switch_mixer_controls =
21218 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21219 0, 1, 0, msm_routing_get_sec_mi2s_switch_mixer,
21220 msm_routing_put_sec_mi2s_switch_mixer);
21221
21222static const struct snd_kcontrol_new tert_mi2s_rx_switch_mixer_controls =
21223 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21224 0, 1, 0, msm_routing_get_tert_mi2s_switch_mixer,
21225 msm_routing_put_tert_mi2s_switch_mixer);
21226
21227static const struct snd_kcontrol_new quat_mi2s_rx_switch_mixer_controls =
21228 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21229 0, 1, 0, msm_routing_get_quat_mi2s_switch_mixer,
21230 msm_routing_put_quat_mi2s_switch_mixer);
21231
Rohit Kumara5077932017-09-10 22:05:05 +053021232static const struct snd_kcontrol_new quin_mi2s_rx_switch_mixer_controls =
21233 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21234 0, 1, 0, msm_routing_get_quin_mi2s_switch_mixer,
21235 msm_routing_put_quin_mi2s_switch_mixer);
21236
Karthikeyan Manic3700752019-03-11 18:33:53 -070021237static const struct snd_kcontrol_new sen_mi2s_rx_switch_mixer_controls =
21238 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21239 0, 1, 0, msm_routing_get_sen_mi2s_switch_mixer,
21240 msm_routing_put_sen_mi2s_switch_mixer);
21241
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021242static const struct snd_kcontrol_new hfp_pri_aux_switch_mixer_controls =
21243 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21244 0, 1, 0, msm_routing_get_hfp_switch_mixer,
21245 msm_routing_put_hfp_switch_mixer);
21246
21247static const struct snd_kcontrol_new hfp_aux_switch_mixer_controls =
21248 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21249 0, 1, 0, msm_routing_get_hfp_switch_mixer,
21250 msm_routing_put_hfp_switch_mixer);
21251
21252static const struct snd_kcontrol_new hfp_int_switch_mixer_controls =
21253 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21254 0, 1, 0, msm_routing_get_hfp_switch_mixer,
21255 msm_routing_put_hfp_switch_mixer);
21256
21257static const struct snd_kcontrol_new hfp_slim7_switch_mixer_controls =
21258 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21259 0, 1, 0, msm_routing_get_hfp_switch_mixer,
21260 msm_routing_put_hfp_switch_mixer);
21261
21262static const struct snd_kcontrol_new usb_switch_mixer_controls =
21263 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21264 0, 1, 0, msm_routing_get_usb_switch_mixer,
21265 msm_routing_put_usb_switch_mixer);
21266
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080021267static const struct snd_kcontrol_new a2dp_slim7_switch_mixer_controls =
21268 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21269 0, 1, 0, msm_routing_a2dp_switch_mixer_get,
21270 msm_routing_a2dp_switch_mixer_put);
21271
Zhou Songcaa541d2019-02-19 18:37:47 +080021272static const struct snd_kcontrol_new sco_slim7_switch_mixer_controls =
21273 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21274 0, 1, 0, msm_routing_sco_switch_mixer_get,
21275 msm_routing_sco_switch_mixer_put);
21276
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021277static const struct soc_enum lsm_port_enum =
21278 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_port_text), lsm_port_text);
21279
21280static const char * const lsm_func_text[] = {
21281 "None", "AUDIO", "BEACON", "ULTRASOUND", "SWAUDIO",
21282};
21283static const struct soc_enum lsm_func_enum =
21284 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_func_text), lsm_func_text);
21285
21286static const struct snd_kcontrol_new lsm_controls[] = {
21287 /* kcontrol of lsm_function */
21288 SOC_ENUM_EXT(SLIMBUS_0_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21289 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21290 SOC_ENUM_EXT(SLIMBUS_1_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21291 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21292 SOC_ENUM_EXT(SLIMBUS_2_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21293 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21294 SOC_ENUM_EXT(SLIMBUS_3_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21295 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21296 SOC_ENUM_EXT(SLIMBUS_4_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21297 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21298 SOC_ENUM_EXT(SLIMBUS_5_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21299 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21300 SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21301 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21302 SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21303 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21304 SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21305 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021306 SOC_ENUM_EXT(TX_CDC_DMA_TX_3_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21307 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021308 SOC_ENUM_EXT(QUIN_TDM_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21309 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021310 /* kcontrol of lsm_port */
21311 SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
21312 msm_routing_lsm_port_get,
21313 msm_routing_lsm_port_put),
21314 SOC_ENUM_EXT("LSM2 Port", lsm_port_enum,
21315 msm_routing_lsm_port_get,
21316 msm_routing_lsm_port_put),
21317 SOC_ENUM_EXT("LSM3 Port", lsm_port_enum,
21318 msm_routing_lsm_port_get,
21319 msm_routing_lsm_port_put),
21320 SOC_ENUM_EXT("LSM4 Port", lsm_port_enum,
21321 msm_routing_lsm_port_get,
21322 msm_routing_lsm_port_put),
21323 SOC_ENUM_EXT("LSM5 Port", lsm_port_enum,
21324 msm_routing_lsm_port_get,
21325 msm_routing_lsm_port_put),
21326 SOC_ENUM_EXT("LSM6 Port", lsm_port_enum,
21327 msm_routing_lsm_port_get,
21328 msm_routing_lsm_port_put),
21329 SOC_ENUM_EXT("LSM7 Port", lsm_port_enum,
21330 msm_routing_lsm_port_get,
21331 msm_routing_lsm_port_put),
21332 SOC_ENUM_EXT("LSM8 Port", lsm_port_enum,
21333 msm_routing_lsm_port_get,
21334 msm_routing_lsm_port_put),
21335};
21336
21337static const char * const aanc_slim_0_rx_text[] = {
21338 "ZERO", "SLIMBUS_0_TX", "SLIMBUS_1_TX", "SLIMBUS_2_TX", "SLIMBUS_3_TX",
21339 "SLIMBUS_4_TX", "SLIMBUS_5_TX", "SLIMBUS_6_TX"
21340};
21341
21342static const struct soc_enum aanc_slim_0_rx_enum =
21343 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(aanc_slim_0_rx_text),
21344 aanc_slim_0_rx_text);
21345
21346static const struct snd_kcontrol_new aanc_slim_0_rx_mux[] = {
21347 SOC_ENUM_EXT("AANC_SLIM_0_RX MUX", aanc_slim_0_rx_enum,
21348 msm_routing_slim_0_rx_aanc_mux_get,
21349 msm_routing_slim_0_rx_aanc_mux_put)
21350};
21351
Sudheer Papothic07b37a2018-05-04 05:56:47 +053021352static int msm_routing_aanc_noise_level_get(struct snd_kcontrol *kcontrol,
21353 struct snd_ctl_elem_value *ucontrol)
21354{
21355 ucontrol->value.integer.value[0] = aanc_level;
21356
21357 return 0;
21358}
21359
21360static int msm_routing_aanc_noise_level_put(struct snd_kcontrol *kcontrol,
21361 struct snd_ctl_elem_value *ucontrol)
21362{
21363 int ret = 0;
21364
21365 mutex_lock(&routing_lock);
21366 aanc_level = ucontrol->value.integer.value[0];
21367 pr_debug("%s: value: %ld\n",
21368 __func__, ucontrol->value.integer.value[0]);
21369 ret = afe_set_aanc_noise_level(aanc_level);
21370 mutex_unlock(&routing_lock);
21371
21372 return ret;
21373}
21374
21375static const struct snd_kcontrol_new aanc_noise_level[] = {
21376 SOC_SINGLE_EXT("AANC Noise Level", SND_SOC_NOPM, 0, 255,
21377 0, msm_routing_aanc_noise_level_get, msm_routing_aanc_noise_level_put)
21378};
21379
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021380static int msm_routing_get_stereo_to_custom_stereo_control(
21381 struct snd_kcontrol *kcontrol,
21382 struct snd_ctl_elem_value *ucontrol)
21383{
21384 ucontrol->value.integer.value[0] = is_custom_stereo_on;
21385 return 0;
21386}
21387
21388static int msm_routing_put_stereo_to_custom_stereo_control(
21389 struct snd_kcontrol *kcontrol,
21390 struct snd_ctl_elem_value *ucontrol)
21391{
21392 int flag = 0, i = 0, rc = 0, idx = 0;
21393 int be_index = 0, port_id, topo_id;
21394 unsigned int session_id = 0;
21395 uint16_t op_FL_ip_FL_weight = 0;
21396 uint16_t op_FL_ip_FR_weight = 0;
21397 uint16_t op_FR_ip_FL_weight = 0;
21398 uint16_t op_FR_ip_FR_weight = 0;
21399
21400 flag = ucontrol->value.integer.value[0];
21401 pr_debug("%s E flag %d\n", __func__, flag);
21402
21403 if ((is_custom_stereo_on && flag) || (!is_custom_stereo_on && !flag)) {
21404 pr_err("%s: is_custom_stereo_on %d, flag %d\n",
21405 __func__, is_custom_stereo_on, flag);
21406 return 0;
21407 }
21408 is_custom_stereo_on = flag ? true : false;
21409 pr_debug("%s:is_custom_stereo_on %d\n", __func__, is_custom_stereo_on);
21410 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
21411 port_id = msm_bedais[be_index].port_id;
21412 if (!msm_bedais[be_index].active)
21413 continue;
21414 if ((port_id != SLIMBUS_0_RX) &&
21415 (port_id != RT_PROXY_PORT_001_RX) &&
21416 (port_id != AFE_PORT_ID_PRIMARY_MI2S_RX) &&
21417 (port_id != AFE_PORT_ID_INT4_MI2S_RX))
21418 continue;
21419
21420 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
21421 MSM_FRONTEND_DAI_MM_SIZE) {
21422 if (fe_dai_map[i][SESSION_TYPE_RX].perf_mode !=
21423 LEGACY_PCM_MODE)
21424 goto skip_send_custom_stereo;
21425 session_id =
21426 fe_dai_map[i][SESSION_TYPE_RX].strm_id;
21427 if (is_custom_stereo_on) {
21428 op_FL_ip_FL_weight =
21429 Q14_GAIN_ZERO_POINT_FIVE;
21430 op_FL_ip_FR_weight =
21431 Q14_GAIN_ZERO_POINT_FIVE;
21432 op_FR_ip_FL_weight =
21433 Q14_GAIN_ZERO_POINT_FIVE;
21434 op_FR_ip_FR_weight =
21435 Q14_GAIN_ZERO_POINT_FIVE;
21436 } else {
21437 op_FL_ip_FL_weight = Q14_GAIN_UNITY;
21438 op_FL_ip_FR_weight = 0;
21439 op_FR_ip_FL_weight = 0;
21440 op_FR_ip_FR_weight = Q14_GAIN_UNITY;
21441 }
21442 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
21443 unsigned long copp =
21444 session_copp_map[i]
21445 [SESSION_TYPE_RX][be_index];
21446 if (!test_bit(idx, &copp))
21447 goto skip_send_custom_stereo;
21448 topo_id = adm_get_topology_for_port_copp_idx(
21449 msm_bedais[be_index].port_id, idx);
21450 if (topo_id < 0)
21451 pr_debug("%s:Err:custom stereo topo %d",
21452 __func__, topo_id);
21453 pr_debug("idx %d\n", idx);
21454 if (topo_id == DS2_ADM_COPP_TOPOLOGY_ID)
21455 rc = msm_ds2_dap_set_custom_stereo_onoff
21456 (msm_bedais[be_index].port_id,
21457 idx, is_custom_stereo_on);
21458 else if (topo_id == DOLBY_ADM_COPP_TOPOLOGY_ID)
21459 rc = dolby_dap_set_custom_stereo_onoff(
21460 msm_bedais[be_index].port_id,
21461 idx, is_custom_stereo_on);
21462 else
21463 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd
21464 (msm_bedais[be_index].port_id,
21465 idx, session_id,
21466 op_FL_ip_FL_weight,
21467 op_FL_ip_FR_weight,
21468 op_FR_ip_FL_weight,
21469 op_FR_ip_FR_weight);
21470 if (rc < 0)
21471skip_send_custom_stereo:
21472 pr_err("%s: err setting custom stereo\n",
21473 __func__);
21474 }
21475
21476 }
21477 }
21478 return 0;
21479}
21480
21481static const struct snd_kcontrol_new stereo_to_custom_stereo_controls[] = {
21482 SOC_SINGLE_EXT("Set Custom Stereo OnOff", SND_SOC_NOPM, 0,
21483 1, 0, msm_routing_get_stereo_to_custom_stereo_control,
21484 msm_routing_put_stereo_to_custom_stereo_control),
21485};
21486
21487static int msm_routing_get_app_type_cfg_control(struct snd_kcontrol *kcontrol,
21488 struct snd_ctl_elem_value *ucontrol)
21489{
21490 return 0;
21491}
21492
21493static int msm_routing_put_app_type_cfg_control(struct snd_kcontrol *kcontrol,
21494 struct snd_ctl_elem_value *ucontrol)
21495{
21496 int i = 0, j;
21497 int num_app_types = ucontrol->value.integer.value[i++];
21498
21499 pr_debug("%s\n", __func__);
21500
21501 memset(app_type_cfg, 0, MAX_APP_TYPES*
21502 sizeof(struct msm_pcm_routing_app_type_data));
21503 if (num_app_types > MAX_APP_TYPES) {
21504 pr_err("%s: number of app types exceed the max supported\n",
21505 __func__);
21506 return -EINVAL;
21507 }
21508 for (j = 0; j < num_app_types; j++) {
21509 app_type_cfg[j].app_type =
21510 ucontrol->value.integer.value[i++];
21511 app_type_cfg[j].sample_rate =
21512 ucontrol->value.integer.value[i++];
21513 app_type_cfg[j].bit_width =
21514 ucontrol->value.integer.value[i++];
21515 }
21516
21517 return 0;
21518}
21519
21520static int msm_routing_put_app_type_gain_control(struct snd_kcontrol *kcontrol,
21521 struct snd_ctl_elem_value *ucontrol)
21522{
21523 int j, fe_id, be_id, port_type;
21524 int ret = 0;
21525 unsigned long copp;
21526 struct msm_pcm_routing_bdai_data *bedai;
21527 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
21528 SESSION_TYPE_RX;
21529 int app_type = ucontrol->value.integer.value[1];
21530 int gain = (ucontrol->value.integer.value[2] +
21531 ucontrol->value.integer.value[3])/2;
21532
21533 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
21534 MSM_AFE_PORT_TYPE_TX;
21535
21536 mutex_lock(&routing_lock);
21537 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
21538 if (is_be_dai_extproc(be_id))
21539 continue;
21540
21541 bedai = &msm_bedais[be_id];
21542 if (afe_get_port_type(bedai->port_id) != port_type)
21543 continue;
21544
21545 if (!bedai->active)
21546 continue;
21547
21548 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
21549 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
21550 continue;
21551
21552 if (app_type !=
21553 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
21554 continue;
21555
21556 copp = session_copp_map[fe_id][dir][be_id];
21557 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
21558 if (!test_bit(j, &copp))
21559 continue;
21560 ret |= adm_set_volume(bedai->port_id, j, gain);
21561 }
21562 }
21563 }
21564 mutex_unlock(&routing_lock);
21565 return ret ? -EINVAL : 0;
21566}
21567
21568static const struct snd_kcontrol_new app_type_cfg_controls[] = {
21569 SOC_SINGLE_MULTI_EXT("App Type Config", SND_SOC_NOPM, 0,
Guodong Hu2479acc2019-05-24 10:15:33 +080021570 0x7FFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021571 msm_routing_put_app_type_cfg_control),
21572 SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
21573 0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
21574};
21575
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021576static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,
21577 struct snd_ctl_elem_value *ucontrol)
21578{
21579 int copp_idx, fe_id, be_id, port_type;
21580 int ret = 0;
21581 unsigned long copp;
21582 struct msm_pcm_routing_bdai_data *bedai;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021583 u8 *packed_params = NULL;
21584 struct param_hdr_v3 param_hdr;
21585 u32 packed_param_size = (sizeof(struct param_hdr_v3) +
21586 sizeof(uint32_t));
21587
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021588 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
21589 SESSION_TYPE_RX;
21590 int app_type = ucontrol->value.integer.value[1];
21591 int module_id = ucontrol->value.integer.value[2];
21592 int instance_id = ucontrol->value.integer.value[3];
21593 int param_id = ucontrol->value.integer.value[4];
21594 int param_value = ucontrol->value.integer.value[5];
21595
21596 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
21597 MSM_AFE_PORT_TYPE_TX;
21598 pr_debug("%s app_type:%d mod_id:%d instance_id:%d param_id:%d value:%d\n",
21599 __func__, app_type, module_id,
21600 instance_id, param_id, param_value);
21601
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021602 packed_params = kzalloc(packed_param_size, GFP_KERNEL);
21603 if (!packed_params)
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021604 return -ENOMEM;
21605
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021606 memset(&param_hdr, 0, sizeof(param_hdr));
21607 param_hdr.module_id = module_id;
21608 param_hdr.instance_id = instance_id;
21609 param_hdr.param_id = param_id;
21610 param_hdr.param_size = sizeof(uint32_t);
21611
21612 packed_param_size = 0;
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021613
21614 mutex_lock(&routing_lock);
21615 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
21616 if (is_be_dai_extproc(be_id))
21617 continue;
21618
21619 bedai = &msm_bedais[be_id];
21620 if (afe_get_port_type(bedai->port_id) != port_type)
21621 continue;
21622
21623 if (!bedai->active)
21624 continue;
21625
21626 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
21627 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
21628 continue;
21629
21630 if (app_type !=
21631 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
21632 continue;
21633
21634 copp = session_copp_map[fe_id][dir][be_id];
21635 for (copp_idx = 0; copp_idx < MAX_COPPS_PER_PORT;
21636 copp_idx++) {
21637 if (!test_bit(copp_idx, &copp))
21638 continue;
21639
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021640 ret = q6common_pack_pp_params(packed_params,
21641 &param_hdr,
21642 (u8 *) &param_value,
21643 &packed_param_size);
21644 if (ret) {
21645 pr_err("%s: Failed to pack params, error %d\n",
21646 __func__, ret);
21647 goto done;
21648 }
21649
21650 ret = adm_set_pp_params(bedai->port_id,
21651 copp_idx, NULL,
21652 packed_params,
21653 packed_param_size);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021654 if (ret) {
21655 pr_err("%s: Setting param failed with err=%d\n",
21656 __func__, ret);
21657 ret = -EINVAL;
21658 goto done;
21659 }
21660 }
21661 }
21662 }
21663done:
21664 mutex_unlock(&routing_lock);
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021665 kfree(packed_params);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021666 return ret;
21667}
21668
21669static const struct snd_kcontrol_new module_cfg_controls[] = {
21670 SOC_SINGLE_MULTI_EXT("Audio Effect", SND_SOC_NOPM, 0,
21671 0x2000, 0, 6, NULL, msm_routing_put_module_cfg_control)
21672};
21673
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021674static int msm_routing_get_lsm_app_type_cfg_control(
21675 struct snd_kcontrol *kcontrol,
21676 struct snd_ctl_elem_value *ucontrol)
21677{
Meng Wangadbca4f2018-10-29 14:30:13 +080021678 int shift = ((struct soc_multi_mixer_control *)
21679 kcontrol->private_value)->shift;
21680 int i = 0, j = 0;
21681
21682 ucontrol->value.integer.value[i] = num_app_cfg_types;
21683
21684 for (j = 0; j < num_app_cfg_types; ++j) {
21685 ucontrol->value.integer.value[++i] =
21686 lsm_app_type_cfg[j].app_type;
21687 ucontrol->value.integer.value[++i] =
21688 lsm_app_type_cfg[j].sample_rate;
21689 ucontrol->value.integer.value[++i] =
21690 lsm_app_type_cfg[j].bit_width;
21691 if (shift == 1)
21692 ucontrol->value.integer.value[++i] =
21693 lsm_app_type_cfg[j].num_out_channels;
21694 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021695 return 0;
21696}
21697
21698static int msm_routing_put_lsm_app_type_cfg_control(
21699 struct snd_kcontrol *kcontrol,
21700 struct snd_ctl_elem_value *ucontrol)
21701{
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070021702 int shift = ((struct soc_multi_mixer_control *)
21703 kcontrol->private_value)->shift;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021704 int i = 0, j;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021705
Ajit Pandey248ce562019-09-06 10:51:02 +053021706 if (ucontrol->value.integer.value[0] > MAX_APP_TYPES) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021707 pr_err("%s: number of app types exceed the max supported\n",
21708 __func__);
21709 return -EINVAL;
21710 }
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070021711
Ajit Pandey248ce562019-09-06 10:51:02 +053021712 num_app_cfg_types = ucontrol->value.integer.value[i++];
21713 memset(lsm_app_type_cfg, 0, MAX_APP_TYPES*
21714 sizeof(struct msm_pcm_routing_app_type_data));
21715
Meng Wangadbca4f2018-10-29 14:30:13 +080021716 for (j = 0; j < num_app_cfg_types; j++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021717 lsm_app_type_cfg[j].app_type =
21718 ucontrol->value.integer.value[i++];
21719 lsm_app_type_cfg[j].sample_rate =
21720 ucontrol->value.integer.value[i++];
21721 lsm_app_type_cfg[j].bit_width =
21722 ucontrol->value.integer.value[i++];
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070021723 /* Shift of 1 indicates this is V2 mixer control */
21724 if (shift == 1)
21725 lsm_app_type_cfg[j].num_out_channels =
21726 ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021727 }
21728
21729 return 0;
21730}
21731
21732static const struct snd_kcontrol_new lsm_app_type_cfg_controls[] = {
21733 SOC_SINGLE_MULTI_EXT("Listen App Type Config", SND_SOC_NOPM, 0,
21734 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
21735 msm_routing_put_lsm_app_type_cfg_control),
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070021736 SOC_SINGLE_MULTI_EXT("Listen App Type Config V2", SND_SOC_NOPM, 1,
21737 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
21738 msm_routing_put_lsm_app_type_cfg_control),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021739};
21740
21741static int msm_routing_get_use_ds1_or_ds2_control(
21742 struct snd_kcontrol *kcontrol,
21743 struct snd_ctl_elem_value *ucontrol)
21744{
21745 ucontrol->value.integer.value[0] = is_ds2_on;
21746 return 0;
21747}
21748
21749static int msm_routing_put_use_ds1_or_ds2_control(
21750 struct snd_kcontrol *kcontrol,
21751 struct snd_ctl_elem_value *ucontrol)
21752{
21753 is_ds2_on = ucontrol->value.integer.value[0];
21754 return 0;
21755}
21756
21757static const struct snd_kcontrol_new use_ds1_or_ds2_controls[] = {
21758 SOC_SINGLE_EXT("DS2 OnOff", SND_SOC_NOPM, 0,
21759 1, 0, msm_routing_get_use_ds1_or_ds2_control,
21760 msm_routing_put_use_ds1_or_ds2_control),
21761};
21762
Ramlal Karrab6ef9e02019-08-14 17:53:29 +053021763static int msm_routing_get_hifi_filter_control(
21764 struct snd_kcontrol *kcontrol,
21765 struct snd_ctl_elem_value *ucontrol)
21766{
21767 ucontrol->value.integer.value[0] = hifi_filter_enabled;
21768 return 0;
21769}
21770
21771static int msm_routing_put_hifi_filter_control(
21772 struct snd_kcontrol *kcontrol,
21773 struct snd_ctl_elem_value *ucontrol)
21774{
21775 hifi_filter_enabled = ucontrol->value.integer.value[0];
21776 return 0;
21777}
21778
21779static const struct snd_kcontrol_new hifi_filter_controls[] = {
21780 SOC_SINGLE_EXT("HiFi Filter", SND_SOC_NOPM, 0,
21781 1, 0, msm_routing_get_hifi_filter_control,
21782 msm_routing_put_hifi_filter_control),
21783};
21784
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021785int msm_routing_get_rms_value_control(struct snd_kcontrol *kcontrol,
21786 struct snd_ctl_elem_value *ucontrol) {
21787 int rc = 0;
21788 int be_idx = 0;
21789 char *param_value;
21790 int *update_param_value;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021791 uint32_t param_size = (RMS_PAYLOAD_LEN + 1) * sizeof(uint32_t);
21792 struct param_hdr_v3 param_hdr;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021793
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021794 param_value = kzalloc(param_size, GFP_KERNEL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021795 if (!param_value)
21796 return -ENOMEM;
21797
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021798 memset(&param_hdr, 0, sizeof(param_hdr));
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021799 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++)
21800 if (msm_bedais[be_idx].port_id == SLIMBUS_0_TX)
21801 break;
21802 if ((be_idx < MSM_BACKEND_DAI_MAX) && msm_bedais[be_idx].active) {
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021803 param_hdr.module_id = RMS_MODULEID_APPI_PASSTHRU;
21804 param_hdr.instance_id = INSTANCE_ID_0;
21805 param_hdr.param_id = RMS_PARAM_FIRST_SAMPLE;
21806 param_hdr.param_size = param_size;
21807 rc = adm_get_pp_params(SLIMBUS_0_TX, 0, ADM_CLIENT_ID_DEFAULT,
21808 NULL, &param_hdr, (u8 *) param_value);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021809 if (rc) {
21810 pr_err("%s: get parameters failed:%d\n", __func__, rc);
21811 kfree(param_value);
21812 return -EINVAL;
21813 }
21814 update_param_value = (int *)param_value;
21815 ucontrol->value.integer.value[0] = update_param_value[0];
21816
21817 pr_debug("%s: FROM DSP value[0] 0x%x\n",
21818 __func__, update_param_value[0]);
21819 }
21820 kfree(param_value);
21821 return 0;
21822}
21823
21824static int msm_voc_session_id_put(struct snd_kcontrol *kcontrol,
21825 struct snd_ctl_elem_value *ucontrol)
21826{
21827 voc_session_id = ucontrol->value.integer.value[0];
21828
21829 pr_debug("%s: voc_session_id=%u\n", __func__, voc_session_id);
21830
21831 return 0;
21832}
21833
21834static int msm_voc_session_id_get(struct snd_kcontrol *kcontrol,
21835 struct snd_ctl_elem_value *ucontrol)
21836{
21837 ucontrol->value.integer.value[0] = voc_session_id;
21838
21839 return 0;
21840}
21841
21842static struct snd_kcontrol_new msm_voc_session_controls[] = {
21843 SOC_SINGLE_MULTI_EXT("Voc VSID", SND_SOC_NOPM, 0,
21844 0xFFFFFFFF, 0, 1, msm_voc_session_id_get,
21845 msm_voc_session_id_put),
21846};
21847
21848static int msm_sound_focus_info(struct snd_kcontrol *kcontrol,
21849 struct snd_ctl_elem_info *uinfo)
21850{
21851 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
21852 uinfo->count = sizeof(struct sound_focus_param);
21853
21854 return 0;
21855}
21856
21857static int msm_voice_sound_focus_put(struct snd_kcontrol *kcontrol,
21858 struct snd_ctl_elem_value *ucontrol)
21859{
21860 int ret = 0;
21861 struct sound_focus_param soundFocusData;
21862
21863 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
21864 sizeof(struct sound_focus_param));
21865 ret = voc_set_sound_focus(soundFocusData);
21866 if (ret) {
21867 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
21868 __func__, ret);
21869
21870 ret = -EINVAL;
21871 }
21872
21873 return ret;
21874}
21875
21876static int msm_voice_sound_focus_get(struct snd_kcontrol *kcontrol,
21877 struct snd_ctl_elem_value *ucontrol)
21878{
21879 int ret = 0;
21880 struct sound_focus_param soundFocusData;
21881
21882 memset(&soundFocusData, 0, sizeof(struct sound_focus_param));
21883
21884 ret = voc_get_sound_focus(&soundFocusData);
21885 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070021886 pr_debug("%s: Error getting Sound Focus Params, err=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021887 __func__, ret);
21888
21889 ret = -EINVAL;
21890 goto done;
21891 }
21892 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
21893 sizeof(struct sound_focus_param));
21894
21895done:
21896 return ret;
21897}
21898
21899static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
21900 struct snd_ctl_elem_info *uinfo)
21901{
21902 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
21903 uinfo->count = sizeof(struct source_tracking_param);
21904
21905 return 0;
21906}
21907
21908static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
21909 struct snd_ctl_elem_value *ucontrol)
21910{
Meng Wang92edfde2018-04-24 12:18:37 +080021911 int ret = 0;
21912 struct source_tracking_param sourceTrackingData;
21913
21914 memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
21915
21916 ret = voc_get_source_tracking(&sourceTrackingData);
21917 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070021918 pr_debug("%s: Error getting Source Tracking Params, err=%d\n",
Meng Wang92edfde2018-04-24 12:18:37 +080021919 __func__, ret);
21920
21921 ret = -EINVAL;
21922 goto done;
21923 }
21924 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
21925 sizeof(struct source_tracking_param));
21926
21927done:
21928 return ret;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021929}
21930
21931static int msm_audio_get_copp_idx_from_port_id(int port_id, int session_type,
21932 int *copp_idx)
21933{
21934 int i, idx, be_idx;
21935 int ret = 0;
21936 unsigned long copp;
21937
21938 pr_debug("%s: Enter, port_id=%d\n", __func__, port_id);
21939
21940 ret = q6audio_validate_port(port_id);
21941 if (ret < 0) {
21942 pr_err("%s: port validation failed id 0x%x ret %d\n",
21943 __func__, port_id, ret);
21944
21945 ret = -EINVAL;
21946 goto done;
21947 }
21948
21949 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
21950 if (msm_bedais[be_idx].port_id == port_id)
21951 break;
21952 }
21953 if (be_idx >= MSM_BACKEND_DAI_MAX) {
21954 pr_err("%s: Invalid be id %d\n", __func__, be_idx);
21955
21956 ret = -EINVAL;
21957 goto done;
21958 }
21959
21960 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053021961 MSM_FRONTEND_DAI_MAX) {
21962 if (!(is_mm_lsm_fe_id(i) &&
21963 route_check_fe_id_adm_support(i)))
21964 continue;
21965
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021966 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
21967 copp = session_copp_map[i]
21968 [session_type][be_idx];
21969 if (test_bit(idx, &copp))
21970 break;
21971 }
21972 if (idx >= MAX_COPPS_PER_PORT)
21973 continue;
21974 else
21975 break;
21976 }
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053021977 if (i >= MSM_FRONTEND_DAI_MAX) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070021978 pr_debug("%s: Invalid FE, exiting\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021979
21980 ret = -EINVAL;
21981 goto done;
21982 }
21983 *copp_idx = idx;
21984 pr_debug("%s: copp_idx=%d\n", __func__, *copp_idx);
21985
21986done:
21987 return ret;
21988}
21989
21990static int msm_audio_sound_focus_derive_port_id(struct snd_kcontrol *kcontrol,
21991 const char *prefix, int *port_id)
21992{
21993 int ret = 0;
21994
21995 pr_debug("%s: Enter, prefix:%s\n", __func__, prefix);
21996
21997 /*
21998 * Mixer control name will be like "Sound Focus Audio Tx SLIMBUS_0"
21999 * where the prefix is "Sound Focus Audio Tx ". Skip the prefix
22000 * and compare the string with the backend name to derive the port id.
22001 */
22002 if (!strcmp(kcontrol->id.name + strlen(prefix),
22003 "SLIMBUS_0")) {
22004 *port_id = SLIMBUS_0_TX;
22005 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22006 "TERT_MI2S")) {
22007 *port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
22008 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22009 "INT3_MI2S")) {
22010 *port_id = AFE_PORT_ID_INT3_MI2S_TX;
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053022011 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22012 "VA_CDC_DMA_TX_0")) {
22013 *port_id = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053022014 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22015 "TX_CDC_DMA_TX_3")) {
22016 *port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022017 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22018 "QUIN_TDM_TX_0")) {
22019 *port_id = AFE_PORT_ID_QUINARY_TDM_TX;
Sachin Mohan Gadagd34b26d2018-07-16 19:53:19 +053022020 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22021 "PRIMARY_TDM")) {
22022 *port_id = AFE_PORT_ID_PRIMARY_TDM_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022023 } else {
22024 pr_err("%s: mixer ctl name=%s, could not derive valid port id\n",
22025 __func__, kcontrol->id.name);
22026
22027 ret = -EINVAL;
22028 goto done;
22029 }
22030 pr_debug("%s: mixer ctl name=%s, derived port_id=%d\n",
22031 __func__, kcontrol->id.name, *port_id);
22032
22033done:
22034 return ret;
22035}
22036
22037static int msm_audio_sound_focus_put(struct snd_kcontrol *kcontrol,
22038 struct snd_ctl_elem_value *ucontrol)
22039{
22040 int ret = 0;
22041 struct sound_focus_param soundFocusData;
22042 int port_id, copp_idx;
22043
22044 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
22045 "Sound Focus Audio Tx ", &port_id);
22046 if (ret != 0) {
22047 pr_err("%s: Error in deriving port id, err=%d\n",
22048 __func__, ret);
22049
22050 ret = -EINVAL;
22051 goto done;
22052 }
22053
22054 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
22055 &copp_idx);
22056 if (ret) {
22057 pr_err("%s: Could not get copp idx for port_id=%d\n",
22058 __func__, port_id);
22059
22060 ret = -EINVAL;
22061 goto done;
22062 }
22063
22064 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
22065 sizeof(struct sound_focus_param));
22066
22067 ret = adm_set_sound_focus(port_id, copp_idx, soundFocusData);
22068 if (ret) {
22069 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
22070 __func__, ret);
22071
22072 ret = -EINVAL;
22073 goto done;
22074 }
22075
22076done:
22077 return ret;
22078}
22079
22080static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
22081 struct snd_ctl_elem_value *ucontrol)
22082{
22083 int ret = 0;
22084 struct sound_focus_param soundFocusData;
22085 int port_id, copp_idx;
22086
22087 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
22088 "Sound Focus Audio Tx ", &port_id);
22089 if (ret) {
22090 pr_err("%s: Error in deriving port id, err=%d\n",
22091 __func__, ret);
22092
22093 ret = -EINVAL;
22094 goto done;
22095 }
22096
22097 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
22098 &copp_idx);
22099 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070022100 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022101 __func__, port_id);
22102
22103 ret = -EINVAL;
22104 goto done;
22105 }
22106
22107 ret = adm_get_sound_focus(port_id, copp_idx, &soundFocusData);
22108 if (ret) {
22109 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
22110 __func__, ret);
22111
22112 ret = -EINVAL;
22113 goto done;
22114 }
22115
22116 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
22117 sizeof(struct sound_focus_param));
22118
22119done:
22120 return ret;
22121}
22122
22123static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
22124 struct snd_ctl_elem_value *ucontrol)
22125{
22126 int ret = 0;
22127 struct source_tracking_param sourceTrackingData;
22128 int port_id, copp_idx;
22129
22130 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
22131 "Source Tracking Audio Tx ", &port_id);
22132 if (ret) {
22133 pr_err("%s: Error in deriving port id, err=%d\n",
22134 __func__, ret);
22135
22136 ret = -EINVAL;
22137 goto done;
22138 }
22139
22140 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
22141 &copp_idx);
22142 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070022143 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022144 __func__, port_id);
22145
22146 ret = -EINVAL;
22147 goto done;
22148 }
22149
22150 ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
22151 if (ret) {
22152 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
22153 __func__, ret);
22154
22155 ret = -EINVAL;
22156 goto done;
22157 }
22158
22159 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
22160 sizeof(struct source_tracking_param));
22161
22162done:
22163 return ret;
22164}
22165
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053022166static int msm_doa_tracking_mon_info(struct snd_kcontrol *kcontrol,
22167 struct snd_ctl_elem_info *uinfo)
22168{
22169 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
22170 uinfo->count = sizeof(struct doa_tracking_mon_param);
22171
22172 return 0;
22173}
22174
22175static int msm_doa_tracking_mon_get(struct snd_kcontrol *kcontrol,
22176 struct snd_ctl_elem_value *ucontrol)
22177{
22178 int ret = 0;
22179 struct doa_tracking_mon_param doa_tracking_data;
22180 int port_id, copp_idx;
22181
22182 memset(&doa_tracking_data, 0, sizeof(struct doa_tracking_mon_param));
22183 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
22184 "Doa Tracking Monitor Listen ", &port_id);
22185 if (ret) {
22186 pr_err("%s: Error in deriving port id, err=%d\n",
22187 __func__, ret);
22188 ret = -EINVAL;
22189 goto done;
22190 }
22191
22192 /*
22193 * If copp id exists for given port id, query adm to get doa data.
22194 * Else query afe for doa tracking params.
22195 * This is to support in cases where LSM directly connects to
22196 * AFE for FFNS.
22197 */
22198 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
22199 &copp_idx);
22200 if (!ret)
22201 ret = adm_get_doa_tracking_mon(port_id, copp_idx,
22202 &doa_tracking_data);
22203 else
22204 ret = afe_get_doa_tracking_mon(port_id, &doa_tracking_data);
22205
22206 if (ret) {
22207 pr_err("%s: Error getting Doa Tracking Params, err=%d\n",
22208 __func__, ret);
22209 ret = -EINVAL;
22210 goto done;
22211 }
22212
22213 memcpy(ucontrol->value.bytes.data, (void *)&doa_tracking_data,
22214 sizeof(struct doa_tracking_mon_param));
22215done:
22216 return ret;
22217}
22218
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022219static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
22220 {
22221 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22222 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22223 .name = "Sound Focus Voice Tx SLIMBUS_0",
22224 .info = msm_sound_focus_info,
22225 .get = msm_voice_sound_focus_get,
22226 .put = msm_voice_sound_focus_put,
22227 },
22228 {
22229 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22230 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22231 .name = "Source Tracking Voice Tx SLIMBUS_0",
22232 .info = msm_source_tracking_info,
22233 .get = msm_voice_source_tracking_get,
22234 },
22235 {
22236 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22237 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22238 .name = "Sound Focus Audio Tx SLIMBUS_0",
22239 .info = msm_sound_focus_info,
22240 .get = msm_audio_sound_focus_get,
22241 .put = msm_audio_sound_focus_put,
22242 },
22243 {
22244 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22245 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22246 .name = "Source Tracking Audio Tx SLIMBUS_0",
22247 .info = msm_source_tracking_info,
22248 .get = msm_audio_source_tracking_get,
22249 },
22250 {
22251 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22252 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22253 .name = "Sound Focus Voice Tx TERT_MI2S",
22254 .info = msm_sound_focus_info,
22255 .get = msm_voice_sound_focus_get,
22256 .put = msm_voice_sound_focus_put,
22257 },
22258 {
22259 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22260 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22261 .name = "Source Tracking Voice Tx TERT_MI2S",
22262 .info = msm_source_tracking_info,
22263 .get = msm_voice_source_tracking_get,
22264 },
22265 {
22266 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22267 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22268 .name = "Sound Focus Audio Tx TERT_MI2S",
22269 .info = msm_sound_focus_info,
22270 .get = msm_audio_sound_focus_get,
22271 .put = msm_audio_sound_focus_put,
22272 },
22273 {
22274 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22275 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22276 .name = "Source Tracking Audio Tx TERT_MI2S",
22277 .info = msm_source_tracking_info,
22278 .get = msm_audio_source_tracking_get,
22279 },
22280 {
22281 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22282 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22283 .name = "Sound Focus Voice Tx INT3_MI2S",
22284 .info = msm_sound_focus_info,
22285 .get = msm_voice_sound_focus_get,
22286 .put = msm_voice_sound_focus_put,
22287 },
22288 {
22289 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22290 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22291 .name = "Source Tracking Voice Tx INT3_MI2S",
22292 .info = msm_source_tracking_info,
22293 .get = msm_voice_source_tracking_get,
22294 },
22295 {
22296 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22297 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22298 .name = "Sound Focus Audio Tx INT3_MI2S",
22299 .info = msm_sound_focus_info,
22300 .get = msm_audio_sound_focus_get,
22301 .put = msm_audio_sound_focus_put,
22302 },
22303 {
22304 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22305 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22306 .name = "Source Tracking Audio Tx INT3_MI2S",
22307 .info = msm_source_tracking_info,
22308 .get = msm_audio_source_tracking_get,
22309 },
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053022310 {
22311 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22312 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22313 .name = "Sound Focus Voice Tx VA_CDC_DMA_TX_0",
22314 .info = msm_sound_focus_info,
22315 .get = msm_voice_sound_focus_get,
22316 .put = msm_voice_sound_focus_put,
22317 },
22318 {
22319 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22320 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22321 .name = "Source Tracking Voice Tx VA_CDC_DMA_TX_0",
22322 .info = msm_source_tracking_info,
22323 .get = msm_voice_source_tracking_get,
22324 },
22325 {
22326 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22327 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22328 .name = "Sound Focus Audio Tx VA_CDC_DMA_TX_0",
22329 .info = msm_sound_focus_info,
22330 .get = msm_audio_sound_focus_get,
22331 .put = msm_audio_sound_focus_put,
22332 },
22333 {
22334 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22335 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22336 .name = "Source Tracking Audio Tx VA_CDC_DMA_TX_0",
22337 .info = msm_source_tracking_info,
22338 .get = msm_audio_source_tracking_get,
22339 },
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053022340 {
22341 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22342 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22343 .name = "Sound Focus Voice Tx TX_CDC_DMA_TX_3",
22344 .info = msm_sound_focus_info,
22345 .get = msm_voice_sound_focus_get,
22346 .put = msm_voice_sound_focus_put,
22347 },
22348 {
22349 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22350 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22351 .name = "Source Tracking Voice Tx TX_CDC_DMA_TX_3",
22352 .info = msm_source_tracking_info,
22353 .get = msm_voice_source_tracking_get,
22354 },
22355 {
22356 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22357 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22358 .name = "Sound Focus Audio Tx TX_CDC_DMA_TX_3",
22359 .info = msm_sound_focus_info,
22360 .get = msm_audio_sound_focus_get,
22361 .put = msm_audio_sound_focus_put,
22362 },
22363 {
22364 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22365 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22366 .name = "Source Tracking Audio Tx TX_CDC_DMA_TX_3",
22367 .info = msm_source_tracking_info,
22368 .get = msm_audio_source_tracking_get,
22369 },
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022370 {
22371 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22372 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22373 .name = "Sound Focus Voice Tx QUIN_TDM_TX_0",
22374 .info = msm_sound_focus_info,
22375 .get = msm_voice_sound_focus_get,
22376 .put = msm_voice_sound_focus_put,
22377 },
22378 {
22379 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22380 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22381 .name = "Source Tracking Voice Tx QUIN_TDM_TX_0",
22382 .info = msm_source_tracking_info,
22383 .get = msm_voice_source_tracking_get,
22384 },
22385 {
22386 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22387 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22388 .name = "Sound Focus Audio Tx QUIN_TDM_TX_0",
22389 .info = msm_sound_focus_info,
22390 .get = msm_audio_sound_focus_get,
22391 .put = msm_audio_sound_focus_put,
22392 },
22393 {
22394 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22395 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22396 .name = "Source Tracking Audio Tx QUIN_TDM_TX_0",
22397 .info = msm_source_tracking_info,
22398 .get = msm_audio_source_tracking_get,
22399 },
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053022400 {
Sachin Mohan Gadagd34b26d2018-07-16 19:53:19 +053022401 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22402 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22403 .name = "Sound Focus Audio Tx PRIMARY_TDM",
22404 .info = msm_sound_focus_info,
22405 .get = msm_audio_sound_focus_get,
22406 .put = msm_audio_sound_focus_put,
22407 },
22408 {
22409 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22410 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22411 .name = "Source Tracking Audio Tx PRIMARY_TDM",
22412 .info = msm_source_tracking_info,
22413 .get = msm_audio_source_tracking_get,
22414 },
22415 {
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053022416 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22417 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22418 .name = "Doa Tracking Monitor Listen VA_CDC_DMA_TX_0",
22419 .info = msm_doa_tracking_mon_info,
22420 .get = msm_doa_tracking_mon_get,
22421 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022422};
22423
22424static int spkr_prot_put_vi_lch_port(struct snd_kcontrol *kcontrol,
22425 struct snd_ctl_elem_value *ucontrol)
22426{
22427 int ret = 0;
22428 int item;
22429 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
22430
22431 pr_debug("%s item is %d\n", __func__,
22432 ucontrol->value.enumerated.item[0]);
22433 mutex_lock(&routing_lock);
22434 item = ucontrol->value.enumerated.item[0];
22435 if (item < e->items) {
22436 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
22437 __func__, e->shift_l, e->values[item]);
22438 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
22439 e->values[item] < MSM_BACKEND_DAI_MAX)
22440 /* Enable feedback TX path */
22441 ret = afe_spk_prot_feed_back_cfg(
22442 msm_bedais[e->values[item]].port_id,
22443 msm_bedais[e->shift_l].port_id, 1, 0, 1);
22444 else {
22445 pr_debug("%s values are out of range item %d\n",
22446 __func__, e->values[item]);
22447 /* Disable feedback TX path */
22448 if (e->values[item] == MSM_BACKEND_DAI_MAX)
22449 ret = afe_spk_prot_feed_back_cfg(0, 0, 0, 0, 0);
22450 else
22451 ret = -EINVAL;
22452 }
22453 } else {
22454 pr_err("%s item value is out of range item\n", __func__);
22455 ret = -EINVAL;
22456 }
22457 mutex_unlock(&routing_lock);
22458 return ret;
22459}
22460
22461static int spkr_prot_put_vi_rch_port(struct snd_kcontrol *kcontrol,
22462 struct snd_ctl_elem_value *ucontrol)
22463{
22464 int ret = 0;
22465 int item;
22466 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
22467
22468 pr_debug("%s item is %d\n", __func__,
22469 ucontrol->value.enumerated.item[0]);
22470 mutex_lock(&routing_lock);
22471 item = ucontrol->value.enumerated.item[0];
22472 if (item < e->items) {
22473 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
22474 __func__, e->shift_l, e->values[item]);
22475 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
22476 e->values[item] < MSM_BACKEND_DAI_MAX)
22477 /* Enable feedback TX path */
22478 ret = afe_spk_prot_feed_back_cfg(
22479 msm_bedais[e->values[item]].port_id,
22480 msm_bedais[e->shift_l].port_id,
22481 1, 1, 1);
22482 else {
22483 pr_debug("%s values are out of range item %d\n",
22484 __func__, e->values[item]);
22485 /* Disable feedback TX path */
22486 if (e->values[item] == MSM_BACKEND_DAI_MAX)
22487 ret = afe_spk_prot_feed_back_cfg(0,
22488 0, 0, 0, 0);
22489 else
22490 ret = -EINVAL;
22491 }
22492 } else {
22493 pr_err("%s item value is out of range item\n", __func__);
22494 ret = -EINVAL;
22495 }
22496 mutex_unlock(&routing_lock);
22497 return ret;
22498}
22499
22500static int spkr_prot_get_vi_lch_port(struct snd_kcontrol *kcontrol,
22501 struct snd_ctl_elem_value *ucontrol)
22502{
22503 pr_debug("%s\n", __func__);
22504 return 0;
22505}
22506
22507static int spkr_prot_get_vi_rch_port(struct snd_kcontrol *kcontrol,
22508 struct snd_ctl_elem_value *ucontrol)
22509{
22510 pr_debug("%s\n", __func__);
22511 ucontrol->value.enumerated.item[0] = 0;
22512 return 0;
22513}
22514
22515static const char * const slim0_rx_vi_fb_tx_lch_mux_text[] = {
22516 "ZERO", "SLIM4_TX"
22517};
22518
22519static const char * const slim0_rx_vi_fb_tx_rch_mux_text[] = {
22520 "ZERO", "SLIM4_TX"
22521};
22522
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022523static const char * const wsa_rx_0_vi_fb_tx_lch_mux_text[] = {
22524 "ZERO", "WSA_CDC_DMA_TX_0"
22525};
22526
22527static const char * const wsa_rx_0_vi_fb_tx_rch_mux_text[] = {
22528 "ZERO", "WSA_CDC_DMA_TX_0"
22529};
22530
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022531static const char * const mi2s_rx_vi_fb_tx_mux_text[] = {
22532 "ZERO", "SENARY_TX"
22533};
22534
22535static const char * const int4_mi2s_rx_vi_fb_tx_mono_mux_text[] = {
22536 "ZERO", "INT5_MI2S_TX"
22537};
22538
22539static const char * const int4_mi2s_rx_vi_fb_tx_stereo_mux_text[] = {
22540 "ZERO", "INT5_MI2S_TX"
22541};
22542
Josh Kirschea69fed2018-12-11 16:15:08 -080022543static const int slim0_rx_vi_fb_tx_lch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022544 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
22545};
22546
Josh Kirschea69fed2018-12-11 16:15:08 -080022547static const int slim0_rx_vi_fb_tx_rch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022548 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
22549};
22550
Josh Kirschea69fed2018-12-11 16:15:08 -080022551static const int wsa_rx_0_vi_fb_tx_lch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022552 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
22553};
22554
Josh Kirschea69fed2018-12-11 16:15:08 -080022555static const int wsa_rx_0_vi_fb_tx_rch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022556 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
22557};
22558
22559
Josh Kirschea69fed2018-12-11 16:15:08 -080022560static const int mi2s_rx_vi_fb_tx_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022561 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SENARY_MI2S_TX
22562};
22563
Josh Kirschea69fed2018-12-11 16:15:08 -080022564static const int int4_mi2s_rx_vi_fb_tx_mono_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022565 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
22566};
22567
Josh Kirschea69fed2018-12-11 16:15:08 -080022568static const int int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022569 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
22570};
22571
22572static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
22573 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
22574 ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
22575 slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
22576
22577static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
22578 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
22579 ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
22580 slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
22581
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022582static const struct soc_enum wsa_rx_0_vi_fb_lch_mux_enum =
22583 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
22584 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_lch_mux_text),
22585 wsa_rx_0_vi_fb_tx_lch_mux_text, wsa_rx_0_vi_fb_tx_lch_value);
22586
22587static const struct soc_enum wsa_rx_0_vi_fb_rch_mux_enum =
22588 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
22589 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_rch_mux_text),
22590 wsa_rx_0_vi_fb_tx_rch_mux_text, wsa_rx_0_vi_fb_tx_rch_value);
22591
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022592static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
22593 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
22594 ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
22595 mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
22596
22597static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
22598 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
22599 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
22600 int4_mi2s_rx_vi_fb_tx_mono_mux_text,
22601 int4_mi2s_rx_vi_fb_tx_mono_ch_value);
22602
22603static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
22604 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
22605 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
22606 int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
22607 int4_mi2s_rx_vi_fb_tx_stereo_ch_value);
22608
22609static const struct snd_kcontrol_new slim0_rx_vi_fb_lch_mux =
22610 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_LCH_MUX",
22611 slim0_rx_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
22612 spkr_prot_put_vi_lch_port);
22613
22614static const struct snd_kcontrol_new slim0_rx_vi_fb_rch_mux =
22615 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_RCH_MUX",
22616 slim0_rx_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
22617 spkr_prot_put_vi_rch_port);
22618
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022619static const struct snd_kcontrol_new wsa_rx_0_vi_fb_lch_mux =
22620 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_LCH_MUX",
22621 wsa_rx_0_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
22622 spkr_prot_put_vi_lch_port);
22623
22624static const struct snd_kcontrol_new wsa_rx_0_vi_fb_rch_mux =
22625 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_RCH_MUX",
22626 wsa_rx_0_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
22627 spkr_prot_put_vi_rch_port);
22628
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022629static const struct snd_kcontrol_new mi2s_rx_vi_fb_mux =
22630 SOC_DAPM_ENUM_EXT("PRI_MI2S_RX_VI_FB_MUX",
22631 mi2s_rx_vi_fb_mux_enum, spkr_prot_get_vi_lch_port,
22632 spkr_prot_put_vi_lch_port);
22633
22634static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_mono_ch_mux =
22635 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_MONO_CH_MUX",
22636 int4_mi2s_rx_vi_fb_mono_ch_mux_enum, spkr_prot_get_vi_lch_port,
22637 spkr_prot_put_vi_lch_port);
22638
22639static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_stereo_ch_mux =
22640 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX",
22641 int4_mi2s_rx_vi_fb_stereo_ch_mux_enum, spkr_prot_get_vi_rch_port,
22642 spkr_prot_put_vi_rch_port);
22643
22644static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
22645 /* Frontend AIF */
22646 /* Widget name equals to Front-End DAI name<Need confirmation>,
22647 * Stream name must contains substring of front-end dai name
22648 */
22649 SND_SOC_DAPM_AIF_IN("MM_DL1", "MultiMedia1 Playback", 0, 0, 0, 0),
22650 SND_SOC_DAPM_AIF_IN("MM_DL2", "MultiMedia2 Playback", 0, 0, 0, 0),
22651 SND_SOC_DAPM_AIF_IN("MM_DL3", "MultiMedia3 Playback", 0, 0, 0, 0),
22652 SND_SOC_DAPM_AIF_IN("MM_DL4", "MultiMedia4 Playback", 0, 0, 0, 0),
22653 SND_SOC_DAPM_AIF_IN("MM_DL5", "MultiMedia5 Playback", 0, 0, 0, 0),
22654 SND_SOC_DAPM_AIF_IN("MM_DL6", "MultiMedia6 Playback", 0, 0, 0, 0),
22655 SND_SOC_DAPM_AIF_IN("MM_DL7", "MultiMedia7 Playback", 0, 0, 0, 0),
22656 SND_SOC_DAPM_AIF_IN("MM_DL8", "MultiMedia8 Playback", 0, 0, 0, 0),
22657 SND_SOC_DAPM_AIF_IN("MM_DL9", "MultiMedia9 Playback", 0, 0, 0, 0),
22658 SND_SOC_DAPM_AIF_IN("MM_DL10", "MultiMedia10 Playback", 0, 0, 0, 0),
22659 SND_SOC_DAPM_AIF_IN("MM_DL11", "MultiMedia11 Playback", 0, 0, 0, 0),
22660 SND_SOC_DAPM_AIF_IN("MM_DL12", "MultiMedia12 Playback", 0, 0, 0, 0),
22661 SND_SOC_DAPM_AIF_IN("MM_DL13", "MultiMedia13 Playback", 0, 0, 0, 0),
22662 SND_SOC_DAPM_AIF_IN("MM_DL14", "MultiMedia14 Playback", 0, 0, 0, 0),
22663 SND_SOC_DAPM_AIF_IN("MM_DL15", "MultiMedia15 Playback", 0, 0, 0, 0),
22664 SND_SOC_DAPM_AIF_IN("MM_DL16", "MultiMedia16 Playback", 0, 0, 0, 0),
22665 SND_SOC_DAPM_AIF_IN("MM_DL20", "MultiMedia20 Playback", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070022666 SND_SOC_DAPM_AIF_IN("MM_DL21", "MultiMedia21 Playback", 0, 0, 0, 0),
Derek Chenb097d922019-07-31 17:28:02 -070022667 SND_SOC_DAPM_AIF_IN("MM_DL22", "MultiMedia22 Playback", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053022668 SND_SOC_DAPM_AIF_IN("MM_DL26", "MultiMedia26 Playback", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022669 SND_SOC_DAPM_AIF_IN("VOIP_DL", "VoIP Playback", 0, 0, 0, 0),
22670 SND_SOC_DAPM_AIF_OUT("MM_UL1", "MultiMedia1 Capture", 0, 0, 0, 0),
22671 SND_SOC_DAPM_AIF_OUT("MM_UL2", "MultiMedia2 Capture", 0, 0, 0, 0),
22672 SND_SOC_DAPM_AIF_OUT("MM_UL3", "MultiMedia3 Capture", 0, 0, 0, 0),
22673 SND_SOC_DAPM_AIF_OUT("MM_UL4", "MultiMedia4 Capture", 0, 0, 0, 0),
22674 SND_SOC_DAPM_AIF_OUT("MM_UL5", "MultiMedia5 Capture", 0, 0, 0, 0),
22675 SND_SOC_DAPM_AIF_OUT("MM_UL6", "MultiMedia6 Capture", 0, 0, 0, 0),
22676 SND_SOC_DAPM_AIF_OUT("MM_UL8", "MultiMedia8 Capture", 0, 0, 0, 0),
22677 SND_SOC_DAPM_AIF_OUT("MM_UL9", "MultiMedia9 Capture", 0, 0, 0, 0),
Laxminath Kasam38070be2017-08-17 18:21:59 +053022678 SND_SOC_DAPM_AIF_OUT("MM_UL10", "MultiMedia10 Capture", 0, 0, 0, 0),
Asish Bhattacharya34504582017-08-08 12:55:01 +053022679 SND_SOC_DAPM_AIF_OUT("MM_UL16", "MultiMedia16 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022680 SND_SOC_DAPM_AIF_OUT("MM_UL17", "MultiMedia17 Capture", 0, 0, 0, 0),
22681 SND_SOC_DAPM_AIF_OUT("MM_UL18", "MultiMedia18 Capture", 0, 0, 0, 0),
22682 SND_SOC_DAPM_AIF_OUT("MM_UL19", "MultiMedia19 Capture", 0, 0, 0, 0),
22683 SND_SOC_DAPM_AIF_OUT("MM_UL20", "MultiMedia20 Capture", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070022684 SND_SOC_DAPM_AIF_OUT("MM_UL21", "MultiMedia21 Capture", 0, 0, 0, 0),
Derek Chenb097d922019-07-31 17:28:02 -070022685 SND_SOC_DAPM_AIF_OUT("MM_UL22", "MultiMedia22 Capture", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053022686 SND_SOC_DAPM_AIF_OUT("MM_UL27", "MultiMedia27 Capture", 0, 0, 0, 0),
Meng Wang5c4bab72018-04-25 10:40:01 +080022687 SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
22688 SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053022689 SND_SOC_DAPM_AIF_OUT("MM_UL30", "MultiMedia30 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022690 SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
22691 SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
22692 "VoiceMMode1 Playback", 0, 0, 0, 0),
22693 SND_SOC_DAPM_AIF_OUT("VOICEMMODE1_UL",
22694 "VoiceMMode1 Capture", 0, 0, 0, 0),
22695 SND_SOC_DAPM_AIF_IN("VOICEMMODE2_DL",
22696 "VoiceMMode2 Playback", 0, 0, 0, 0),
22697 SND_SOC_DAPM_AIF_OUT("VOICEMMODE2_UL",
22698 "VoiceMMode2 Capture", 0, 0, 0, 0),
22699 SND_SOC_DAPM_AIF_IN("SLIM0_DL_HL", "SLIMBUS0_HOSTLESS Playback",
22700 0, 0, 0, 0),
22701 SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
22702 0, 0, 0, 0),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053022703 SND_SOC_DAPM_AIF_IN("CDC_DMA_DL_HL", "CDC_DMA_HOSTLESS Playback",
22704 0, 0, 0, 0),
22705 SND_SOC_DAPM_AIF_OUT("CDC_DMA_UL_HL", "CDC_DMA_HOSTLESS Capture",
22706 0, 0, 0, 0),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022707 SND_SOC_DAPM_AIF_OUT("TX3_CDC_DMA_UL_HL",
22708 "TX3_CDC_DMA_HOSTLESS Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022709 SND_SOC_DAPM_AIF_OUT("CPE_LSM_UL_HL", "CPE LSM capture",
22710 0, 0, 0, 0),
22711 SND_SOC_DAPM_AIF_IN("SLIM1_DL_HL", "SLIMBUS1_HOSTLESS Playback",
22712 0, 0, 0, 0),
22713 SND_SOC_DAPM_AIF_OUT("SLIM1_UL_HL", "SLIMBUS1_HOSTLESS Capture",
22714 0, 0, 0, 0),
22715 SND_SOC_DAPM_AIF_IN("SLIM3_DL_HL", "SLIMBUS3_HOSTLESS Playback",
22716 0, 0, 0, 0),
22717 SND_SOC_DAPM_AIF_OUT("SLIM3_UL_HL", "SLIMBUS3_HOSTLESS Capture",
22718 0, 0, 0, 0),
22719 SND_SOC_DAPM_AIF_IN("SLIM4_DL_HL", "SLIMBUS4_HOSTLESS Playback",
22720 0, 0, 0, 0),
22721 SND_SOC_DAPM_AIF_OUT("SLIM4_UL_HL", "SLIMBUS4_HOSTLESS Capture",
22722 0, 0, 0, 0),
22723 SND_SOC_DAPM_AIF_IN("SLIM6_DL_HL", "SLIMBUS6_HOSTLESS Playback",
22724 0, 0, 0, 0),
22725 SND_SOC_DAPM_AIF_OUT("SLIM6_UL_HL", "SLIMBUS6_HOSTLESS Capture",
22726 0, 0, 0, 0),
22727 SND_SOC_DAPM_AIF_IN("SLIM7_DL_HL", "SLIMBUS7_HOSTLESS Playback",
22728 0, 0, 0, 0),
22729 SND_SOC_DAPM_AIF_OUT("SLIM7_UL_HL", "SLIMBUS7_HOSTLESS Capture",
22730 0, 0, 0, 0),
22731 SND_SOC_DAPM_AIF_IN("SLIM8_DL_HL", "SLIMBUS8_HOSTLESS Playback",
22732 0, 0, 0, 0),
22733 SND_SOC_DAPM_AIF_OUT("SLIM8_UL_HL", "SLIMBUS8_HOSTLESS Capture",
22734 0, 0, 0, 0),
22735 SND_SOC_DAPM_AIF_IN("INTFM_DL_HL", "INT_FM_HOSTLESS Playback",
22736 0, 0, 0, 0),
22737 SND_SOC_DAPM_AIF_OUT("INTFM_UL_HL", "INT_FM_HOSTLESS Capture",
22738 0, 0, 0, 0),
22739 SND_SOC_DAPM_AIF_IN("INTHFP_DL_HL", "INT_HFP_BT_HOSTLESS Playback",
22740 0, 0, 0, 0),
22741 SND_SOC_DAPM_AIF_OUT("INTHFP_UL_HL", "INT_HFP_BT_HOSTLESS Capture",
22742 0, 0, 0, 0),
22743 SND_SOC_DAPM_AIF_IN("USBAUDIO_DL_HL", "USBAUDIO_HOSTLESS Playback",
22744 0, 0, 0, 0),
22745 SND_SOC_DAPM_AIF_OUT("USBAUDIO_UL_HL", "USBAUDIO_HOSTLESS Capture",
22746 0, 0, 0, 0),
22747 SND_SOC_DAPM_AIF_IN("HDMI_DL_HL", "HDMI_HOSTLESS Playback", 0, 0, 0, 0),
22748 SND_SOC_DAPM_AIF_IN("SEC_I2S_DL_HL", "SEC_I2S_RX_HOSTLESS Playback",
22749 0, 0, 0, 0),
22750 SND_SOC_DAPM_AIF_IN("INT0_MI2S_DL_HL",
22751 "INT0 MI2S_RX Hostless Playback",
22752 0, 0, 0, 0),
22753 SND_SOC_DAPM_AIF_IN("INT4_MI2S_DL_HL",
22754 "INT4 MI2S_RX Hostless Playback",
22755 0, 0, 0, 0),
22756 SND_SOC_DAPM_AIF_IN("PRI_MI2S_DL_HL",
22757 "Primary MI2S_RX Hostless Playback",
22758 0, 0, 0, 0),
22759 SND_SOC_DAPM_AIF_IN("SEC_MI2S_DL_HL",
22760 "Secondary MI2S_RX Hostless Playback",
22761 0, 0, 0, 0),
22762 SND_SOC_DAPM_AIF_IN("TERT_MI2S_DL_HL",
22763 "Tertiary MI2S_RX Hostless Playback",
22764 0, 0, 0, 0),
22765 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_DL_HL",
22766 "Quaternary MI2S_RX Hostless Playback",
22767 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053022768 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_DL_HL",
22769 "Quinary MI2S_RX Hostless Playback",
22770 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070022771 SND_SOC_DAPM_AIF_IN("SEN_MI2S_DL_HL",
22772 "Senary MI2S_RX Hostless Playback",
22773 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022774
22775 SND_SOC_DAPM_AIF_IN("AUXPCM_DL_HL", "AUXPCM_HOSTLESS Playback",
22776 0, 0, 0, 0),
22777 SND_SOC_DAPM_AIF_OUT("AUXPCM_UL_HL", "AUXPCM_HOSTLESS Capture",
22778 0, 0, 0, 0),
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022779 SND_SOC_DAPM_AIF_IN("SEC_AUXPCM_DL_HL", "SEC_AUXPCM_HOSTLESS Playback",
22780 0, 0, 0, 0),
22781 SND_SOC_DAPM_AIF_OUT("SEC_AUXPCM_UL_HL", "SEC_AUXPCM_HOSTLESS Capture",
22782 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022783 SND_SOC_DAPM_AIF_OUT("MI2S_UL_HL", "MI2S_TX_HOSTLESS Capture",
22784 0, 0, 0, 0),
22785 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_UL_HL",
22786 "INT3 MI2S_TX Hostless Capture",
22787 0, 0, 0, 0),
22788 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_UL_HL",
22789 "Tertiary MI2S_TX Hostless Capture",
22790 0, 0, 0, 0),
22791 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_UL_HL",
22792 "Secondary MI2S_TX Hostless Capture",
22793 0, 0, 0, 0),
22794 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_UL_HL",
22795 "Primary MI2S_TX Hostless Capture",
22796 0, 0, 0, 0),
22797 SND_SOC_DAPM_AIF_OUT("MI2S_DL_HL", "MI2S_RX_HOSTLESS Playback",
22798 0, 0, 0, 0),
22799 SND_SOC_DAPM_AIF_IN("DTMF_DL_HL", "DTMF_RX_HOSTLESS Playback",
22800 0, 0, 0, 0),
22801 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_UL_HL",
22802 "Quaternary MI2S_TX Hostless Capture",
22803 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053022804 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_UL_HL",
22805 "Quinary MI2S_TX Hostless Capture",
22806 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070022807 SND_SOC_DAPM_AIF_OUT("SEN_MI2S_UL_HL",
22808 "Senary MI2S_TX Hostless Capture",
22809 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022810
22811 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_0_DL_HL",
22812 "Primary TDM0 Hostless Playback",
22813 0, 0, 0, 0),
22814 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_0_UL_HL",
22815 "Primary TDM0 Hostless Capture",
22816 0, 0, 0, 0),
22817 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_1_DL_HL",
22818 "Primary TDM1 Hostless Playback",
22819 0, 0, 0, 0),
22820 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_1_UL_HL",
22821 "Primary TDM1 Hostless Capture",
22822 0, 0, 0, 0),
22823 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_2_DL_HL",
22824 "Primary TDM2 Hostless Playback",
22825 0, 0, 0, 0),
22826 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_2_UL_HL",
22827 "Primary TDM2 Hostless Capture",
22828 0, 0, 0, 0),
22829 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_3_DL_HL",
22830 "Primary TDM3 Hostless Playback",
22831 0, 0, 0, 0),
22832 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_3_UL_HL",
22833 "Primary TDM3 Hostless Capture",
22834 0, 0, 0, 0),
22835 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_4_DL_HL",
22836 "Primary TDM4 Hostless Playback",
22837 0, 0, 0, 0),
22838 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_4_UL_HL",
22839 "Primary TDM4 Hostless Capture",
22840 0, 0, 0, 0),
22841 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_5_DL_HL",
22842 "Primary TDM5 Hostless Playback",
22843 0, 0, 0, 0),
22844 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_5_UL_HL",
22845 "Primary TDM5 Hostless Capture",
22846 0, 0, 0, 0),
22847 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_6_DL_HL",
22848 "Primary TDM6 Hostless Playback",
22849 0, 0, 0, 0),
22850 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_6_UL_HL",
22851 "Primary TDM6 Hostless Capture",
22852 0, 0, 0, 0),
22853 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_7_DL_HL",
22854 "Primary TDM7 Hostless Playback",
22855 0, 0, 0, 0),
22856 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_7_UL_HL",
22857 "Primary TDM7 Hostless Capture",
22858 0, 0, 0, 0),
22859 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_0_DL_HL",
22860 "Secondary TDM0 Hostless Playback",
22861 0, 0, 0, 0),
22862 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_0_UL_HL",
22863 "Secondary TDM0 Hostless Capture",
22864 0, 0, 0, 0),
22865 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_1_DL_HL",
22866 "Secondary TDM1 Hostless Playback",
22867 0, 0, 0, 0),
22868 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_1_UL_HL",
22869 "Secondary TDM1 Hostless Capture",
22870 0, 0, 0, 0),
22871 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_2_DL_HL",
22872 "Secondary TDM2 Hostless Playback",
22873 0, 0, 0, 0),
22874 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_2_UL_HL",
22875 "Secondary TDM2 Hostless Capture",
22876 0, 0, 0, 0),
22877 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_3_DL_HL",
22878 "Secondary TDM3 Hostless Playback",
22879 0, 0, 0, 0),
22880 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_3_UL_HL",
22881 "Secondary TDM3 Hostless Capture",
22882 0, 0, 0, 0),
22883 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_4_DL_HL",
22884 "Secondary TDM4 Hostless Playback",
22885 0, 0, 0, 0),
22886 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_4_UL_HL",
22887 "Secondary TDM4 Hostless Capture",
22888 0, 0, 0, 0),
22889 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_5_DL_HL",
22890 "Secondary TDM5 Hostless Playback",
22891 0, 0, 0, 0),
22892 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_5_UL_HL",
22893 "Secondary TDM5 Hostless Capture",
22894 0, 0, 0, 0),
22895 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_6_DL_HL",
22896 "Secondary TDM6 Hostless Playback",
22897 0, 0, 0, 0),
22898 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_6_UL_HL",
22899 "Secondary TDM6 Hostless Capture",
22900 0, 0, 0, 0),
22901 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_7_DL_HL",
22902 "Secondary TDM7 Hostless Playback",
22903 0, 0, 0, 0),
22904 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_7_UL_HL",
22905 "Secondary TDM7 Hostless Capture",
22906 0, 0, 0, 0),
22907 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_0_DL_HL",
22908 "Tertiary TDM0 Hostless Playback",
22909 0, 0, 0, 0),
22910 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_0_UL_HL",
22911 "Tertiary TDM0 Hostless Capture",
22912 0, 0, 0, 0),
22913 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_1_DL_HL",
22914 "Tertiary TDM1 Hostless Playback",
22915 0, 0, 0, 0),
22916 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_1_UL_HL",
22917 "Tertiary TDM1 Hostless Capture",
22918 0, 0, 0, 0),
22919 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_2_DL_HL",
22920 "Tertiary TDM2 Hostless Playback",
22921 0, 0, 0, 0),
22922 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_2_UL_HL",
22923 "Tertiary TDM2 Hostless Capture",
22924 0, 0, 0, 0),
22925 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_3_DL_HL",
22926 "Tertiary TDM3 Hostless Playback",
22927 0, 0, 0, 0),
22928 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_3_UL_HL",
22929 "Tertiary TDM3 Hostless Capture",
22930 0, 0, 0, 0),
22931 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_4_DL_HL",
22932 "Tertiary TDM4 Hostless Playback",
22933 0, 0, 0, 0),
22934 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_4_UL_HL",
22935 "Tertiary TDM4 Hostless Capture",
22936 0, 0, 0, 0),
22937 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_5_DL_HL",
22938 "Tertiary TDM5 Hostless Playback",
22939 0, 0, 0, 0),
22940 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_5_UL_HL",
22941 "Tertiary TDM5 Hostless Capture",
22942 0, 0, 0, 0),
22943 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_6_DL_HL",
22944 "Tertiary TDM6 Hostless Playback",
22945 0, 0, 0, 0),
22946 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_6_UL_HL",
22947 "Tertiary TDM6 Hostless Capture",
22948 0, 0, 0, 0),
22949 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_7_DL_HL",
22950 "Tertiary TDM7 Hostless Playback",
22951 0, 0, 0, 0),
22952 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_7_UL_HL",
22953 "Tertiary TDM7 Hostless Capture",
22954 0, 0, 0, 0),
22955 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_0_DL_HL",
22956 "Quaternary TDM0 Hostless Playback",
22957 0, 0, 0, 0),
22958 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_0_UL_HL",
22959 "Quaternary TDM0 Hostless Capture",
22960 0, 0, 0, 0),
22961 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_1_DL_HL",
22962 "Quaternary TDM1 Hostless Playback",
22963 0, 0, 0, 0),
22964 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_1_UL_HL",
22965 "Quaternary TDM1 Hostless Capture",
22966 0, 0, 0, 0),
22967 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_2_DL_HL",
22968 "Quaternary TDM2 Hostless Playback",
22969 0, 0, 0, 0),
22970 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_2_UL_HL",
22971 "Quaternary TDM2 Hostless Capture",
22972 0, 0, 0, 0),
22973 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_3_DL_HL",
22974 "Quaternary TDM3 Hostless Playback",
22975 0, 0, 0, 0),
22976 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_3_UL_HL",
22977 "Quaternary TDM3 Hostless Capture",
22978 0, 0, 0, 0),
22979 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_4_DL_HL",
22980 "Quaternary TDM4 Hostless Playback",
22981 0, 0, 0, 0),
22982 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_4_UL_HL",
22983 "Quaternary TDM4 Hostless Capture",
22984 0, 0, 0, 0),
22985 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_5_DL_HL",
22986 "Quaternary TDM5 Hostless Playback",
22987 0, 0, 0, 0),
22988 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_5_UL_HL",
22989 "Quaternary TDM5 Hostless Capture",
22990 0, 0, 0, 0),
22991 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_6_DL_HL",
22992 "Quaternary TDM6 Hostless Playback",
22993 0, 0, 0, 0),
22994 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_6_UL_HL",
22995 "Quaternary TDM6 Hostless Capture",
22996 0, 0, 0, 0),
22997 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_7_DL_HL",
22998 "Quaternary TDM7 Hostless Playback",
22999 0, 0, 0, 0),
23000 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_7_UL_HL",
23001 "Quaternary TDM7 Hostless Capture",
23002 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053023003 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_0_DL_HL",
23004 "Quinary TDM0 Hostless Playback",
23005 0, 0, 0, 0),
23006 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_0_UL_HL",
23007 "Quinary TDM0 Hostless Capture",
23008 0, 0, 0, 0),
23009 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_1_DL_HL",
23010 "Quinary TDM1 Hostless Playback",
23011 0, 0, 0, 0),
23012 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_1_UL_HL",
23013 "Quinary TDM1 Hostless Capture",
23014 0, 0, 0, 0),
23015 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_2_DL_HL",
23016 "Quinary TDM2 Hostless Playback",
23017 0, 0, 0, 0),
23018 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_2_UL_HL",
23019 "Quinary TDM2 Hostless Capture",
23020 0, 0, 0, 0),
23021 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_3_DL_HL",
23022 "Quinary TDM3 Hostless Playback",
23023 0, 0, 0, 0),
23024 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_3_UL_HL",
23025 "Quinary TDM3 Hostless Capture",
23026 0, 0, 0, 0),
23027 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_4_DL_HL",
23028 "Quinary TDM4 Hostless Playback",
23029 0, 0, 0, 0),
23030 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_4_UL_HL",
23031 "Quinary TDM4 Hostless Capture",
23032 0, 0, 0, 0),
23033 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_5_DL_HL",
23034 "Quinary TDM5 Hostless Playback",
23035 0, 0, 0, 0),
23036 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_5_UL_HL",
23037 "Quinary TDM5 Hostless Capture",
23038 0, 0, 0, 0),
23039 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_6_DL_HL",
23040 "Quinary TDM6 Hostless Playback",
23041 0, 0, 0, 0),
23042 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_6_UL_HL",
23043 "Quinary TDM6 Hostless Capture",
23044 0, 0, 0, 0),
23045 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_7_DL_HL",
23046 "Quinary TDM7 Hostless Playback",
23047 0, 0, 0, 0),
23048 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_7_UL_HL",
23049 "Quinary TDM7 Hostless Capture",
23050 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023051 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_0_DL_HL",
23052 "Senary TDM0 Hostless Playback",
23053 0, 0, 0, 0),
23054 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_0_UL_HL",
23055 "Senary TDM0 Hostless Capture",
23056 0, 0, 0, 0),
23057 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_1_DL_HL",
23058 "Senary TDM1 Hostless Playback",
23059 0, 0, 0, 0),
23060 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_1_UL_HL",
23061 "Senary TDM1 Hostless Capture",
23062 0, 0, 0, 0),
23063 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_2_DL_HL",
23064 "Senary TDM2 Hostless Playback",
23065 0, 0, 0, 0),
23066 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_2_UL_HL",
23067 "Senary TDM2 Hostless Capture",
23068 0, 0, 0, 0),
23069 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_3_DL_HL",
23070 "Senary TDM3 Hostless Playback",
23071 0, 0, 0, 0),
23072 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_3_UL_HL",
23073 "Senary TDM3 Hostless Capture",
23074 0, 0, 0, 0),
23075 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_4_DL_HL",
23076 "Senary TDM4 Hostless Playback",
23077 0, 0, 0, 0),
23078 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_4_UL_HL",
23079 "Senary TDM4 Hostless Capture",
23080 0, 0, 0, 0),
23081 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_5_DL_HL",
23082 "Senary TDM5 Hostless Playback",
23083 0, 0, 0, 0),
23084 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_5_UL_HL",
23085 "Senary TDM5 Hostless Capture",
23086 0, 0, 0, 0),
23087 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_6_DL_HL",
23088 "Senary TDM6 Hostless Playback",
23089 0, 0, 0, 0),
23090 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_6_UL_HL",
23091 "Senary TDM6 Hostless Capture",
23092 0, 0, 0, 0),
23093 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_7_DL_HL",
23094 "Senary TDM7 Hostless Playback",
23095 0, 0, 0, 0),
23096 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_7_UL_HL",
23097 "Senary TDM7 Hostless Capture",
23098 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023099
23100 /* LSM */
23101 SND_SOC_DAPM_AIF_OUT("LSM1_UL_HL", "Listen 1 Audio Service Capture",
23102 0, 0, 0, 0),
23103 SND_SOC_DAPM_AIF_OUT("LSM2_UL_HL", "Listen 2 Audio Service Capture",
23104 0, 0, 0, 0),
23105 SND_SOC_DAPM_AIF_OUT("LSM3_UL_HL", "Listen 3 Audio Service Capture",
23106 0, 0, 0, 0),
23107 SND_SOC_DAPM_AIF_OUT("LSM4_UL_HL", "Listen 4 Audio Service Capture",
23108 0, 0, 0, 0),
23109 SND_SOC_DAPM_AIF_OUT("LSM5_UL_HL", "Listen 5 Audio Service Capture",
23110 0, 0, 0, 0),
23111 SND_SOC_DAPM_AIF_OUT("LSM6_UL_HL", "Listen 6 Audio Service Capture",
23112 0, 0, 0, 0),
23113 SND_SOC_DAPM_AIF_OUT("LSM7_UL_HL", "Listen 7 Audio Service Capture",
23114 0, 0, 0, 0),
23115 SND_SOC_DAPM_AIF_OUT("LSM8_UL_HL", "Listen 8 Audio Service Capture",
23116 0, 0, 0, 0),
23117 SND_SOC_DAPM_AIF_IN("QCHAT_DL", "QCHAT Playback", 0, 0, 0, 0),
23118 SND_SOC_DAPM_AIF_OUT("QCHAT_UL", "QCHAT Capture", 0, 0, 0, 0),
23119 /* Backend AIF */
23120 /* Stream name equals to backend dai link stream name */
23121 SND_SOC_DAPM_AIF_OUT("PRI_I2S_RX", "Primary I2S Playback", 0, 0, 0, 0),
23122 SND_SOC_DAPM_AIF_OUT("SEC_I2S_RX", "Secondary I2S Playback",
23123 0, 0, 0, 0),
Ralf Herzc8701f72018-06-20 11:37:35 +020023124 SND_SOC_DAPM_AIF_OUT("PRI_SPDIF_RX", "Primary SPDIF Playback",
23125 0, 0, 0, 0),
23126 SND_SOC_DAPM_AIF_IN("PRI_SPDIF_TX", "Primary SPDIF Capture",
23127 0, 0, 0, 0),
23128 SND_SOC_DAPM_AIF_OUT("SEC_SPDIF_RX", "Secondary SPDIF Playback",
23129 0, 0, 0, 0),
23130 SND_SOC_DAPM_AIF_IN("SEC_SPDIF_TX", "Secondary SPDIF Capture",
23131 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023132 SND_SOC_DAPM_AIF_OUT("SLIMBUS_0_RX", "Slimbus Playback", 0, 0, 0, 0),
23133 SND_SOC_DAPM_AIF_OUT("SLIMBUS_2_RX", "Slimbus2 Playback", 0, 0, 0, 0),
23134 SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_RX", "Slimbus5 Playback", 0, 0, 0, 0),
23135 SND_SOC_DAPM_AIF_OUT("HDMI", "HDMI Playback", 0, 0, 0, 0),
23136 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT", "Display Port Playback",
23137 0, 0, 0, 0),
Karthikeyan Mani57550082018-05-03 18:43:58 -070023138 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT1", "Display Port1 Playback",
23139 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023140 SND_SOC_DAPM_AIF_OUT("MI2S_RX", "MI2S Playback", 0, 0, 0, 0),
23141 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_RX", "Quaternary MI2S Playback",
23142 0, 0, 0, 0),
23143 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_RX", "Tertiary MI2S Playback",
23144 0, 0, 0, 0),
23145 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX", "Secondary MI2S Playback",
23146 0, 0, 0, 0),
23147 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX_SD1",
23148 "Secondary MI2S Playback SD1",
23149 0, 0, 0, 0),
23150 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_RX", "Primary MI2S Playback",
23151 0, 0, 0, 0),
23152 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_RX", "INT0 MI2S Playback",
23153 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023154 SND_SOC_DAPM_AIF_OUT("INT2_MI2S_RX", "INT2 MI2S Playback",
23155 0, 0, 0, 0),
23156 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_RX", "INT3 MI2S Playback",
23157 0, 0, 0, 0),
23158 SND_SOC_DAPM_AIF_OUT("INT5_MI2S_RX", "INT5 MI2S Playback",
23159 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023160 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_RX", "INT4 MI2S Playback",
23161 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023162 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_TX", "INT4 MI2S Capture",
23163 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023164 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_RX", "Quinary MI2S Playback",
23165 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023166 SND_SOC_DAPM_AIF_OUT("SEN_MI2S_RX", "Senary MI2S Playback",
23167 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023168 SND_SOC_DAPM_AIF_IN("PRI_I2S_TX", "Primary I2S Capture", 0, 0, 0, 0),
23169 SND_SOC_DAPM_AIF_IN("MI2S_TX", "MI2S Capture", 0, 0, 0, 0),
23170 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_TX", "Quaternary MI2S Capture",
23171 0, 0, 0, 0),
23172 SND_SOC_DAPM_AIF_IN("PRI_MI2S_TX", "Primary MI2S Capture",
23173 0, 0, 0, 0),
23174 SND_SOC_DAPM_AIF_IN("TERT_MI2S_TX", "Tertiary MI2S Capture",
23175 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023176 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_TX", "INT0 MI2S Capture",
23177 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023178 SND_SOC_DAPM_AIF_IN("INT2_MI2S_TX", "INT2 MI2S Capture",
23179 0, 0, 0, 0),
23180 SND_SOC_DAPM_AIF_IN("INT3_MI2S_TX", "INT3 MI2S Capture",
23181 0, 0, 0, 0),
23182 SND_SOC_DAPM_AIF_IN("SEC_MI2S_TX", "Secondary MI2S Capture",
23183 0, 0, 0, 0),
23184 SND_SOC_DAPM_AIF_IN("SLIMBUS_0_TX", "Slimbus Capture", 0, 0, 0, 0),
23185 SND_SOC_DAPM_AIF_IN("SLIMBUS_2_TX", "Slimbus2 Capture", 0, 0, 0, 0),
23186 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_TX", "Quinary MI2S Capture",
23187 0, 0, 0, 0),
23188 SND_SOC_DAPM_AIF_IN("SENARY_MI2S_TX", "Senary MI2S Capture",
23189 0, 0, 0, 0),
23190 SND_SOC_DAPM_AIF_OUT("INT_BT_SCO_RX", "Internal BT-SCO Playback",
23191 0, 0, 0, 0),
23192 SND_SOC_DAPM_AIF_IN("INT_BT_SCO_TX", "Internal BT-SCO Capture",
23193 0, 0, 0, 0),
23194 SND_SOC_DAPM_AIF_OUT("INT_BT_A2DP_RX", "Internal BT-A2DP Playback",
23195 0, 0, 0, 0),
23196 SND_SOC_DAPM_AIF_OUT("INT_FM_RX", "Internal FM Playback",
23197 0, 0, 0, 0),
23198 SND_SOC_DAPM_AIF_IN("INT_FM_TX", "Internal FM Capture",
23199 0, 0, 0, 0),
23200 SND_SOC_DAPM_AIF_OUT("PCM_RX", "AFE Playback",
23201 0, 0, 0, 0),
23202 SND_SOC_DAPM_AIF_IN("PCM_TX", "AFE Capture",
23203 0, 0, 0, 0),
23204 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_0", "Primary TDM0 Playback",
23205 0, 0, 0, 0),
23206 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_0", "Primary TDM0 Capture",
23207 0, 0, 0, 0),
23208 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_1", "Primary TDM1 Playback",
23209 0, 0, 0, 0),
23210 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_1", "Primary TDM1 Capture",
23211 0, 0, 0, 0),
23212 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_2", "Primary TDM2 Playback",
23213 0, 0, 0, 0),
23214 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_2", "Primary TDM2 Capture",
23215 0, 0, 0, 0),
23216 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_3", "Primary TDM3 Playback",
23217 0, 0, 0, 0),
23218 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_3", "Primary TDM3 Capture",
23219 0, 0, 0, 0),
23220 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_4", "Primary TDM4 Playback",
23221 0, 0, 0, 0),
23222 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_4", "Primary TDM4 Capture",
23223 0, 0, 0, 0),
23224 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_5", "Primary TDM5 Playback",
23225 0, 0, 0, 0),
23226 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_5", "Primary TDM5 Capture",
23227 0, 0, 0, 0),
23228 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_6", "Primary TDM6 Playback",
23229 0, 0, 0, 0),
23230 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_6", "Primary TDM6 Capture",
23231 0, 0, 0, 0),
23232 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_7", "Primary TDM7 Playback",
23233 0, 0, 0, 0),
23234 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_7", "Primary TDM7 Capture",
23235 0, 0, 0, 0),
23236 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_0", "Secondary TDM0 Playback",
23237 0, 0, 0, 0),
23238 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_0", "Secondary TDM0 Capture",
23239 0, 0, 0, 0),
23240 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_1", "Secondary TDM1 Playback",
23241 0, 0, 0, 0),
23242 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_1", "Secondary TDM1 Capture",
23243 0, 0, 0, 0),
23244 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_2", "Secondary TDM2 Playback",
23245 0, 0, 0, 0),
23246 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_2", "Secondary TDM2 Capture",
23247 0, 0, 0, 0),
23248 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_3", "Secondary TDM3 Playback",
23249 0, 0, 0, 0),
23250 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_3", "Secondary TDM3 Capture",
23251 0, 0, 0, 0),
23252 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_4", "Secondary TDM4 Playback",
23253 0, 0, 0, 0),
23254 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_4", "Secondary TDM4 Capture",
23255 0, 0, 0, 0),
23256 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_5", "Secondary TDM5 Playback",
23257 0, 0, 0, 0),
23258 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_5", "Secondary TDM5 Capture",
23259 0, 0, 0, 0),
23260 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_6", "Secondary TDM6 Playback",
23261 0, 0, 0, 0),
23262 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_6", "Secondary TDM6 Capture",
23263 0, 0, 0, 0),
23264 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_7", "Secondary TDM7 Playback",
23265 0, 0, 0, 0),
23266 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_7", "Secondary TDM7 Capture",
23267 0, 0, 0, 0),
23268 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_0", "Tertiary TDM0 Playback",
23269 0, 0, 0, 0),
23270 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_0", "Tertiary TDM0 Capture",
23271 0, 0, 0, 0),
23272 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_1", "Tertiary TDM1 Playback",
23273 0, 0, 0, 0),
23274 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_1", "Tertiary TDM1 Capture",
23275 0, 0, 0, 0),
23276 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_2", "Tertiary TDM2 Playback",
23277 0, 0, 0, 0),
23278 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_2", "Tertiary TDM2 Capture",
23279 0, 0, 0, 0),
23280 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_3", "Tertiary TDM3 Playback",
23281 0, 0, 0, 0),
23282 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_3", "Tertiary TDM3 Capture",
23283 0, 0, 0, 0),
23284 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_4", "Tertiary TDM4 Playback",
23285 0, 0, 0, 0),
23286 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_4", "Tertiary TDM4 Capture",
23287 0, 0, 0, 0),
23288 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_5", "Tertiary TDM5 Playback",
23289 0, 0, 0, 0),
23290 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_5", "Tertiary TDM5 Capture",
23291 0, 0, 0, 0),
23292 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_6", "Tertiary TDM6 Playback",
23293 0, 0, 0, 0),
23294 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_6", "Tertiary TDM6 Capture",
23295 0, 0, 0, 0),
23296 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_7", "Tertiary TDM7 Playback",
23297 0, 0, 0, 0),
23298 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_7", "Tertiary TDM7 Capture",
23299 0, 0, 0, 0),
23300 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_0", "Quaternary TDM0 Playback",
23301 0, 0, 0, 0),
23302 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_0", "Quaternary TDM0 Capture",
23303 0, 0, 0, 0),
23304 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_1", "Quaternary TDM1 Playback",
23305 0, 0, 0, 0),
23306 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_1", "Quaternary TDM1 Capture",
23307 0, 0, 0, 0),
23308 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_2", "Quaternary TDM2 Playback",
23309 0, 0, 0, 0),
23310 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_2", "Quaternary TDM2 Capture",
23311 0, 0, 0, 0),
23312 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_3", "Quaternary TDM3 Playback",
23313 0, 0, 0, 0),
23314 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_3", "Quaternary TDM3 Capture",
23315 0, 0, 0, 0),
23316 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_4", "Quaternary TDM4 Playback",
23317 0, 0, 0, 0),
23318 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_4", "Quaternary TDM4 Capture",
23319 0, 0, 0, 0),
23320 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_5", "Quaternary TDM5 Playback",
23321 0, 0, 0, 0),
23322 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_5", "Quaternary TDM5 Capture",
23323 0, 0, 0, 0),
23324 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_6", "Quaternary TDM6 Playback",
23325 0, 0, 0, 0),
23326 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_6", "Quaternary TDM6 Capture",
23327 0, 0, 0, 0),
23328 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_7", "Quaternary TDM7 Playback",
23329 0, 0, 0, 0),
23330 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_7", "Quaternary TDM7 Capture",
23331 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053023332 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_0", "Quinary TDM0 Playback",
23333 0, 0, 0, 0),
23334 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_0", "Quinary TDM0 Capture",
23335 0, 0, 0, 0),
23336 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_1", "Quinary TDM1 Playback",
23337 0, 0, 0, 0),
23338 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_1", "Quinary TDM1 Capture",
23339 0, 0, 0, 0),
23340 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_2", "Quinary TDM2 Playback",
23341 0, 0, 0, 0),
23342 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_2", "Quinary TDM2 Capture",
23343 0, 0, 0, 0),
23344 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_3", "Quinary TDM3 Playback",
23345 0, 0, 0, 0),
23346 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_3", "Quinary TDM3 Capture",
23347 0, 0, 0, 0),
23348 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_4", "Quinary TDM4 Playback",
23349 0, 0, 0, 0),
23350 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_4", "Quinary TDM4 Capture",
23351 0, 0, 0, 0),
23352 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_5", "Quinary TDM5 Playback",
23353 0, 0, 0, 0),
23354 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_5", "Quinary TDM5 Capture",
23355 0, 0, 0, 0),
23356 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_6", "Quinary TDM6 Playback",
23357 0, 0, 0, 0),
23358 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_6", "Quinary TDM6 Capture",
23359 0, 0, 0, 0),
23360 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_7", "Quinary TDM7 Playback",
23361 0, 0, 0, 0),
23362 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_7", "Quinary TDM7 Capture",
23363 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023364 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_0", "Senary TDM0 Playback",
23365 0, 0, 0, 0),
23366 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_0", "Senary TDM0 Capture",
23367 0, 0, 0, 0),
23368 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_1", "Senary TDM1 Playback",
23369 0, 0, 0, 0),
23370 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_1", "Senary TDM1 Capture",
23371 0, 0, 0, 0),
23372 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_2", "Senary TDM2 Playback",
23373 0, 0, 0, 0),
23374 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_2", "Senary TDM2 Capture",
23375 0, 0, 0, 0),
23376 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_3", "Senary TDM3 Playback",
23377 0, 0, 0, 0),
23378 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_3", "Senary TDM3 Capture",
23379 0, 0, 0, 0),
23380 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_4", "Senary TDM4 Playback",
23381 0, 0, 0, 0),
23382 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_4", "Senary TDM4 Capture",
23383 0, 0, 0, 0),
23384 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_5", "Senary TDM5 Playback",
23385 0, 0, 0, 0),
23386 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_5", "Senary TDM5 Capture",
23387 0, 0, 0, 0),
23388 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_6", "Senary TDM6 Playback",
23389 0, 0, 0, 0),
23390 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_6", "Senary TDM6 Capture",
23391 0, 0, 0, 0),
23392 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_7", "Senary TDM7 Playback",
23393 0, 0, 0, 0),
23394 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_7", "Senary TDM7 Capture",
23395 0, 0, 0, 0),
Ralf Herz29e07132019-07-26 15:15:21 +020023396 SND_SOC_DAPM_AIF_OUT("PRI_META_MI2S_RX", "Primary META MI2S Playback",
23397 0, 0, 0, 0),
23398 SND_SOC_DAPM_AIF_OUT("SEC_META_MI2S_RX", "Secondary META MI2S Playback",
23399 0, 0, 0, 0),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023400 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_0", "WSA CDC DMA0 Playback",
23401 0, 0, 0, 0),
23402 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_0", "WSA CDC DMA0 Capture",
23403 0, 0, 0, 0),
23404 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_1", "WSA CDC DMA1 Playback",
23405 0, 0, 0, 0),
23406 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_1", "WSA CDC DMA1 Capture",
23407 0, 0, 0, 0),
23408 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_2", "WSA CDC DMA2 Capture",
23409 0, 0, 0, 0),
23410 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_0", "VA CDC DMA0 Capture",
23411 0, 0, 0, 0),
23412 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_1", "VA CDC DMA1 Capture",
23413 0, 0, 0, 0),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080023414 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_2", "VA CDC DMA2 Capture",
23415 0, 0, 0, 0),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023416 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_0", "RX CDC DMA0 Playback",
23417 0, 0, 0, 0),
23418 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_0", "TX CDC DMA0 Capture",
23419 0, 0, 0, 0),
23420 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_1", "RX CDC DMA1 Playback",
23421 0, 0, 0, 0),
23422 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_1", "TX CDC DMA1 Capture",
23423 0, 0, 0, 0),
23424 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_2", "RX CDC DMA2 Playback",
23425 0, 0, 0, 0),
23426 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_2", "TX CDC DMA2 Capture",
23427 0, 0, 0, 0),
23428 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_3", "RX CDC DMA3 Playback",
23429 0, 0, 0, 0),
23430 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_3", "TX CDC DMA3 Capture",
23431 0, 0, 0, 0),
23432 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_4", "RX CDC DMA4 Playback",
23433 0, 0, 0, 0),
23434 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_4", "TX CDC DMA4 Capture",
23435 0, 0, 0, 0),
23436 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_5", "RX CDC DMA5 Playback",
23437 0, 0, 0, 0),
23438 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_5", "TX CDC DMA5 Capture",
23439 0, 0, 0, 0),
23440 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_6", "RX CDC DMA6 Playback",
23441 0, 0, 0, 0),
23442 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_7", "RX CDC DMA7 Playback",
23443 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023444 /* incall */
23445 SND_SOC_DAPM_AIF_OUT("VOICE_PLAYBACK_TX", "Voice Farend Playback",
23446 0, 0, 0, 0),
23447 SND_SOC_DAPM_AIF_OUT("VOICE2_PLAYBACK_TX", "Voice2 Farend Playback",
23448 0, 0, 0, 0),
23449 SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_RX", "Slimbus4 Playback",
23450 0, 0, 0, 0),
23451 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_TX", "Voice Uplink Capture",
23452 0, 0, 0, 0),
23453 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_RX", "Voice Downlink Capture",
23454 0, 0, 0, 0),
23455 SND_SOC_DAPM_AIF_IN("SLIMBUS_4_TX", "Slimbus4 Capture",
23456 0, 0, 0, 0),
23457 SND_SOC_DAPM_AIF_IN("SENARY_TX", "Senary_mi2s Capture",
23458 0, 0, 0, 0),
23459 SND_SOC_DAPM_AIF_IN("INT5_MI2S_TX", "INT5 MI2S Capture",
23460 0, 0, 0, 0),
23461 SND_SOC_DAPM_AIF_IN("SLIMBUS_5_TX", "Slimbus5 Capture", 0, 0, 0, 0),
23462
23463 SND_SOC_DAPM_AIF_OUT("AUX_PCM_RX", "AUX PCM Playback", 0, 0, 0, 0),
23464 SND_SOC_DAPM_AIF_IN("AUX_PCM_TX", "AUX PCM Capture", 0, 0, 0, 0),
23465 SND_SOC_DAPM_AIF_OUT("SEC_AUX_PCM_RX", "Sec AUX PCM Playback",
23466 0, 0, 0, 0),
23467 SND_SOC_DAPM_AIF_IN("SEC_AUX_PCM_TX", "Sec AUX PCM Capture",
23468 0, 0, 0, 0),
23469 SND_SOC_DAPM_AIF_OUT("TERT_AUX_PCM_RX", "Tert AUX PCM Playback",
23470 0, 0, 0, 0),
23471 SND_SOC_DAPM_AIF_IN("TERT_AUX_PCM_TX", "Tert AUX PCM Capture",
23472 0, 0, 0, 0),
23473 SND_SOC_DAPM_AIF_OUT("QUAT_AUX_PCM_RX", "Quat AUX PCM Playback",
23474 0, 0, 0, 0),
23475 SND_SOC_DAPM_AIF_IN("QUAT_AUX_PCM_TX", "Quat AUX PCM Capture",
23476 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053023477 SND_SOC_DAPM_AIF_OUT("QUIN_AUX_PCM_RX", "Quin AUX PCM Playback",
23478 0, 0, 0, 0),
23479 SND_SOC_DAPM_AIF_IN("QUIN_AUX_PCM_TX", "Quin AUX PCM Capture",
23480 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023481 SND_SOC_DAPM_AIF_OUT("SEN_AUX_PCM_RX", "Sen AUX PCM Playback",
23482 0, 0, 0, 0),
23483 SND_SOC_DAPM_AIF_IN("SEN_AUX_PCM_TX", "Sen AUX PCM Capture",
23484 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023485 SND_SOC_DAPM_AIF_IN("VOICE_STUB_DL", "VOICE_STUB Playback", 0, 0, 0, 0),
23486 SND_SOC_DAPM_AIF_OUT("VOICE_STUB_UL", "VOICE_STUB Capture", 0, 0, 0, 0),
23487 SND_SOC_DAPM_AIF_IN("VOICE2_STUB_DL", "VOICE2_STUB Playback",
23488 0, 0, 0, 0),
23489 SND_SOC_DAPM_AIF_OUT("VOICE2_STUB_UL", "VOICE2_STUB Capture",
23490 0, 0, 0, 0),
23491 SND_SOC_DAPM_AIF_IN("VOLTE_STUB_DL", "VOLTE_STUB Playback", 0, 0, 0, 0),
23492 SND_SOC_DAPM_AIF_OUT("VOLTE_STUB_UL", "VOLTE_STUB Capture", 0, 0, 0, 0),
23493 SND_SOC_DAPM_AIF_OUT("STUB_RX", "Stub Playback", 0, 0, 0, 0),
23494 SND_SOC_DAPM_AIF_IN("STUB_TX", "Stub Capture", 0, 0, 0, 0),
23495 SND_SOC_DAPM_AIF_OUT("SLIMBUS_1_RX", "Slimbus1 Playback", 0, 0, 0, 0),
23496 SND_SOC_DAPM_AIF_IN("SLIMBUS_1_TX", "Slimbus1 Capture", 0, 0, 0, 0),
23497 SND_SOC_DAPM_AIF_IN("STUB_1_TX", "Stub1 Capture", 0, 0, 0, 0),
23498 SND_SOC_DAPM_AIF_OUT("SLIMBUS_3_RX", "Slimbus3 Playback", 0, 0, 0, 0),
23499 SND_SOC_DAPM_AIF_IN("SLIMBUS_3_TX", "Slimbus3 Capture", 0, 0, 0, 0),
23500 /* In- call recording */
23501 SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_RX", "Slimbus6 Playback", 0, 0, 0, 0),
23502 SND_SOC_DAPM_AIF_IN("SLIMBUS_6_TX", "Slimbus6 Capture", 0, 0, 0, 0),
Surendar Karkad47fda42018-05-20 19:21:10 +053023503 SND_SOC_DAPM_AIF_IN("AFE_LOOPBACK_TX", "AFE Loopback Capture",
23504 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023505 SND_SOC_DAPM_AIF_OUT("SLIMBUS_7_RX", "Slimbus7 Playback", 0, 0, 0, 0),
23506 SND_SOC_DAPM_AIF_IN("SLIMBUS_7_TX", "Slimbus7 Capture", 0, 0, 0, 0),
23507
23508 SND_SOC_DAPM_AIF_OUT("SLIMBUS_8_RX", "Slimbus8 Playback", 0, 0, 0, 0),
23509 SND_SOC_DAPM_AIF_IN("SLIMBUS_8_TX", "Slimbus8 Capture", 0, 0, 0, 0),
Surendar Karka3ef3d812018-09-28 18:52:35 +053023510 SND_SOC_DAPM_AIF_OUT("SLIMBUS_9_RX", "Slimbus9 Playback", 0, 0, 0, 0),
23511 SND_SOC_DAPM_AIF_IN("SLIMBUS_9_TX", "Slimbus9 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023512 SND_SOC_DAPM_AIF_OUT("USB_AUDIO_RX", "USB Audio Playback", 0, 0, 0, 0),
23513 SND_SOC_DAPM_AIF_IN("USB_AUDIO_TX", "USB Audio Capture", 0, 0, 0, 0),
23514
23515 /* Switch Definitions */
23516 SND_SOC_DAPM_SWITCH("SLIMBUS_DL_HL", SND_SOC_NOPM, 0, 0,
23517 &slim_fm_switch_mixer_controls),
23518 SND_SOC_DAPM_SWITCH("SLIMBUS1_DL_HL", SND_SOC_NOPM, 0, 0,
23519 &slim1_fm_switch_mixer_controls),
23520 SND_SOC_DAPM_SWITCH("SLIMBUS3_DL_HL", SND_SOC_NOPM, 0, 0,
23521 &slim3_fm_switch_mixer_controls),
23522 SND_SOC_DAPM_SWITCH("SLIMBUS4_DL_HL", SND_SOC_NOPM, 0, 0,
23523 &slim4_fm_switch_mixer_controls),
23524 SND_SOC_DAPM_SWITCH("SLIMBUS6_DL_HL", SND_SOC_NOPM, 0, 0,
23525 &slim6_fm_switch_mixer_controls),
23526 SND_SOC_DAPM_SWITCH("PCM_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23527 &pcm_rx_switch_mixer_controls),
23528 SND_SOC_DAPM_SWITCH("INT0_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23529 &int0_mi2s_rx_switch_mixer_controls),
23530 SND_SOC_DAPM_SWITCH("INT4_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23531 &int4_mi2s_rx_switch_mixer_controls),
23532 SND_SOC_DAPM_SWITCH("PRI_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23533 &pri_mi2s_rx_switch_mixer_controls),
23534 SND_SOC_DAPM_SWITCH("SEC_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23535 &sec_mi2s_rx_switch_mixer_controls),
23536 SND_SOC_DAPM_SWITCH("TERT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23537 &tert_mi2s_rx_switch_mixer_controls),
23538 SND_SOC_DAPM_SWITCH("QUAT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23539 &quat_mi2s_rx_switch_mixer_controls),
Rohit Kumara5077932017-09-10 22:05:05 +053023540 SND_SOC_DAPM_SWITCH("QUIN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23541 &quin_mi2s_rx_switch_mixer_controls),
Zhou Songcaa541d2019-02-19 18:37:47 +080023542 SND_SOC_DAPM_SWITCH("SCO_SLIM7_DL_HL", SND_SOC_NOPM, 0, 0,
23543 &sco_slim7_switch_mixer_controls),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023544 SND_SOC_DAPM_SWITCH("SEN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23545 &sen_mi2s_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023546 SND_SOC_DAPM_SWITCH("HFP_PRI_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
23547 &hfp_pri_aux_switch_mixer_controls),
23548 SND_SOC_DAPM_SWITCH("HFP_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
23549 &hfp_aux_switch_mixer_controls),
23550 SND_SOC_DAPM_SWITCH("HFP_INT_UL_HL", SND_SOC_NOPM, 0, 0,
23551 &hfp_int_switch_mixer_controls),
23552 SND_SOC_DAPM_SWITCH("HFP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
23553 &hfp_slim7_switch_mixer_controls),
23554 SND_SOC_DAPM_SWITCH("USB_DL_HL", SND_SOC_NOPM, 0, 0,
23555 &usb_switch_mixer_controls),
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080023556 SND_SOC_DAPM_SWITCH("A2DP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
23557 &a2dp_slim7_switch_mixer_controls),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053023558 SND_SOC_DAPM_SWITCH("WSA_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053023559 &cdc_dma_wsa_switch_mixer_controls),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053023560 SND_SOC_DAPM_SWITCH("RX_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053023561 &cdc_dma_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023562
23563 /* Mixer definitions */
23564 SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23565 pri_i2s_rx_mixer_controls, ARRAY_SIZE(pri_i2s_rx_mixer_controls)),
23566 SND_SOC_DAPM_MIXER("SEC_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23567 sec_i2s_rx_mixer_controls, ARRAY_SIZE(sec_i2s_rx_mixer_controls)),
23568 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23569 slimbus_rx_mixer_controls, ARRAY_SIZE(slimbus_rx_mixer_controls)),
23570 SND_SOC_DAPM_MIXER("SLIMBUS_2_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23571 slimbus_2_rx_mixer_controls, ARRAY_SIZE(slimbus_2_rx_mixer_controls)),
23572 SND_SOC_DAPM_MIXER("SLIMBUS_5_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23573 slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
23574 SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23575 slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
Surendar Karka3ef3d812018-09-28 18:52:35 +053023576 SND_SOC_DAPM_MIXER("SLIMBUS_9_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23577 slimbus_9_rx_mixer_controls, ARRAY_SIZE(slimbus_9_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023578 SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
23579 hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
23580 SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
23581 display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070023582 SND_SOC_DAPM_MIXER("DISPLAY_PORT1 Mixer", SND_SOC_NOPM, 0, 0,
23583 display_port1_mixer_controls, ARRAY_SIZE(display_port1_mixer_controls)),
Ralf Herzc8701f72018-06-20 11:37:35 +020023584 SND_SOC_DAPM_MIXER("PRI_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23585 pri_spdif_rx_mixer_controls, ARRAY_SIZE(pri_spdif_rx_mixer_controls)),
23586 SND_SOC_DAPM_MIXER("SEC_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23587 sec_spdif_rx_mixer_controls, ARRAY_SIZE(sec_spdif_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023588 SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23589 mi2s_rx_mixer_controls, ARRAY_SIZE(mi2s_rx_mixer_controls)),
23590 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23591 quaternary_mi2s_rx_mixer_controls,
23592 ARRAY_SIZE(quaternary_mi2s_rx_mixer_controls)),
23593 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23594 tertiary_mi2s_rx_mixer_controls,
23595 ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
23596 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23597 secondary_mi2s_rx_mixer_controls,
23598 ARRAY_SIZE(secondary_mi2s_rx_mixer_controls)),
23599 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_SD1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23600 secondary_mi2s_rx2_mixer_controls,
23601 ARRAY_SIZE(secondary_mi2s_rx2_mixer_controls)),
23602 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23603 primary_mi2s_rx_mixer_controls,
23604 ARRAY_SIZE(primary_mi2s_rx_mixer_controls)),
23605 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23606 int0_mi2s_rx_mixer_controls,
23607 ARRAY_SIZE(int0_mi2s_rx_mixer_controls)),
23608 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23609 int4_mi2s_rx_mixer_controls,
23610 ARRAY_SIZE(int4_mi2s_rx_mixer_controls)),
23611 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23612 quinary_mi2s_rx_mixer_controls,
23613 ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023614 SND_SOC_DAPM_MIXER("SEN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23615 senary_mi2s_rx_mixer_controls,
23616 ARRAY_SIZE(senary_mi2s_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023617 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23618 pri_tdm_rx_0_mixer_controls,
23619 ARRAY_SIZE(pri_tdm_rx_0_mixer_controls)),
23620 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23621 pri_tdm_rx_1_mixer_controls,
23622 ARRAY_SIZE(pri_tdm_rx_1_mixer_controls)),
23623 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23624 pri_tdm_rx_2_mixer_controls,
23625 ARRAY_SIZE(pri_tdm_rx_2_mixer_controls)),
23626 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23627 pri_tdm_rx_3_mixer_controls,
23628 ARRAY_SIZE(pri_tdm_rx_3_mixer_controls)),
23629 SND_SOC_DAPM_MIXER("PRI_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23630 pri_tdm_tx_0_mixer_controls,
23631 ARRAY_SIZE(pri_tdm_tx_0_mixer_controls)),
23632 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23633 sec_tdm_rx_0_mixer_controls,
23634 ARRAY_SIZE(sec_tdm_rx_0_mixer_controls)),
23635 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23636 sec_tdm_rx_1_mixer_controls,
23637 ARRAY_SIZE(sec_tdm_rx_1_mixer_controls)),
23638 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23639 sec_tdm_rx_2_mixer_controls,
23640 ARRAY_SIZE(sec_tdm_rx_2_mixer_controls)),
23641 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23642 sec_tdm_rx_3_mixer_controls,
23643 ARRAY_SIZE(sec_tdm_rx_3_mixer_controls)),
23644 SND_SOC_DAPM_MIXER("SEC_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23645 sec_tdm_tx_0_mixer_controls,
23646 ARRAY_SIZE(sec_tdm_tx_0_mixer_controls)),
23647 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23648 tert_tdm_rx_0_mixer_controls,
23649 ARRAY_SIZE(tert_tdm_rx_0_mixer_controls)),
23650 SND_SOC_DAPM_MIXER("TERT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23651 tert_tdm_tx_0_mixer_controls,
23652 ARRAY_SIZE(tert_tdm_tx_0_mixer_controls)),
23653 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23654 tert_tdm_rx_1_mixer_controls,
23655 ARRAY_SIZE(tert_tdm_rx_1_mixer_controls)),
23656 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23657 tert_tdm_rx_2_mixer_controls,
23658 ARRAY_SIZE(tert_tdm_rx_2_mixer_controls)),
23659 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23660 tert_tdm_rx_3_mixer_controls,
23661 ARRAY_SIZE(tert_tdm_rx_3_mixer_controls)),
23662 SND_SOC_DAPM_MIXER("TERT_TDM_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
23663 tert_tdm_rx_4_mixer_controls,
23664 ARRAY_SIZE(tert_tdm_rx_4_mixer_controls)),
23665 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23666 quat_tdm_rx_0_mixer_controls,
23667 ARRAY_SIZE(quat_tdm_rx_0_mixer_controls)),
23668 SND_SOC_DAPM_MIXER("QUAT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23669 quat_tdm_tx_0_mixer_controls,
23670 ARRAY_SIZE(quat_tdm_tx_0_mixer_controls)),
23671 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23672 quat_tdm_rx_1_mixer_controls,
23673 ARRAY_SIZE(quat_tdm_rx_1_mixer_controls)),
23674 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23675 quat_tdm_rx_2_mixer_controls,
23676 ARRAY_SIZE(quat_tdm_rx_2_mixer_controls)),
23677 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23678 quat_tdm_rx_3_mixer_controls,
23679 ARRAY_SIZE(quat_tdm_rx_3_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053023680 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23681 quin_tdm_rx_0_mixer_controls,
23682 ARRAY_SIZE(quin_tdm_rx_0_mixer_controls)),
23683 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23684 quin_tdm_tx_0_mixer_controls,
23685 ARRAY_SIZE(quin_tdm_tx_0_mixer_controls)),
23686 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23687 quin_tdm_rx_1_mixer_controls,
23688 ARRAY_SIZE(quin_tdm_rx_1_mixer_controls)),
23689 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23690 quin_tdm_rx_2_mixer_controls,
23691 ARRAY_SIZE(quin_tdm_rx_2_mixer_controls)),
23692 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23693 quin_tdm_rx_3_mixer_controls,
23694 ARRAY_SIZE(quin_tdm_rx_3_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023695 SND_SOC_DAPM_MIXER("SEN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23696 sen_tdm_tx_0_mixer_controls,
23697 ARRAY_SIZE(sen_tdm_tx_0_mixer_controls)),
23698 SND_SOC_DAPM_MIXER("SEN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23699 sen_tdm_rx_0_mixer_controls,
23700 ARRAY_SIZE(sen_tdm_rx_0_mixer_controls)),
23701 SND_SOC_DAPM_MIXER("SEN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23702 sen_tdm_rx_1_mixer_controls,
23703 ARRAY_SIZE(sen_tdm_rx_1_mixer_controls)),
23704 SND_SOC_DAPM_MIXER("SEN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23705 sen_tdm_rx_2_mixer_controls,
23706 ARRAY_SIZE(sen_tdm_rx_2_mixer_controls)),
23707 SND_SOC_DAPM_MIXER("SEN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23708 sen_tdm_rx_3_mixer_controls,
23709 ARRAY_SIZE(sen_tdm_rx_3_mixer_controls)),
Ralf Herz29e07132019-07-26 15:15:21 +020023710 SND_SOC_DAPM_MIXER("PRI_META_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23711 pri_meta_mi2s_rx_mixer_controls,
23712 ARRAY_SIZE(pri_meta_mi2s_rx_mixer_controls)),
23713 SND_SOC_DAPM_MIXER("SEC_META_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23714 sec_meta_mi2s_rx_mixer_controls,
23715 ARRAY_SIZE(sec_meta_mi2s_rx_mixer_controls)),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023716 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23717 wsa_cdc_dma_rx_0_mixer_controls,
23718 ARRAY_SIZE(wsa_cdc_dma_rx_0_mixer_controls)),
23719 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23720 wsa_cdc_dma_rx_1_mixer_controls,
23721 ARRAY_SIZE(wsa_cdc_dma_rx_1_mixer_controls)),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023722 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23723 rx_cdc_dma_rx_0_mixer_controls,
23724 ARRAY_SIZE(rx_cdc_dma_rx_0_mixer_controls)),
23725 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23726 rx_cdc_dma_rx_1_mixer_controls,
23727 ARRAY_SIZE(rx_cdc_dma_rx_1_mixer_controls)),
23728 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23729 rx_cdc_dma_rx_2_mixer_controls,
23730 ARRAY_SIZE(rx_cdc_dma_rx_2_mixer_controls)),
23731 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23732 rx_cdc_dma_rx_3_mixer_controls,
23733 ARRAY_SIZE(rx_cdc_dma_rx_3_mixer_controls)),
23734 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
23735 rx_cdc_dma_rx_4_mixer_controls,
23736 ARRAY_SIZE(rx_cdc_dma_rx_4_mixer_controls)),
23737 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_5 Audio Mixer", SND_SOC_NOPM, 0, 0,
23738 rx_cdc_dma_rx_5_mixer_controls,
23739 ARRAY_SIZE(rx_cdc_dma_rx_5_mixer_controls)),
23740 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_6 Audio Mixer", SND_SOC_NOPM, 0, 0,
23741 rx_cdc_dma_rx_6_mixer_controls,
23742 ARRAY_SIZE(rx_cdc_dma_rx_6_mixer_controls)),
23743 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_7 Audio Mixer", SND_SOC_NOPM, 0, 0,
23744 rx_cdc_dma_rx_7_mixer_controls,
23745 ARRAY_SIZE(rx_cdc_dma_rx_7_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023746 SND_SOC_DAPM_MIXER("MultiMedia1 Mixer", SND_SOC_NOPM, 0, 0,
23747 mmul1_mixer_controls, ARRAY_SIZE(mmul1_mixer_controls)),
23748 SND_SOC_DAPM_MIXER("MultiMedia2 Mixer", SND_SOC_NOPM, 0, 0,
23749 mmul2_mixer_controls, ARRAY_SIZE(mmul2_mixer_controls)),
23750 SND_SOC_DAPM_MIXER("MultiMedia3 Mixer", SND_SOC_NOPM, 0, 0,
23751 mmul3_mixer_controls, ARRAY_SIZE(mmul3_mixer_controls)),
23752 SND_SOC_DAPM_MIXER("MultiMedia4 Mixer", SND_SOC_NOPM, 0, 0,
23753 mmul4_mixer_controls, ARRAY_SIZE(mmul4_mixer_controls)),
23754 SND_SOC_DAPM_MIXER("MultiMedia5 Mixer", SND_SOC_NOPM, 0, 0,
23755 mmul5_mixer_controls, ARRAY_SIZE(mmul5_mixer_controls)),
23756 SND_SOC_DAPM_MIXER("MultiMedia6 Mixer", SND_SOC_NOPM, 0, 0,
23757 mmul6_mixer_controls, ARRAY_SIZE(mmul6_mixer_controls)),
23758 SND_SOC_DAPM_MIXER("MultiMedia8 Mixer", SND_SOC_NOPM, 0, 0,
23759 mmul8_mixer_controls, ARRAY_SIZE(mmul8_mixer_controls)),
23760 SND_SOC_DAPM_MIXER("MultiMedia9 Mixer", SND_SOC_NOPM, 0, 0,
23761 mmul9_mixer_controls, ARRAY_SIZE(mmul9_mixer_controls)),
Laxminath Kasam38070be2017-08-17 18:21:59 +053023762 SND_SOC_DAPM_MIXER("MultiMedia10 Mixer", SND_SOC_NOPM, 0, 0,
23763 mmul10_mixer_controls, ARRAY_SIZE(mmul10_mixer_controls)),
Asish Bhattacharya34504582017-08-08 12:55:01 +053023764 SND_SOC_DAPM_MIXER("MultiMedia16 Mixer", SND_SOC_NOPM, 0, 0,
23765 mmul16_mixer_controls, ARRAY_SIZE(mmul16_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023766 SND_SOC_DAPM_MIXER("MultiMedia17 Mixer", SND_SOC_NOPM, 0, 0,
23767 mmul17_mixer_controls, ARRAY_SIZE(mmul17_mixer_controls)),
23768 SND_SOC_DAPM_MIXER("MultiMedia18 Mixer", SND_SOC_NOPM, 0, 0,
23769 mmul18_mixer_controls, ARRAY_SIZE(mmul18_mixer_controls)),
23770 SND_SOC_DAPM_MIXER("MultiMedia19 Mixer", SND_SOC_NOPM, 0, 0,
23771 mmul19_mixer_controls, ARRAY_SIZE(mmul19_mixer_controls)),
23772 SND_SOC_DAPM_MIXER("MultiMedia20 Mixer", SND_SOC_NOPM, 0, 0,
23773 mmul20_mixer_controls, ARRAY_SIZE(mmul20_mixer_controls)),
Derek Chen07c6d1c2018-07-05 10:39:25 -070023774 SND_SOC_DAPM_MIXER("MultiMedia21 Mixer", SND_SOC_NOPM, 0, 0,
23775 mmul21_mixer_controls, ARRAY_SIZE(mmul21_mixer_controls)),
Derek Chenb097d922019-07-31 17:28:02 -070023776 SND_SOC_DAPM_MIXER("MultiMedia22 Mixer", SND_SOC_NOPM, 0, 0,
23777 mmul22_mixer_controls, ARRAY_SIZE(mmul22_mixer_controls)),
Surendar Karkac1cde372018-08-14 18:56:24 +053023778 SND_SOC_DAPM_MIXER("MultiMedia27 Mixer", SND_SOC_NOPM, 0, 0,
23779 mmul27_mixer_controls, ARRAY_SIZE(mmul27_mixer_controls)),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053023780 SND_SOC_DAPM_MIXER("MultiMedia28 Mixer", SND_SOC_NOPM, 0, 0,
23781 mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
23782 SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
23783 mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053023784 SND_SOC_DAPM_MIXER("MultiMedia30 Mixer", SND_SOC_NOPM, 0, 0,
23785 mmul30_mixer_controls, ARRAY_SIZE(mmul30_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023786 SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23787 auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
23788 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23789 sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
23790 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23791 tert_auxpcm_rx_mixer_controls,
23792 ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
23793 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23794 quat_auxpcm_rx_mixer_controls,
23795 ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053023796 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23797 quin_auxpcm_rx_mixer_controls,
23798 ARRAY_SIZE(quin_auxpcm_rx_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023799 SND_SOC_DAPM_MIXER("SEN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23800 sen_auxpcm_rx_mixer_controls,
23801 ARRAY_SIZE(sen_auxpcm_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023802 /* incall */
23803 SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
23804 incall_music_delivery_mixer_controls,
23805 ARRAY_SIZE(incall_music_delivery_mixer_controls)),
23806 SND_SOC_DAPM_MIXER("Incall_Music_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23807 incall_music2_delivery_mixer_controls,
23808 ARRAY_SIZE(incall_music2_delivery_mixer_controls)),
23809 SND_SOC_DAPM_MIXER("SLIMBUS_4_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23810 slimbus_4_rx_mixer_controls,
23811 ARRAY_SIZE(slimbus_4_rx_mixer_controls)),
23812 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23813 slimbus_6_rx_mixer_controls,
23814 ARRAY_SIZE(slimbus_6_rx_mixer_controls)),
23815 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23816 usb_audio_rx_mixer_controls,
23817 ARRAY_SIZE(usb_audio_rx_mixer_controls)),
23818 /* Voice Mixer */
23819 SND_SOC_DAPM_MIXER("PRI_RX_Voice Mixer",
23820 SND_SOC_NOPM, 0, 0, pri_rx_voice_mixer_controls,
23821 ARRAY_SIZE(pri_rx_voice_mixer_controls)),
23822 SND_SOC_DAPM_MIXER("SEC_RX_Voice Mixer",
23823 SND_SOC_NOPM, 0, 0,
23824 sec_i2s_rx_voice_mixer_controls,
23825 ARRAY_SIZE(sec_i2s_rx_voice_mixer_controls)),
23826 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_Voice Mixer",
23827 SND_SOC_NOPM, 0, 0,
23828 sec_mi2s_rx_voice_mixer_controls,
23829 ARRAY_SIZE(sec_mi2s_rx_voice_mixer_controls)),
23830 SND_SOC_DAPM_MIXER("SLIM_0_RX_Voice Mixer",
23831 SND_SOC_NOPM, 0, 0,
23832 slimbus_rx_voice_mixer_controls,
23833 ARRAY_SIZE(slimbus_rx_voice_mixer_controls)),
23834 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX_Voice Mixer",
23835 SND_SOC_NOPM, 0, 0,
23836 bt_sco_rx_voice_mixer_controls,
23837 ARRAY_SIZE(bt_sco_rx_voice_mixer_controls)),
23838 SND_SOC_DAPM_MIXER("AFE_PCM_RX_Voice Mixer",
23839 SND_SOC_NOPM, 0, 0,
23840 afe_pcm_rx_voice_mixer_controls,
23841 ARRAY_SIZE(afe_pcm_rx_voice_mixer_controls)),
23842 SND_SOC_DAPM_MIXER("AUX_PCM_RX_Voice Mixer",
23843 SND_SOC_NOPM, 0, 0,
23844 aux_pcm_rx_voice_mixer_controls,
23845 ARRAY_SIZE(aux_pcm_rx_voice_mixer_controls)),
23846 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX_Voice Mixer",
23847 SND_SOC_NOPM, 0, 0,
23848 sec_aux_pcm_rx_voice_mixer_controls,
23849 ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
23850 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
23851 SND_SOC_NOPM, 0, 0,
23852 tert_aux_pcm_rx_voice_mixer_controls,
23853 ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
23854 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
23855 SND_SOC_NOPM, 0, 0,
23856 quat_aux_pcm_rx_voice_mixer_controls,
23857 ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053023858 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX_Voice Mixer",
23859 SND_SOC_NOPM, 0, 0,
23860 quin_aux_pcm_rx_voice_mixer_controls,
23861 ARRAY_SIZE(quin_aux_pcm_rx_voice_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023862 SND_SOC_DAPM_MIXER("SEN_AUX_PCM_RX_Voice Mixer",
23863 SND_SOC_NOPM, 0, 0,
23864 sen_aux_pcm_rx_voice_mixer_controls,
23865 ARRAY_SIZE(sen_aux_pcm_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023866 SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
23867 SND_SOC_NOPM, 0, 0,
23868 hdmi_rx_voice_mixer_controls,
23869 ARRAY_SIZE(hdmi_rx_voice_mixer_controls)),
23870 SND_SOC_DAPM_MIXER("MI2S_RX_Voice Mixer",
23871 SND_SOC_NOPM, 0, 0,
23872 mi2s_rx_voice_mixer_controls,
23873 ARRAY_SIZE(mi2s_rx_voice_mixer_controls)),
23874 SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer",
23875 SND_SOC_NOPM, 0, 0,
23876 pri_mi2s_rx_voice_mixer_controls,
23877 ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)),
23878 SND_SOC_DAPM_MIXER("INT0_MI2S_RX_Voice Mixer",
23879 SND_SOC_NOPM, 0, 0,
23880 int0_mi2s_rx_voice_mixer_controls,
23881 ARRAY_SIZE(int0_mi2s_rx_voice_mixer_controls)),
23882 SND_SOC_DAPM_MIXER("INT4_MI2S_RX_Voice Mixer",
23883 SND_SOC_NOPM, 0, 0,
23884 int4_mi2s_rx_voice_mixer_controls,
23885 ARRAY_SIZE(int4_mi2s_rx_voice_mixer_controls)),
23886 SND_SOC_DAPM_MIXER("TERT_MI2S_RX_Voice Mixer",
23887 SND_SOC_NOPM, 0, 0,
23888 tert_mi2s_rx_voice_mixer_controls,
23889 ARRAY_SIZE(tert_mi2s_rx_voice_mixer_controls)),
23890 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX_Voice Mixer",
23891 SND_SOC_NOPM, 0, 0,
23892 quat_mi2s_rx_voice_mixer_controls,
23893 ARRAY_SIZE(quat_mi2s_rx_voice_mixer_controls)),
23894 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX_Voice Mixer",
23895 SND_SOC_NOPM, 0, 0,
23896 quin_mi2s_rx_voice_mixer_controls,
23897 ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)),
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053023898 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0_Voice Mixer",
23899 SND_SOC_NOPM, 0, 0,
23900 pri_tdm_rx_0_voice_mixer_controls,
23901 ARRAY_SIZE(pri_tdm_rx_0_voice_mixer_controls)),
23902 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1_Voice Mixer",
23903 SND_SOC_NOPM, 0, 0,
23904 pri_tdm_rx_1_voice_mixer_controls,
23905 ARRAY_SIZE(pri_tdm_rx_1_voice_mixer_controls)),
23906 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2_Voice Mixer",
23907 SND_SOC_NOPM, 0, 0,
23908 pri_tdm_rx_2_voice_mixer_controls,
23909 ARRAY_SIZE(pri_tdm_rx_2_voice_mixer_controls)),
23910 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3_Voice Mixer",
23911 SND_SOC_NOPM, 0, 0,
23912 pri_tdm_rx_3_voice_mixer_controls,
23913 ARRAY_SIZE(pri_tdm_rx_3_voice_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023914 SND_SOC_DAPM_MIXER("SEN_MI2S_RX_Voice Mixer",
23915 SND_SOC_NOPM, 0, 0,
23916 sen_mi2s_rx_voice_mixer_controls,
23917 ARRAY_SIZE(sen_mi2s_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023918 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer",
23919 SND_SOC_NOPM, 0, 0,
23920 quat_tdm_rx_2_voice_mixer_controls,
23921 ARRAY_SIZE(quat_tdm_rx_2_voice_mixer_controls)),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053023922 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0_Voice Mixer",
23923 SND_SOC_NOPM, 0, 0,
23924 wsa_cdc_dma_rx_0_voice_mixer_controls,
23925 ARRAY_SIZE(wsa_cdc_dma_rx_0_voice_mixer_controls)),
23926 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0_Voice Mixer",
23927 SND_SOC_NOPM, 0, 0,
23928 rx_cdc_dma_rx_0_voice_mixer_controls,
23929 ARRAY_SIZE(rx_cdc_dma_rx_0_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023930 SND_SOC_DAPM_MIXER("Voip_Tx Mixer",
23931 SND_SOC_NOPM, 0, 0, tx_voip_mixer_controls,
23932 ARRAY_SIZE(tx_voip_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023933 SND_SOC_DAPM_MIXER("VoiceMMode1_Tx Mixer",
23934 SND_SOC_NOPM, 0, 0, tx_voicemmode1_mixer_controls,
23935 ARRAY_SIZE(tx_voicemmode1_mixer_controls)),
23936 SND_SOC_DAPM_MIXER("VoiceMMode2_Tx Mixer",
23937 SND_SOC_NOPM, 0, 0, tx_voicemmode2_mixer_controls,
23938 ARRAY_SIZE(tx_voicemmode2_mixer_controls)),
23939 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23940 int_bt_sco_rx_mixer_controls, ARRAY_SIZE(int_bt_sco_rx_mixer_controls)),
23941 SND_SOC_DAPM_MIXER("INTERNAL_A2DP_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23942 int_bt_a2dp_rx_mixer_controls,
23943 ARRAY_SIZE(int_bt_a2dp_rx_mixer_controls)),
23944 SND_SOC_DAPM_MIXER("INTERNAL_FM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23945 int_fm_rx_mixer_controls, ARRAY_SIZE(int_fm_rx_mixer_controls)),
23946 SND_SOC_DAPM_MIXER("AFE_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23947 afe_pcm_rx_mixer_controls, ARRAY_SIZE(afe_pcm_rx_mixer_controls)),
23948 SND_SOC_DAPM_MIXER("Voice Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
23949 tx_voice_stub_mixer_controls, ARRAY_SIZE(tx_voice_stub_mixer_controls)),
23950 SND_SOC_DAPM_MIXER("Voice2 Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
23951 tx_voice2_stub_mixer_controls,
23952 ARRAY_SIZE(tx_voice2_stub_mixer_controls)),
23953 SND_SOC_DAPM_MIXER("VoLTE Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
23954 tx_volte_stub_mixer_controls, ARRAY_SIZE(tx_volte_stub_mixer_controls)),
23955 SND_SOC_DAPM_MIXER("STUB_RX Mixer", SND_SOC_NOPM, 0, 0,
23956 stub_rx_mixer_controls, ARRAY_SIZE(stub_rx_mixer_controls)),
23957 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Mixer", SND_SOC_NOPM, 0, 0,
23958 slimbus_1_rx_mixer_controls, ARRAY_SIZE(slimbus_1_rx_mixer_controls)),
23959 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
23960 slimbus_3_rx_mixer_controls, ARRAY_SIZE(slimbus_3_rx_mixer_controls)),
23961 SND_SOC_DAPM_MIXER("SLIM_6_RX_Voice Mixer",
23962 SND_SOC_NOPM, 0, 0,
23963 slimbus_6_rx_voice_mixer_controls,
23964 ARRAY_SIZE(slimbus_6_rx_voice_mixer_controls)),
23965 SND_SOC_DAPM_MIXER("SLIM_7_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
23966 slimbus_7_rx_voice_mixer_controls,
23967 ARRAY_SIZE(slimbus_7_rx_voice_mixer_controls)),
23968 SND_SOC_DAPM_MIXER("SLIM_8_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
23969 slimbus_8_rx_voice_mixer_controls,
23970 ARRAY_SIZE(slimbus_8_rx_voice_mixer_controls)),
23971 /* port mixer */
23972 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Port Mixer",
23973 SND_SOC_NOPM, 0, 0, sbus_0_rx_port_mixer_controls,
23974 ARRAY_SIZE(sbus_0_rx_port_mixer_controls)),
23975 SND_SOC_DAPM_MIXER("AUX_PCM_RX Port Mixer",
23976 SND_SOC_NOPM, 0, 0, aux_pcm_rx_port_mixer_controls,
23977 ARRAY_SIZE(aux_pcm_rx_port_mixer_controls)),
23978 SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
23979 SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
23980 ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
23981 SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
23982 SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
23983 ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
23984 SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
23985 SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
23986 ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053023987 SND_SOC_DAPM_MIXER("QUIN_AUXPCM_RX Port Mixer",
23988 SND_SOC_NOPM, 0, 0, quin_auxpcm_rx_port_mixer_controls,
23989 ARRAY_SIZE(quin_auxpcm_rx_port_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023990 SND_SOC_DAPM_MIXER("SEN_AUXPCM_RX Port Mixer",
23991 SND_SOC_NOPM, 0, 0, sen_auxpcm_rx_port_mixer_controls,
23992 ARRAY_SIZE(sen_auxpcm_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023993 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23994 sbus_1_rx_port_mixer_controls,
23995 ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
23996 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Port Mixer", SND_SOC_NOPM, 0, 0,
23997 bt_sco_rx_port_mixer_controls,
23998 ARRAY_SIZE(bt_sco_rx_port_mixer_controls)),
23999 SND_SOC_DAPM_MIXER("AFE_PCM_RX Port Mixer",
24000 SND_SOC_NOPM, 0, 0, afe_pcm_rx_port_mixer_controls,
24001 ARRAY_SIZE(afe_pcm_rx_port_mixer_controls)),
24002 SND_SOC_DAPM_MIXER("HDMI_RX Port Mixer",
24003 SND_SOC_NOPM, 0, 0, hdmi_rx_port_mixer_controls,
24004 ARRAY_SIZE(hdmi_rx_port_mixer_controls)),
24005 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
24006 SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
24007 ARRAY_SIZE(display_port_rx_port_mixer_controls)),
Karthikeyan Manifbea92f2018-06-14 16:38:15 -070024008 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1 Port Mixer",
Karthikeyan Mani57550082018-05-03 18:43:58 -070024009 SND_SOC_NOPM, 0, 0, display_port_rx1_port_mixer_controls,
24010 ARRAY_SIZE(display_port_rx1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024011 SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
24012 SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
24013 ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
24014 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX Port Mixer",
24015 SND_SOC_NOPM, 0, 0, sbus_3_rx_port_mixer_controls,
24016 ARRAY_SIZE(sbus_3_rx_port_mixer_controls)),
24017 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Port Mixer",
24018 SND_SOC_NOPM, 0, 0, sbus_6_rx_port_mixer_controls,
24019 ARRAY_SIZE(sbus_6_rx_port_mixer_controls)),
24020 SND_SOC_DAPM_MIXER("MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24021 mi2s_rx_port_mixer_controls, ARRAY_SIZE(mi2s_rx_port_mixer_controls)),
24022 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24023 primary_mi2s_rx_port_mixer_controls,
24024 ARRAY_SIZE(primary_mi2s_rx_port_mixer_controls)),
24025 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24026 sec_mi2s_rx_port_mixer_controls,
24027 ARRAY_SIZE(sec_mi2s_rx_port_mixer_controls)),
24028 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24029 tert_mi2s_rx_port_mixer_controls,
24030 ARRAY_SIZE(tert_mi2s_rx_port_mixer_controls)),
24031 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24032 quat_mi2s_rx_port_mixer_controls,
24033 ARRAY_SIZE(quat_mi2s_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024034 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24035 quin_mi2s_rx_port_mixer_controls,
24036 ARRAY_SIZE(quin_mi2s_rx_port_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024037 SND_SOC_DAPM_MIXER("SEN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24038 sen_mi2s_rx_port_mixer_controls,
24039 ARRAY_SIZE(sen_mi2s_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024040 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24041 pri_tdm_rx_0_port_mixer_controls,
24042 ARRAY_SIZE(pri_tdm_rx_0_port_mixer_controls)),
24043 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24044 pri_tdm_rx_1_port_mixer_controls,
24045 ARRAY_SIZE(pri_tdm_rx_1_port_mixer_controls)),
24046 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24047 pri_tdm_rx_2_port_mixer_controls,
24048 ARRAY_SIZE(pri_tdm_rx_2_port_mixer_controls)),
24049 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24050 pri_tdm_rx_3_port_mixer_controls,
24051 ARRAY_SIZE(pri_tdm_rx_3_port_mixer_controls)),
24052 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24053 sec_tdm_rx_0_port_mixer_controls,
24054 ARRAY_SIZE(sec_tdm_rx_0_port_mixer_controls)),
24055 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24056 sec_tdm_rx_1_port_mixer_controls,
24057 ARRAY_SIZE(sec_tdm_rx_1_port_mixer_controls)),
24058 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24059 sec_tdm_rx_2_port_mixer_controls,
24060 ARRAY_SIZE(sec_tdm_rx_2_port_mixer_controls)),
24061 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24062 sec_tdm_rx_3_port_mixer_controls,
24063 ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
Derek Chenfdcc0982018-10-02 15:14:03 -070024064 SND_SOC_DAPM_MIXER("SEC_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
24065 sec_tdm_rx_7_port_mixer_controls,
24066 ARRAY_SIZE(sec_tdm_rx_7_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024067 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24068 tert_tdm_rx_0_port_mixer_controls,
24069 ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
24070 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24071 tert_tdm_rx_1_port_mixer_controls,
24072 ARRAY_SIZE(tert_tdm_rx_1_port_mixer_controls)),
24073 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24074 tert_tdm_rx_2_port_mixer_controls,
24075 ARRAY_SIZE(tert_tdm_rx_2_port_mixer_controls)),
24076 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24077 tert_tdm_rx_3_port_mixer_controls,
24078 ARRAY_SIZE(tert_tdm_rx_3_port_mixer_controls)),
24079 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24080 quat_tdm_rx_0_port_mixer_controls,
24081 ARRAY_SIZE(quat_tdm_rx_0_port_mixer_controls)),
24082 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24083 quat_tdm_rx_1_port_mixer_controls,
24084 ARRAY_SIZE(quat_tdm_rx_1_port_mixer_controls)),
24085 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24086 quat_tdm_rx_2_port_mixer_controls,
24087 ARRAY_SIZE(quat_tdm_rx_2_port_mixer_controls)),
24088 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24089 quat_tdm_rx_3_port_mixer_controls,
24090 ARRAY_SIZE(quat_tdm_rx_3_port_mixer_controls)),
Derek Chenb9048cb2019-03-07 14:54:13 -050024091 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
24092 quat_tdm_rx_7_port_mixer_controls,
24093 ARRAY_SIZE(quat_tdm_rx_7_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024094 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24095 quin_tdm_rx_0_port_mixer_controls,
24096 ARRAY_SIZE(quin_tdm_rx_0_port_mixer_controls)),
24097 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24098 quin_tdm_rx_1_port_mixer_controls,
24099 ARRAY_SIZE(quin_tdm_rx_1_port_mixer_controls)),
24100 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24101 quin_tdm_rx_2_port_mixer_controls,
24102 ARRAY_SIZE(quin_tdm_rx_2_port_mixer_controls)),
24103 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24104 quin_tdm_rx_3_port_mixer_controls,
24105 ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)),
Han Lu7b6c5882019-06-09 16:03:21 +080024106 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
24107 quin_tdm_rx_7_port_mixer_controls,
24108 ARRAY_SIZE(quin_tdm_rx_7_port_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024109 SND_SOC_DAPM_MIXER("SEN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24110 sen_tdm_rx_0_port_mixer_controls,
24111 ARRAY_SIZE(sen_tdm_rx_0_port_mixer_controls)),
24112 SND_SOC_DAPM_MIXER("SEN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24113 sen_tdm_rx_1_port_mixer_controls,
24114 ARRAY_SIZE(sen_tdm_rx_1_port_mixer_controls)),
24115 SND_SOC_DAPM_MIXER("SEN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24116 sen_tdm_rx_2_port_mixer_controls,
24117 ARRAY_SIZE(sen_tdm_rx_2_port_mixer_controls)),
24118 SND_SOC_DAPM_MIXER("SEN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24119 sen_tdm_rx_3_port_mixer_controls,
24120 ARRAY_SIZE(sen_tdm_rx_3_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024121 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24122 int0_mi2s_rx_port_mixer_controls,
24123 ARRAY_SIZE(int0_mi2s_rx_port_mixer_controls)),
24124 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24125 int4_mi2s_rx_port_mixer_controls,
24126 ARRAY_SIZE(int4_mi2s_rx_port_mixer_controls)),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053024127 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24128 wsa_cdc_dma_rx_0_port_mixer_controls,
24129 ARRAY_SIZE(wsa_cdc_dma_rx_0_port_mixer_controls)),
24130 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24131 rx_cdc_dma_rx_0_port_mixer_controls,
24132 ARRAY_SIZE(rx_cdc_dma_rx_0_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024133 SND_SOC_DAPM_MIXER("QCHAT_Tx Mixer",
24134 SND_SOC_NOPM, 0, 0, tx_qchat_mixer_controls,
24135 ARRAY_SIZE(tx_qchat_mixer_controls)),
24136 SND_SOC_DAPM_MIXER("USB_AUDIO_RX_Voice Mixer",
24137 SND_SOC_NOPM, 0, 0, usb_audio_rx_voice_mixer_controls,
24138 ARRAY_SIZE(usb_audio_rx_voice_mixer_controls)),
24139 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
24140 SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
24141 ARRAY_SIZE(usb_rx_port_mixer_controls)),
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080024142 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
24143 SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
24144 ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070024145 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1_Voice Mixer",
24146 SND_SOC_NOPM, 0, 0, display_port_rx1_voice_mixer_controls,
24147 ARRAY_SIZE(display_port_rx1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024148 /* lsm mixer definitions */
24149 SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
24150 lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
24151 SND_SOC_DAPM_MIXER("LSM2 Mixer", SND_SOC_NOPM, 0, 0,
24152 lsm2_mixer_controls, ARRAY_SIZE(lsm2_mixer_controls)),
24153 SND_SOC_DAPM_MIXER("LSM3 Mixer", SND_SOC_NOPM, 0, 0,
24154 lsm3_mixer_controls, ARRAY_SIZE(lsm3_mixer_controls)),
24155 SND_SOC_DAPM_MIXER("LSM4 Mixer", SND_SOC_NOPM, 0, 0,
24156 lsm4_mixer_controls, ARRAY_SIZE(lsm4_mixer_controls)),
24157 SND_SOC_DAPM_MIXER("LSM5 Mixer", SND_SOC_NOPM, 0, 0,
24158 lsm5_mixer_controls, ARRAY_SIZE(lsm5_mixer_controls)),
24159 SND_SOC_DAPM_MIXER("LSM6 Mixer", SND_SOC_NOPM, 0, 0,
24160 lsm6_mixer_controls, ARRAY_SIZE(lsm6_mixer_controls)),
24161 SND_SOC_DAPM_MIXER("LSM7 Mixer", SND_SOC_NOPM, 0, 0,
24162 lsm7_mixer_controls, ARRAY_SIZE(lsm7_mixer_controls)),
24163 SND_SOC_DAPM_MIXER("LSM8 Mixer", SND_SOC_NOPM, 0, 0,
24164 lsm8_mixer_controls, ARRAY_SIZE(lsm8_mixer_controls)),
24165 /* Virtual Pins to force backends ON atm */
24166 SND_SOC_DAPM_OUTPUT("BE_OUT"),
24167 SND_SOC_DAPM_INPUT("BE_IN"),
24168
24169 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
24170 &slim0_rx_vi_fb_lch_mux),
24171 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
24172 &slim0_rx_vi_fb_rch_mux),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024173 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
24174 &wsa_rx_0_vi_fb_lch_mux),
24175 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
24176 &wsa_rx_0_vi_fb_rch_mux),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024177 SND_SOC_DAPM_MUX("PRI_MI2S_RX_VI_FB_MUX", SND_SOC_NOPM, 0, 0,
24178 &mi2s_rx_vi_fb_mux),
24179 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_MONO_CH_MUX", SND_SOC_NOPM, 0, 0,
24180 &int4_mi2s_rx_vi_fb_mono_ch_mux),
24181 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", SND_SOC_NOPM, 0, 0,
24182 &int4_mi2s_rx_vi_fb_stereo_ch_mux),
24183
24184 SND_SOC_DAPM_MUX("VOC_EXT_EC MUX", SND_SOC_NOPM, 0, 0,
24185 &voc_ext_ec_mux),
24186 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL1 MUX", SND_SOC_NOPM, 0, 0,
24187 &ext_ec_ref_mux_ul1),
24188 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL2 MUX", SND_SOC_NOPM, 0, 0,
24189 &ext_ec_ref_mux_ul2),
24190 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL3 MUX", SND_SOC_NOPM, 0, 0,
24191 &ext_ec_ref_mux_ul3),
24192 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL4 MUX", SND_SOC_NOPM, 0, 0,
24193 &ext_ec_ref_mux_ul4),
24194 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL5 MUX", SND_SOC_NOPM, 0, 0,
24195 &ext_ec_ref_mux_ul5),
24196 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL6 MUX", SND_SOC_NOPM, 0, 0,
24197 &ext_ec_ref_mux_ul6),
24198 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL8 MUX", SND_SOC_NOPM, 0, 0,
24199 &ext_ec_ref_mux_ul8),
24200 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL9 MUX", SND_SOC_NOPM, 0, 0,
24201 &ext_ec_ref_mux_ul9),
Laxminath Kasam38070be2017-08-17 18:21:59 +053024202 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL10 MUX", SND_SOC_NOPM, 0, 0,
24203 &ext_ec_ref_mux_ul10),
Asish Bhattacharya34504582017-08-08 12:55:01 +053024204 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL16 MUX", SND_SOC_NOPM, 0, 0,
24205 &ext_ec_ref_mux_ul16),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024206 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL17 MUX", SND_SOC_NOPM, 0, 0,
24207 &ext_ec_ref_mux_ul17),
24208 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL18 MUX", SND_SOC_NOPM, 0, 0,
24209 &ext_ec_ref_mux_ul18),
24210 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL19 MUX", SND_SOC_NOPM, 0, 0,
24211 &ext_ec_ref_mux_ul19),
Meng Wang5c4bab72018-04-25 10:40:01 +080024212 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL28 MUX", SND_SOC_NOPM, 0, 0,
24213 &ext_ec_ref_mux_ul28),
24214 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL29 MUX", SND_SOC_NOPM, 0, 0,
24215 &ext_ec_ref_mux_ul29),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024216};
24217
24218static const struct snd_soc_dapm_route intercon[] = {
24219 {"PRI_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24220 {"PRI_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24221 {"PRI_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24222 {"PRI_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24223 {"PRI_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24224 {"PRI_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24225 {"PRI_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24226 {"PRI_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24227 {"PRI_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24228 {"PRI_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24229 {"PRI_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24230 {"PRI_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24231 {"PRI_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24232 {"PRI_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24233 {"PRI_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24234 {"PRI_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024235 {"PRI_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024236 {"PRI_I2S_RX", NULL, "PRI_RX Audio Mixer"},
24237
24238 {"SEC_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24239 {"SEC_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24240 {"SEC_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24241 {"SEC_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24242 {"SEC_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24243 {"SEC_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24244 {"SEC_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24245 {"SEC_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24246 {"SEC_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24247 {"SEC_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24248 {"SEC_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24249 {"SEC_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24250 {"SEC_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24251 {"SEC_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24252 {"SEC_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24253 {"SEC_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024254 {"SEC_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024255 {"SEC_I2S_RX", NULL, "SEC_RX Audio Mixer"},
24256
24257 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24258 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24259 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24260 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24261 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24262 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24263 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24264 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24265 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24266 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24267 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24268 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24269 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24270 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24271 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24272 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024273 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024274 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Audio Mixer"},
24275
24276 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24277 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24278 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24279 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24280 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24281 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24282 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24283 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24284 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24285 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24286 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24287 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24288 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24289 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24290 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24291 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024292 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024293 {"SLIMBUS_2_RX", NULL, "SLIMBUS_2_RX Audio Mixer"},
24294
24295 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24296 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24297 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24298 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24299 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24300 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24301 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24302 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24303 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24304 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24305 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24306 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24307 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24308 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24309 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24310 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024311 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024312 {"SLIMBUS_5_RX", NULL, "SLIMBUS_5_RX Audio Mixer"},
24313
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024314 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24315 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24316 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24317 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24318 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24319 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24320 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24321 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24322 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24323 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24324 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24325 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24326 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24327 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24328 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24329 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024330 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024331 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Audio Mixer"},
24332
24333 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
24334 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
24335 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
24336 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
24337 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
24338 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
24339 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
24340 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
24341 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
24342 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
24343 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
24344 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
24345 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
24346 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
24347 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
24348 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024349 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024350 {"WSA_CDC_DMA_RX_1", NULL, "WSA_CDC_DMA_RX_1 Audio Mixer"},
24351
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024352 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24353 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24354 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24355 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24356 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24357 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24358 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24359 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24360 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24361 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24362 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24363 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24364 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24365 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24366 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24367 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024368 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024369 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Audio Mixer"},
24370
24371 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
24372 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
24373 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
24374 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
24375 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
24376 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
24377 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
24378 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
24379 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
24380 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
24381 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
24382 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
24383 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
24384 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
24385 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
24386 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024387 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024388 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Audio Mixer"},
24389
24390 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
24391 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
24392 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
24393 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
24394 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
24395 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
24396 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
24397 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
24398 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
24399 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
24400 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
24401 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
24402 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
24403 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
24404 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
24405 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024406 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024407 {"RX_CDC_DMA_RX_2", NULL, "RX_CDC_DMA_RX_2 Audio Mixer"},
24408
24409 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
24410 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
24411 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
24412 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
24413 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
24414 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
24415 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
24416 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
24417 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
24418 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
24419 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
24420 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
24421 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
24422 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
24423 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
24424 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024425 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024426 {"RX_CDC_DMA_RX_3", NULL, "RX_CDC_DMA_RX_3 Audio Mixer"},
24427
24428 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
24429 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
24430 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
24431 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
24432 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
24433 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
24434 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
24435 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
24436 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
24437 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
24438 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
24439 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
24440 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
24441 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
24442 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
24443 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024444 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024445 {"RX_CDC_DMA_RX_4", NULL, "RX_CDC_DMA_RX_4 Audio Mixer"},
24446
24447 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia1", "MM_DL1"},
24448 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia2", "MM_DL2"},
24449 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia3", "MM_DL3"},
24450 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia4", "MM_DL4"},
24451 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia5", "MM_DL5"},
24452 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia6", "MM_DL6"},
24453 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia7", "MM_DL7"},
24454 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia8", "MM_DL8"},
24455 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia9", "MM_DL9"},
24456 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia10", "MM_DL10"},
24457 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia11", "MM_DL11"},
24458 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia12", "MM_DL12"},
24459 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia13", "MM_DL13"},
24460 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia14", "MM_DL14"},
24461 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia15", "MM_DL15"},
24462 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024463 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024464 {"RX_CDC_DMA_RX_5", NULL, "RX_CDC_DMA_RX_5 Audio Mixer"},
24465
24466 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia1", "MM_DL1"},
24467 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia2", "MM_DL2"},
24468 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia3", "MM_DL3"},
24469 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia4", "MM_DL4"},
24470 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia5", "MM_DL5"},
24471 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia6", "MM_DL6"},
24472 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia7", "MM_DL7"},
24473 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia8", "MM_DL8"},
24474 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia9", "MM_DL9"},
24475 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia10", "MM_DL10"},
24476 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia11", "MM_DL11"},
24477 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia12", "MM_DL12"},
24478 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia13", "MM_DL13"},
24479 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia14", "MM_DL14"},
24480 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia15", "MM_DL15"},
24481 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024482 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024483 {"RX_CDC_DMA_RX_6", NULL, "RX_CDC_DMA_RX_6 Audio Mixer"},
24484
24485 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia1", "MM_DL1"},
24486 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia2", "MM_DL2"},
24487 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia3", "MM_DL3"},
24488 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia4", "MM_DL4"},
24489 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia5", "MM_DL5"},
24490 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia6", "MM_DL6"},
24491 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia7", "MM_DL7"},
24492 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia8", "MM_DL8"},
24493 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia9", "MM_DL9"},
24494 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia10", "MM_DL10"},
24495 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia11", "MM_DL11"},
24496 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia12", "MM_DL12"},
24497 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia13", "MM_DL13"},
24498 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia14", "MM_DL14"},
24499 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia15", "MM_DL15"},
24500 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024501 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024502 {"RX_CDC_DMA_RX_7", NULL, "RX_CDC_DMA_RX_7 Audio Mixer"},
24503
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024504 {"HDMI Mixer", "MultiMedia1", "MM_DL1"},
24505 {"HDMI Mixer", "MultiMedia2", "MM_DL2"},
24506 {"HDMI Mixer", "MultiMedia3", "MM_DL3"},
24507 {"HDMI Mixer", "MultiMedia4", "MM_DL4"},
24508 {"HDMI Mixer", "MultiMedia5", "MM_DL5"},
24509 {"HDMI Mixer", "MultiMedia6", "MM_DL6"},
24510 {"HDMI Mixer", "MultiMedia7", "MM_DL7"},
24511 {"HDMI Mixer", "MultiMedia8", "MM_DL8"},
24512 {"HDMI Mixer", "MultiMedia9", "MM_DL9"},
24513 {"HDMI Mixer", "MultiMedia10", "MM_DL10"},
24514 {"HDMI Mixer", "MultiMedia11", "MM_DL11"},
24515 {"HDMI Mixer", "MultiMedia12", "MM_DL12"},
24516 {"HDMI Mixer", "MultiMedia13", "MM_DL13"},
24517 {"HDMI Mixer", "MultiMedia14", "MM_DL14"},
24518 {"HDMI Mixer", "MultiMedia15", "MM_DL15"},
24519 {"HDMI Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024520 {"HDMI Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024521 {"HDMI", NULL, "HDMI Mixer"},
24522
24523 {"DISPLAY_PORT Mixer", "MultiMedia1", "MM_DL1"},
24524 {"DISPLAY_PORT Mixer", "MultiMedia2", "MM_DL2"},
24525 {"DISPLAY_PORT Mixer", "MultiMedia3", "MM_DL3"},
24526 {"DISPLAY_PORT Mixer", "MultiMedia4", "MM_DL4"},
24527 {"DISPLAY_PORT Mixer", "MultiMedia5", "MM_DL5"},
24528 {"DISPLAY_PORT Mixer", "MultiMedia6", "MM_DL6"},
24529 {"DISPLAY_PORT Mixer", "MultiMedia7", "MM_DL7"},
24530 {"DISPLAY_PORT Mixer", "MultiMedia8", "MM_DL8"},
24531 {"DISPLAY_PORT Mixer", "MultiMedia9", "MM_DL9"},
24532 {"DISPLAY_PORT Mixer", "MultiMedia10", "MM_DL10"},
24533 {"DISPLAY_PORT Mixer", "MultiMedia11", "MM_DL11"},
24534 {"DISPLAY_PORT Mixer", "MultiMedia12", "MM_DL12"},
24535 {"DISPLAY_PORT Mixer", "MultiMedia13", "MM_DL13"},
24536 {"DISPLAY_PORT Mixer", "MultiMedia14", "MM_DL14"},
24537 {"DISPLAY_PORT Mixer", "MultiMedia15", "MM_DL15"},
24538 {"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024539 {"DISPLAY_PORT Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024540 {"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
24541
Karthikeyan Mani57550082018-05-03 18:43:58 -070024542 {"DISPLAY_PORT1 Mixer", "MultiMedia1", "MM_DL1"},
24543 {"DISPLAY_PORT1 Mixer", "MultiMedia2", "MM_DL2"},
24544 {"DISPLAY_PORT1 Mixer", "MultiMedia3", "MM_DL3"},
24545 {"DISPLAY_PORT1 Mixer", "MultiMedia4", "MM_DL4"},
24546 {"DISPLAY_PORT1 Mixer", "MultiMedia5", "MM_DL5"},
24547 {"DISPLAY_PORT1 Mixer", "MultiMedia6", "MM_DL6"},
24548 {"DISPLAY_PORT1 Mixer", "MultiMedia7", "MM_DL7"},
24549 {"DISPLAY_PORT1 Mixer", "MultiMedia8", "MM_DL8"},
24550 {"DISPLAY_PORT1 Mixer", "MultiMedia9", "MM_DL9"},
24551 {"DISPLAY_PORT1 Mixer", "MultiMedia10", "MM_DL10"},
24552 {"DISPLAY_PORT1 Mixer", "MultiMedia11", "MM_DL11"},
24553 {"DISPLAY_PORT1 Mixer", "MultiMedia12", "MM_DL12"},
24554 {"DISPLAY_PORT1 Mixer", "MultiMedia13", "MM_DL13"},
24555 {"DISPLAY_PORT1 Mixer", "MultiMedia14", "MM_DL14"},
24556 {"DISPLAY_PORT1 Mixer", "MultiMedia15", "MM_DL15"},
24557 {"DISPLAY_PORT1 Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024558 {"DISPLAY_PORT1 Mixer", "MultiMedia26", "MM_DL26"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070024559 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT1 Mixer"},
24560
Ralf Herzc8701f72018-06-20 11:37:35 +020024561 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24562 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24563 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24564 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24565 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24566 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24567 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24568 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24569 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24570 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24571 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24572 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24573 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24574 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24575 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24576 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024577 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024578 {"PRI_SPDIF_RX", NULL, "PRI_SPDIF_RX Audio Mixer"},
24579
24580 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24581 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24582 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24583 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24584 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24585 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24586 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24587 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24588 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24589 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24590 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24591 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24592 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24593 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24594 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24595 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024596 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024597 {"SEC_SPDIF_RX", NULL, "SEC_SPDIF_RX Audio Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024598
24599 /* incall */
24600 {"Incall_Music Audio Mixer", "MultiMedia1", "MM_DL1"},
24601 {"Incall_Music Audio Mixer", "MultiMedia2", "MM_DL2"},
24602 {"Incall_Music Audio Mixer", "MultiMedia5", "MM_DL5"},
24603 {"Incall_Music Audio Mixer", "MultiMedia9", "MM_DL9"},
24604 {"VOICE_PLAYBACK_TX", NULL, "Incall_Music Audio Mixer"},
24605 {"Incall_Music_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
24606 {"Incall_Music_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
24607 {"Incall_Music_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
24608 {"Incall_Music_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
24609 {"VOICE2_PLAYBACK_TX", NULL, "Incall_Music_2 Audio Mixer"},
24610 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24611 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24612 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24613 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24614 {"SLIMBUS_4_RX", NULL, "SLIMBUS_4_RX Audio Mixer"},
24615
24616 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24617 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24618 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24619 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24620 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24621 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24622 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24623 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24624 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24625 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24626 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24627 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24628 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24629 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24630 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24631 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024632 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024633 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Audio Mixer"},
24634
24635 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24636 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24637 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24638 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24639 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24640 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24641 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24642 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24643 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24644 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24645 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24646 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24647 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24648 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24649 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24650 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024651 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024652 {"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
24653
Surendar Karka3ef3d812018-09-28 18:52:35 +053024654 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24655 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24656 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24657 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24658 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24659 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24660 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24661 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24662 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24663 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24664 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24665 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24666 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24667 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24668 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24669 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24670 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
24671 {"SLIMBUS_9_RX", NULL, "SLIMBUS_9_RX Audio Mixer"},
24672
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024673 {"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24674 {"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24675 {"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24676 {"USB_AUDIO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24677 {"USB_AUDIO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24678 {"USB_AUDIO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24679 {"USB_AUDIO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24680 {"USB_AUDIO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24681 {"USB_AUDIO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24682 {"USB_AUDIO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24683 {"USB_AUDIO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24684 {"USB_AUDIO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24685 {"USB_AUDIO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24686 {"USB_AUDIO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24687 {"USB_AUDIO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24688 {"USB_AUDIO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024689 {"USB_AUDIO_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024690 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Audio Mixer"},
24691
24692 {"MultiMedia1 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
24693 {"MultiMedia4 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
24694 {"MultiMedia8 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
24695 {"MultiMedia1 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
24696 {"MultiMedia4 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
24697 {"MultiMedia8 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
24698 {"MultiMedia1 Mixer", "SLIM_4_TX", "SLIMBUS_4_TX"},
24699 {"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
24700 {"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
24701 {"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053024702 {"MultiMedia1 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024703 {"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
24704 {"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053024705 {"MultiMedia8 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024706 {"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024707 {"MultiMedia4 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024708 {"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024709 {"MultiMedia17 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024710 {"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024711 {"MultiMedia18 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024712 {"MultiMedia19 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024713 {"MultiMedia19 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024714 {"MultiMedia28 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024715 {"MultiMedia28 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024716 {"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024717 {"MultiMedia29 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024718 {"MultiMedia30 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
24719 {"MultiMedia30 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024720 {"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024721 {"MultiMedia8 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024722 {"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24723 {"MultiMedia4 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24724 {"MultiMedia17 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24725 {"MultiMedia18 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24726 {"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024727 {"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24728 {"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024729 {"MultiMedia30 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024730 {"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024731 {"MultiMedia18 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010024732 {"MultiMedia19 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
24733 {"MultiMedia28 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
24734 {"MultiMedia29 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024735 {"MultiMedia30 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024736 {"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
24737 {"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
24738 {"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
24739 {"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
24740 {"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024741 {"MultiMedia30 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024742 {"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024743 {"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024744 {"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
24745 {"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
24746 {"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024747 {"MultiMedia30 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024748 {"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
24749 {"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024750 {"MultiMedia3 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024751 {"MultiMedia5 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024752 {"MultiMedia5 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053024753 {"MultiMedia10 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024754 {"MultiMedia10 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053024755 {"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024756 {"MultiMedia16 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024757 {"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
24758 {"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053024759 {"MultiMedia5 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053024760 {"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053024761 {"MultiMedia10 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024762 {"MultiMedia18 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010024763 {"MultiMedia19 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
24764 {"MultiMedia28 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
24765 {"MultiMedia29 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024766 {"MultiMedia30 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024767 {"MultiMedia18 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010024768 {"MultiMedia19 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
24769 {"MultiMedia28 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
24770 {"MultiMedia29 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024771 {"MultiMedia30 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024772
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024773 {"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24774 {"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24775 {"MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24776 {"MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24777 {"MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24778 {"MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24779 {"MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24780 {"MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24781 {"MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24782 {"MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24783 {"MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24784 {"MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24785 {"MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24786 {"MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24787 {"MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24788 {"MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024789 {"MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024790 {"MI2S_RX", NULL, "MI2S_RX Audio Mixer"},
24791
24792 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24793 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24794 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24795 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24796 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24797 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24798 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24799 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24800 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24801 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24802 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24803 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24804 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24805 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24806 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024807 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024808 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Audio Mixer"},
24809
24810 {"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24811 {"TERT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24812 {"TERT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24813 {"TERT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24814 {"TERT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24815 {"TERT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24816 {"TERT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24817 {"TERT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24818 {"TERT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24819 {"TERT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24820 {"TERT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24821 {"TERT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24822 {"TERT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24823 {"TERT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024824 {"TERT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024825 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Audio Mixer"},
24826
24827 {"SEC_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24828 {"SEC_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24829 {"SEC_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24830 {"SEC_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24831 {"SEC_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24832 {"SEC_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24833 {"SEC_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24834 {"SEC_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24835 {"SEC_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24836 {"SEC_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24837 {"SEC_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24838 {"SEC_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24839 {"SEC_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24840 {"SEC_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024841 {"SEC_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024842 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Audio Mixer"},
24843
24844 {"SEC_MI2S_RX_SD1 Audio Mixer", "MultiMedia6", "MM_DL6"},
24845 {"SEC_MI2S_RX_SD1", NULL, "SEC_MI2S_RX_SD1 Audio Mixer"},
24846
24847 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24848 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
24849
24850 {"PRI_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24851 {"PRI_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24852 {"PRI_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24853 {"PRI_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24854 {"PRI_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24855 {"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24856 {"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24857 {"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053024858 {"PRI_MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024859 {"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24860 {"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24861 {"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24862 {"PRI_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24863 {"PRI_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24864 {"PRI_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24865 {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024866 {"PRI_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024867 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
24868
24869 {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24870 {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24871 {"INT0_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24872 {"INT0_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24873 {"INT0_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24874 {"INT0_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24875 {"INT0_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24876 {"INT0_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24877 {"INT0_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24878 {"INT0_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24879 {"INT0_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24880 {"INT0_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24881 {"INT0_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24882 {"INT0_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24883 {"INT0_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24884 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Audio Mixer"},
24885
24886 {"INT4_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24887 {"INT4_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24888 {"INT4_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24889 {"INT4_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24890 {"INT4_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24891 {"INT4_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24892 {"INT4_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24893 {"INT4_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24894 {"INT4_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24895 {"INT4_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24896 {"INT4_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24897 {"INT4_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24898 {"INT4_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24899 {"INT4_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24900 {"INT4_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24901 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Audio Mixer"},
24902
24903 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24904 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24905 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24906 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24907 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24908 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24909 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24910 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24911 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24912 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24913 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24914 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24915 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24916 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24917 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24918 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24919 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24920 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Audio Mixer"},
24921
Karthikeyan Manic3700752019-03-11 18:33:53 -070024922 {"SEN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24923 {"SEN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24924 {"SEN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24925 {"SEN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24926 {"SEN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24927 {"SEN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24928 {"SEN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24929 {"SEN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24930 {"SEN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24931 {"SEN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24932 {"SEN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24933 {"SEN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24934 {"SEN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24935 {"SEN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24936 {"SEN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24937 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX Audio Mixer"},
24938
Ralf Herz29e07132019-07-26 15:15:21 +020024939 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24940 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24941 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24942 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24943 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24944 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24945 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24946 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24947 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24948 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24949 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24950 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24951 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24952 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24953 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24954 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24955 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
24956 {"PRI_META_MI2S_RX", NULL, "PRI_META_MI2S_RX Audio Mixer"},
24957
24958 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24959 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24960 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24961 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24962 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24963 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24964 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24965 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24966 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24967 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24968 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24969 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24970 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24971 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24972 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24973 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24974 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
24975 {"SEC_META_MI2S_RX", NULL, "SEC_META_MI2S_RX Audio Mixer"},
24976
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024977 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24978 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24979 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24980 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24981 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24982 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24983 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24984 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24985 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24986 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24987 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24988 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24989 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24990 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24991 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24992 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070024993 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070024994 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024995 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Audio Mixer"},
24996
24997 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
24998 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
24999 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25000 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25001 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25002 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25003 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25004 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25005 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25006 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25007 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25008 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25009 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25010 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25011 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25012 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025013 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025014 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025015 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Audio Mixer"},
25016
25017 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25018 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25019 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25020 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25021 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25022 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25023 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25024 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25025 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25026 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25027 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25028 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25029 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25030 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25031 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25032 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025033 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025034 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025035 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Audio Mixer"},
25036
25037 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25038 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25039 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25040 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25041 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25042 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25043 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25044 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25045 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25046 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25047 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25048 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25049 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25050 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25051 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25052 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025053 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025054 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025055 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Audio Mixer"},
25056
25057 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25058 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25059 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25060 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25061 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25062 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25063 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25064 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25065 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25066 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25067 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25068 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25069 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25070 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25071 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25072 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25073 {"PRI_TDM_TX_0", NULL, "PRI_TDM_TX_0 Audio Mixer"},
25074
25075 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25076 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25077 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25078 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25079 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25080 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25081 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25082 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25083 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25084 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25085 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25086 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25087 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25088 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25089 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25090 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025091 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025092 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025093 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Audio Mixer"},
25094
25095 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25096 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25097 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25098 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25099 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25100 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25101 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25102 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25103 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25104 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25105 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25106 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25107 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25108 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25109 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25110 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025111 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025112 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025113 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Audio Mixer"},
25114
25115 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25116 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25117 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25118 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25119 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25120 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25121 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25122 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25123 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25124 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25125 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25126 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25127 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25128 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25129 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25130 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025131 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025132 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025133 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Audio Mixer"},
25134
25135 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25136 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25137 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25138 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25139 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25140 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25141 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25142 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25143 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25144 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25145 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25146 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25147 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25148 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25149 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25150 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025151 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025152 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025153 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Audio Mixer"},
25154
25155 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25156 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25157 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25158 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25159 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25160 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25161 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25162 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25163 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25164 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25165 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25166 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25167 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25168 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25169 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25170 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25171 {"SEC_TDM_TX_0", NULL, "SEC_TDM_TX_0 Audio Mixer"},
25172
25173 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25174 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25175 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25176 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25177 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25178 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25179 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25180 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25181 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25182 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25183 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25184 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25185 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25186 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25187 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25188 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025189 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025190 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025191 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Audio Mixer"},
25192
25193 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25194 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25195 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25196 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25197 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25198 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25199 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25200 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25201 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25202 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25203 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25204 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25205 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25206 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25207 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25208 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25209 {"TERT_TDM_TX_0", NULL, "TERT_TDM_TX_0 Audio Mixer"},
25210
25211 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25212 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25213 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25214 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25215 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25216 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25217 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25218 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25219 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25220 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25221 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25222 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25223 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25224 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25225 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25226 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025227 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025228 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025229 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Audio Mixer"},
25230
25231 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25232 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25233 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25234 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25235 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25236 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25237 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25238 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25239 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25240 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25241 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25242 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25243 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25244 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25245 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25246 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025247 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025248 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025249 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Audio Mixer"},
25250
25251 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25252 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25253 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25254 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25255 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25256 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25257 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25258 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25259 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25260 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25261 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25262 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25263 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25264 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25265 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25266 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025267 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025268 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025269 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Audio Mixer"},
25270
25271 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
25272 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
25273 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
25274 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
25275 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
25276 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
25277 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
25278 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
25279 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
25280 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
25281 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
25282 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
25283 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
25284 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
25285 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
25286 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025287 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025288 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025289 {"TERT_TDM_RX_4", NULL, "TERT_TDM_RX_4 Audio Mixer"},
25290
25291 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25292 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25293 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25294 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25295 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25296 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25297 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25298 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25299 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25300 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25301 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25302 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25303 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25304 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25305 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25306 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25307 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025308 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025309 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025310 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Audio Mixer"},
25311
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025312 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25313 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25314 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25315 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25316 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25317 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25318 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25319 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25320 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25321 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25322 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25323 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25324 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25325 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25326 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25327 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25328 {"QUAT_TDM_TX_0", NULL, "QUAT_TDM_TX_0 Audio Mixer"},
25329
25330 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25331 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25332 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25333 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25334 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25335 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25336 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25337 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25338 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25339 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25340 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25341 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25342 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25343 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25344 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25345 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
25346 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025347 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025348 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025349 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Audio Mixer"},
25350
25351 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25352 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25353 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25354 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25355 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25356 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25357 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25358 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25359 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25360 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25361 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25362 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25363 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25364 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25365 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25366 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
25367 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025368 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025369 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025370 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Audio Mixer"},
25371
25372 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25373 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25374 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25375 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25376 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25377 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25378 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25379 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25380 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25381 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25382 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25383 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25384 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25385 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25386 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25387 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
25388 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025389 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025390 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025391 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
25392
Rohit Kumara5077932017-09-10 22:05:05 +053025393 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25394 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25395 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25396 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25397 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25398 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25399 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25400 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25401 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25402 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25403 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25404 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25405 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25406 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25407 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25408 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25409 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025410 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025411 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Rohit Kumara5077932017-09-10 22:05:05 +053025412 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Audio Mixer"},
25413
25414 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25415 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25416 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25417 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25418 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25419 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25420 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25421 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25422 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25423 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25424 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25425 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25426 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25427 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25428 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25429 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25430 {"QUIN_TDM_TX_0", NULL, "QUIN_TDM_TX_0 Audio Mixer"},
25431
25432 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25433 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25434 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25435 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25436 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25437 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25438 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25439 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25440 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25441 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25442 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25443 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25444 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25445 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25446 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25447 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
25448 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025449 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025450 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Rohit Kumara5077932017-09-10 22:05:05 +053025451 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Audio Mixer"},
25452
25453 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25454 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25455 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25456 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25457 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25458 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25459 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25460 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25461 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25462 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25463 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25464 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25465 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25466 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25467 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25468 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
25469 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025470 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025471 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Rohit Kumara5077932017-09-10 22:05:05 +053025472 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Audio Mixer"},
25473
25474 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25475 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25476 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25477 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25478 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25479 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25480 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25481 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25482 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25483 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25484 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25485 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25486 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25487 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25488 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25489 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
25490 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025491 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025492 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Rohit Kumara5077932017-09-10 22:05:05 +053025493 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Audio Mixer"},
25494
Karthikeyan Manic3700752019-03-11 18:33:53 -070025495 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25496 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25497 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25498 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25499 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25500 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25501 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25502 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25503 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25504 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25505 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25506 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25507 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25508 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25509 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25510 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25511 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
25512 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
25513 {"SEN_TDM_RX_0", NULL, "SEN_TDM_RX_0 Audio Mixer"},
25514
25515 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25516 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25517 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25518 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25519 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25520 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25521 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25522 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25523 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25524 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25525 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25526 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25527 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25528 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25529 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25530 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25531 {"SEN_TDM_TX_0", NULL, "SEN_TDM_TX_0 Audio Mixer"},
25532
25533 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25534 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25535 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25536 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25537 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25538 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25539 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25540 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25541 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25542 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25543 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25544 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25545 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25546 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25547 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25548 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
25549 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
25550 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
25551 {"SEN_TDM_RX_1", NULL, "SEN_TDM_RX_1 Audio Mixer"},
25552
25553 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25554 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25555 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25556 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25557 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25558 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25559 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25560 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25561 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25562 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25563 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25564 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25565 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25566 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25567 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25568 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
25569 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
25570 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
25571 {"SEN_TDM_RX_2", NULL, "SEN_TDM_RX_2 Audio Mixer"},
25572
25573 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25574 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25575 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25576 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25577 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25578 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25579 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25580 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25581 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25582 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25583 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25584 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25585 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25586 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25587 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25588 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
25589 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
25590 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
25591 {"SEN_TDM_RX_3", NULL, "SEN_TDM_RX_3 Audio Mixer"},
25592
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025593 {"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
25594 {"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
25595 {"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
25596 {"MultiMedia3 Mixer", "MI2S_TX", "MI2S_TX"},
25597 {"MultiMedia5 Mixer", "MI2S_TX", "MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025598 {"MultiMedia10 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025599 {"MultiMedia16 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025600 {"MultiMedia1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25601 {"MultiMedia2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25602 {"MultiMedia6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25603 {"MultiMedia1 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
25604 {"MultiMedia2 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025605 {"MultiMedia1 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
25606 {"MultiMedia2 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025607 {"MultiMedia1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25608 {"MultiMedia2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25609 {"MultiMedia1 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
25610 {"MultiMedia2 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
25611 {"MultiMedia1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25612 {"MultiMedia2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25613 {"MultiMedia1 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025614 {"MultiMedia1 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025615 {"MultiMedia1 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25616 {"MultiMedia3 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
25617 {"MultiMedia5 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025618 {"MultiMedia10 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025619 {"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharyaf4d24122019-07-30 12:39:15 +053025620 {"MultiMedia2 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025621 {"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
25622 {"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025623 {"MultiMedia10 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025624 {"MultiMedia16 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
25625 {"MultiMedia16 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025626 {"MultiMedia1 Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
25627 {"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
25628 {"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025629 {"MultiMedia10 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025630 {"MultiMedia1 Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
25631 {"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
25632 {"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025633 {"MultiMedia10 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025634 {"MultiMedia16 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025635 {"MultiMedia1 Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
25636 {"MultiMedia3 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
25637 {"MultiMedia5 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025638 {"MultiMedia1 Mixer", "SEN_AUXPCM_UL_TX", "SEN_AUX_PCM_TX"},
25639 {"MultiMedia3 Mixer", "SEN_AUX_PCM_TX", "SEN_AUX_PCM_TX"},
25640 {"MultiMedia5 Mixer", "SEN_AUX_PCM_TX", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025641 {"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
25642 {"MultiMedia2 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
25643 {"MultiMedia2 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
25644 {"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
25645 {"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25646 {"MultiMedia1 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25647 {"MultiMedia2 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25648 {"MultiMedia6 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025649 {"MultiMedia6 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025650 {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25651 {"MultiMedia3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25652 {"MultiMedia5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025653 {"MultiMedia10 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025654 {"MultiMedia6 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
25655 {"MultiMedia3 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
25656 {"MultiMedia5 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025657 {"MultiMedia10 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025658 {"MultiMedia16 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025659 {"MultiMedia6 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25660 {"MultiMedia3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25661 {"MultiMedia5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025662 {"MultiMedia10 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025663 {"MultiMedia16 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025664 {"MultiMedia17 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25665 {"MultiMedia18 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25666 {"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25667 {"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25668 {"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025669 {"MultiMedia30 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025670 {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25671 {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25672 {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25673 {"MultiMedia6 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025674 {"MultiMedia6 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025675 {"MultiMedia6 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025676
25677 {"MultiMedia1 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25678 {"MultiMedia1 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25679 {"MultiMedia1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25680 {"MultiMedia1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25681 {"MultiMedia1 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25682 {"MultiMedia1 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25683 {"MultiMedia1 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25684 {"MultiMedia1 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25685 {"MultiMedia1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25686 {"MultiMedia1 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25687 {"MultiMedia1 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25688 {"MultiMedia1 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25689 {"MultiMedia1 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25690 {"MultiMedia1 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25691 {"MultiMedia1 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25692 {"MultiMedia1 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025693 {"MultiMedia1 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025694 {"MultiMedia1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25695 {"MultiMedia1 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25696 {"MultiMedia1 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25697 {"MultiMedia1 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025698 {"MultiMedia1 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25699 {"MultiMedia1 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25700 {"MultiMedia1 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25701 {"MultiMedia1 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025702 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25703 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25704 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25705 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25706 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025707 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025708 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25709 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25710 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25711 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25712 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25713 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025714 {"MultiMedia1 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25715 {"MultiMedia1 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025716
25717 {"MultiMedia2 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25718 {"MultiMedia2 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25719 {"MultiMedia2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25720 {"MultiMedia2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25721 {"MultiMedia2 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25722 {"MultiMedia2 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25723 {"MultiMedia2 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25724 {"MultiMedia2 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25725 {"MultiMedia2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25726 {"MultiMedia2 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25727 {"MultiMedia2 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25728 {"MultiMedia2 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25729 {"MultiMedia2 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25730 {"MultiMedia2 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25731 {"MultiMedia2 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25732 {"MultiMedia2 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025733 {"MultiMedia2 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025734 {"MultiMedia2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25735 {"MultiMedia2 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25736 {"MultiMedia2 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25737 {"MultiMedia2 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025738 {"MultiMedia2 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25739 {"MultiMedia2 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25740 {"MultiMedia2 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25741 {"MultiMedia2 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025742 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25743 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25744 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25745 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25746 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025747 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025748 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25749 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25750 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25751 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25752 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25753 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025754 {"MultiMedia2 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25755 {"MultiMedia2 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025756
25757 {"MultiMedia3 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25758 {"MultiMedia3 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25759 {"MultiMedia3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25760 {"MultiMedia3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25761 {"MultiMedia3 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25762 {"MultiMedia3 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25763 {"MultiMedia3 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25764 {"MultiMedia3 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25765 {"MultiMedia3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25766 {"MultiMedia3 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25767 {"MultiMedia3 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25768 {"MultiMedia3 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25769 {"MultiMedia3 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25770 {"MultiMedia3 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25771 {"MultiMedia3 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25772 {"MultiMedia3 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025773 {"MultiMedia3 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025774 {"MultiMedia3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25775 {"MultiMedia3 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25776 {"MultiMedia3 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25777 {"MultiMedia3 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025778 {"MultiMedia3 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25779 {"MultiMedia3 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25780 {"MultiMedia3 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25781 {"MultiMedia3 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025782 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25783 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25784 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25785 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25786 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025787 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025788 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25789 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25790 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25791 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25792 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25793 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025794 {"MultiMedia3 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25795 {"MultiMedia3 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025796
25797 {"MultiMedia4 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25798 {"MultiMedia4 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25799 {"MultiMedia4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25800 {"MultiMedia4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25801 {"MultiMedia4 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25802 {"MultiMedia4 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25803 {"MultiMedia4 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25804 {"MultiMedia4 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25805 {"MultiMedia4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25806 {"MultiMedia4 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25807 {"MultiMedia4 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25808 {"MultiMedia4 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25809 {"MultiMedia4 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25810 {"MultiMedia4 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25811 {"MultiMedia4 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25812 {"MultiMedia4 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025813 {"MultiMedia4 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025814 {"MultiMedia4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25815 {"MultiMedia4 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25816 {"MultiMedia4 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25817 {"MultiMedia4 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025818 {"MultiMedia4 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25819 {"MultiMedia4 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25820 {"MultiMedia4 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25821 {"MultiMedia4 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025822 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25823 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25824 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25825 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25826 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025827 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025828 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25829 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25830 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25831 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25832 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25833 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025834 {"MultiMedia4 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25835 {"MultiMedia4 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025836
25837 {"MultiMedia5 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25838 {"MultiMedia5 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25839 {"MultiMedia5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25840 {"MultiMedia5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25841 {"MultiMedia5 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25842 {"MultiMedia5 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25843 {"MultiMedia5 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25844 {"MultiMedia5 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25845 {"MultiMedia5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25846 {"MultiMedia5 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25847 {"MultiMedia5 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25848 {"MultiMedia5 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25849 {"MultiMedia5 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25850 {"MultiMedia5 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25851 {"MultiMedia5 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25852 {"MultiMedia5 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025853 {"MultiMedia5 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025854 {"MultiMedia5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25855 {"MultiMedia5 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25856 {"MultiMedia5 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25857 {"MultiMedia5 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025858 {"MultiMedia5 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25859 {"MultiMedia5 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25860 {"MultiMedia5 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25861 {"MultiMedia5 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025862 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25863 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25864 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25865 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25866 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025867 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025868 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25869 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25870 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25871 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25872 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25873 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025874 {"MultiMedia5 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25875 {"MultiMedia5 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025876
25877 {"MultiMedia6 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25878 {"MultiMedia6 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25879 {"MultiMedia6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25880 {"MultiMedia6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25881 {"MultiMedia6 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25882 {"MultiMedia6 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25883 {"MultiMedia6 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25884 {"MultiMedia6 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25885 {"MultiMedia6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25886 {"MultiMedia6 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25887 {"MultiMedia6 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25888 {"MultiMedia6 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25889 {"MultiMedia6 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25890 {"MultiMedia6 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25891 {"MultiMedia6 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25892 {"MultiMedia6 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025893 {"MultiMedia6 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025894 {"MultiMedia6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25895 {"MultiMedia6 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25896 {"MultiMedia6 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25897 {"MultiMedia6 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025898 {"MultiMedia6 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25899 {"MultiMedia6 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25900 {"MultiMedia6 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25901 {"MultiMedia6 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025902 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25903 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25904 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25905 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25906 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025907 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025908 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25909 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25910 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25911 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25912 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25913 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025914 {"MultiMedia6 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25915 {"MultiMedia6 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025916
25917 {"MultiMedia8 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25918 {"MultiMedia8 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25919 {"MultiMedia8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25920 {"MultiMedia8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25921 {"MultiMedia8 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25922 {"MultiMedia8 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25923 {"MultiMedia8 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25924 {"MultiMedia8 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25925 {"MultiMedia8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25926 {"MultiMedia8 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25927 {"MultiMedia8 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25928 {"MultiMedia8 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25929 {"MultiMedia8 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25930 {"MultiMedia8 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25931 {"MultiMedia8 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25932 {"MultiMedia8 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025933 {"MultiMedia8 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025934 {"MultiMedia8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25935 {"MultiMedia8 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25936 {"MultiMedia8 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25937 {"MultiMedia8 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025938 {"MultiMedia8 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25939 {"MultiMedia8 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25940 {"MultiMedia8 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25941 {"MultiMedia8 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025942 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25943 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25944 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25945 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25946 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025947 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025948 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25949 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25950 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25951 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25952 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25953 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025954 {"MultiMedia8 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25955 {"MultiMedia8 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025956
Samyak Jain810e42a2019-01-07 17:53:34 +053025957 {"MultiMedia9 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025958 {"MultiMedia9 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25959 {"MultiMedia9 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25960 {"MultiMedia9 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25961 {"MultiMedia9 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25962 {"MultiMedia9 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25963 {"MultiMedia9 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25964 {"MultiMedia9 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25965 {"MultiMedia9 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025966 {"MultiMedia9 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25967 {"MultiMedia9 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25968 {"MultiMedia9 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25969 {"MultiMedia9 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025970 {"MultiMedia9 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25971 {"MultiMedia9 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25972 {"MultiMedia9 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25973 {"MultiMedia9 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025974 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25975 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25976 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25977 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25978 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025979 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025980 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25981 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25982 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25983 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25984 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25985 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025986 {"MultiMedia9 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25987 {"MultiMedia9 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025988 {"MultiMedia9 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025989
Laxminath Kasam38070be2017-08-17 18:21:59 +053025990 {"MultiMedia10 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25991 {"MultiMedia10 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25992 {"MultiMedia10 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25993 {"MultiMedia10 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25994 {"MultiMedia10 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25995 {"MultiMedia10 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25996 {"MultiMedia10 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25997 {"MultiMedia10 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025998 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25999 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26000 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26001 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26002 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26003 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026004 {"MultiMedia10 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026005
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026006 {"MultiMedia20 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26007 {"MultiMedia20 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26008 {"MultiMedia20 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26009 {"MultiMedia20 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026010 {"MultiMedia20 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026011 {"MultiMedia20 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026012 {"MultiMedia20 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26013 {"MultiMedia20 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26014 {"MultiMedia20 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26015 {"MultiMedia20 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26016 {"MultiMedia20 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26017 {"MultiMedia20 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26018 {"MultiMedia20 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26019 {"MultiMedia20 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26020 {"MultiMedia20 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26021 {"MultiMedia20 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26022 {"MultiMedia20 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26023 {"MultiMedia20 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26024 {"MultiMedia20 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26025 {"MultiMedia20 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26026 {"MultiMedia20 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26027 {"MultiMedia20 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026028 {"MultiMedia20 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26029 {"MultiMedia20 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26030 {"MultiMedia20 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26031 {"MultiMedia20 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026032 {"MultiMedia20 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26033 {"MultiMedia20 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26034 {"MultiMedia20 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26035 {"MultiMedia20 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026036 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26037 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26038 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26039 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26040 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026041 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026042 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26043 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26044 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26045 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26046 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26047 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026048 {"MultiMedia20 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26049 {"MultiMedia20 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026050 {"MultiMedia20 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026051
Derek Chen07c6d1c2018-07-05 10:39:25 -070026052 {"MultiMedia21 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26053 {"MultiMedia21 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26054 {"MultiMedia21 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26055 {"MultiMedia21 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26056 {"MultiMedia21 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26057 {"MultiMedia21 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26058 {"MultiMedia21 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26059 {"MultiMedia21 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26060 {"MultiMedia21 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26061 {"MultiMedia21 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26062 {"MultiMedia21 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26063 {"MultiMedia21 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26064 {"MultiMedia21 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26065 {"MultiMedia21 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26066 {"MultiMedia21 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26067 {"MultiMedia21 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26068 {"MultiMedia21 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26069 {"MultiMedia21 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26070 {"MultiMedia21 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26071 {"MultiMedia21 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26072 {"MultiMedia21 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26073 {"MultiMedia21 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026074 {"MultiMedia21 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26075 {"MultiMedia21 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26076 {"MultiMedia21 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26077 {"MultiMedia21 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053026078 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26079 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26080 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26081 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26082 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026083 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053026084 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26085 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26086 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26087 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26088 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26089 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
26090 {"MultiMedia21 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26091 {"MultiMedia21 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026092 {"MultiMedia21 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026093
Derek Chenb097d922019-07-31 17:28:02 -070026094 {"MultiMedia22 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26095 {"MultiMedia22 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26096 {"MultiMedia22 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26097 {"MultiMedia22 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26098 {"MultiMedia22 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26099 {"MultiMedia22 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26100 {"MultiMedia22 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26101 {"MultiMedia22 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26102 {"MultiMedia22 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26103 {"MultiMedia22 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26104 {"MultiMedia22 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26105 {"MultiMedia22 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26106 {"MultiMedia22 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26107 {"MultiMedia22 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26108 {"MultiMedia22 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26109 {"MultiMedia22 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26110 {"MultiMedia22 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26111 {"MultiMedia22 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26112 {"MultiMedia22 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26113 {"MultiMedia22 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
26114
Surendar Karkac1cde372018-08-14 18:56:24 +053026115 {"MultiMedia27 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053026116 {"MultiMedia27 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026117 {"MultiMedia27 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
26118 {"MultiMedia27 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053026119 {"MultiMedia27 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026120 {"MultiMedia27 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26121 {"MultiMedia27 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26122 {"MultiMedia27 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26123 {"MultiMedia27 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26124 {"MultiMedia27 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026125 {"MultiMedia27 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026126 {"MultiMedia27 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26127 {"MultiMedia27 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026128 {"MultiMedia27 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026129
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026130 {"MultiMedia1 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26131 {"MultiMedia2 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26132 {"MultiMedia4 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26133 {"MultiMedia5 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26134 {"MultiMedia6 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26135 {"MultiMedia8 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026136 {"MultiMedia10 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026137
Asish Bhattacharya34504582017-08-08 12:55:01 +053026138 {"MultiMedia16 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26139 {"MultiMedia16 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26140 {"MultiMedia16 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26141 {"MultiMedia16 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26142 {"MultiMedia16 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26143 {"MultiMedia16 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26144 {"MultiMedia16 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26145 {"MultiMedia16 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26146 {"MultiMedia16 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26147 {"MultiMedia16 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26148 {"MultiMedia16 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26149 {"MultiMedia16 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26150 {"MultiMedia16 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26151 {"MultiMedia16 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26152 {"MultiMedia16 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26153 {"MultiMedia16 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26154 {"MultiMedia16 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026155 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26156 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26157 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26158 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26159 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026160 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026161 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26162 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26163 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26164 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26165 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26166 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026167 {"MultiMedia16 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26168 {"MultiMedia16 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026169 {"MultiMedia16 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026170
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026171 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26172 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26173 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26174 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26175 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26176 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026177 {"MultiMedia17 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026178
26179 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26180 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26181 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26182 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26183 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26184 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026185 {"MultiMedia18 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053026186 {"MultiMedia18 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26187 {"MultiMedia18 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026188
26189 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26190 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26191 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26192 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26193 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26194 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026195 {"MultiMedia19 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053026196 {"MultiMedia19 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26197 {"MultiMedia19 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026198
26199 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26200 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26201 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26202 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26203 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26204 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026205 {"MultiMedia28 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053026206 {"MultiMedia28 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26207 {"MultiMedia28 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026208
26209 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26210 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26211 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26212 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26213 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26214 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026215 {"MultiMedia29 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053026216 {"MultiMedia29 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26217 {"MultiMedia29 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026218
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026219 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26220 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26221 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26222 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26223 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26224 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
26225 {"MultiMedia30 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
26226 {"MultiMedia30 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26227 {"MultiMedia30 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
26228
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026229 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26230 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26231 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26232 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26233 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26234 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26235 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26236 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26237 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26238 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26239 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26240 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26241 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26242 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26243 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26244 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26245 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
26246 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Audio Mixer"},
26247
26248 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26249 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26250 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26251 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26252 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26253 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26254 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26255 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26256 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26257 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26258 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26259 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26260 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26261 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26262 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26263 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26264 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
26265 {"INT_BT_A2DP_RX", NULL, "INTERNAL_A2DP_RX Audio Mixer"},
26266
26267 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26268 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26269 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26270 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26271 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26272 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26273 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26274 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26275 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26276 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26277 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26278 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26279 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26280 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26281 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26282 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26283 {"INT_FM_RX", NULL, "INTERNAL_FM_RX Audio Mixer"},
26284
26285 {"AFE_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26286 {"AFE_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26287 {"AFE_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26288 {"AFE_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26289 {"AFE_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26290 {"AFE_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26291 {"AFE_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26292 {"AFE_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26293 {"AFE_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26294 {"AFE_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26295 {"AFE_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26296 {"AFE_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26297 {"AFE_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26298 {"AFE_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26299 {"AFE_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26300 {"AFE_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26301 {"PCM_RX", NULL, "AFE_PCM_RX Audio Mixer"},
26302
26303 {"MultiMedia1 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26304 {"MultiMedia3 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26305 {"MultiMedia4 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026306 {"MultiMedia10 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026307 {"MultiMedia17 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26308 {"MultiMedia18 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26309 {"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026310 {"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26311 {"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026312 {"MultiMedia30 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026313 {"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26314 {"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026315 {"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026316 {"MultiMedia1 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26317 {"MultiMedia4 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026318 {"MultiMedia16 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026319 {"MultiMedia17 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26320 {"MultiMedia18 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26321 {"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026322 {"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26323 {"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026324 {"MultiMedia30 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026325 {"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26326 {"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26327 {"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26328
26329 {"MultiMedia1 Mixer", "AFE_PCM_TX", "PCM_TX"},
26330 {"MultiMedia3 Mixer", "AFE_PCM_TX", "PCM_TX"},
26331 {"MultiMedia4 Mixer", "AFE_PCM_TX", "PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026332 {"MultiMedia10 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026333 {"MultiMedia17 Mixer", "AFE_PCM_TX", "PCM_TX"},
26334 {"MultiMedia18 Mixer", "AFE_PCM_TX", "PCM_TX"},
26335 {"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026336 {"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
26337 {"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026338 {"MultiMedia30 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026339 {"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
26340 {"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026341 {"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026342 {"MM_UL1", NULL, "MultiMedia1 Mixer"},
26343 {"MultiMedia2 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26344 {"MM_UL2", NULL, "MultiMedia2 Mixer"},
26345 {"MM_UL3", NULL, "MultiMedia3 Mixer"},
26346 {"MM_UL4", NULL, "MultiMedia4 Mixer"},
26347 {"MM_UL5", NULL, "MultiMedia5 Mixer"},
26348 {"MM_UL6", NULL, "MultiMedia6 Mixer"},
26349 {"MM_UL8", NULL, "MultiMedia8 Mixer"},
26350 {"MM_UL9", NULL, "MultiMedia9 Mixer"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026351 {"MM_UL10", NULL, "MultiMedia10 Mixer"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026352 {"MM_UL16", NULL, "MultiMedia16 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026353 {"MM_UL17", NULL, "MultiMedia17 Mixer"},
26354 {"MM_UL18", NULL, "MultiMedia18 Mixer"},
26355 {"MM_UL19", NULL, "MultiMedia19 Mixer"},
26356 {"MM_UL20", NULL, "MultiMedia20 Mixer"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026357 {"MM_UL21", NULL, "MultiMedia21 Mixer"},
Derek Chenb097d922019-07-31 17:28:02 -070026358 {"MM_UL22", NULL, "MultiMedia22 Mixer"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026359 {"MM_UL27", NULL, "MultiMedia27 Mixer"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026360 {"MM_UL28", NULL, "MultiMedia28 Mixer"},
26361 {"MM_UL29", NULL, "MultiMedia29 Mixer"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026362 {"MM_UL30", NULL, "MultiMedia30 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026363
26364 {"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26365 {"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26366 {"AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26367 {"AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26368 {"AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26369 {"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26370 {"AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26371 {"AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26372 {"AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26373 {"AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26374 {"AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26375 {"AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26376 {"AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26377 {"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26378 {"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26379 {"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026380 {"AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026381 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
26382
26383 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26384 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26385 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26386 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26387 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26388 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26389 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26390 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26391 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26392 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26393 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26394 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26395 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26396 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26397 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26398 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026399 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026400 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
26401
26402 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26403 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26404 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26405 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26406 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26407 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26408 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26409 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26410 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26411 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26412 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26413 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26414 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26415 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26416 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26417 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26418 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
26419
26420 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26421 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26422 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26423 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26424 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26425 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26426 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26427 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26428 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26429 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26430 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26431 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26432 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26433 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26434 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26435 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26436 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
26437
Rohit Kumara5077932017-09-10 22:05:05 +053026438 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26439 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26440 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26441 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26442 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26443 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26444 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26445 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26446 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26447 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26448 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26449 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26450 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26451 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26452 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26453 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26454 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX Audio Mixer"},
26455
Karthikeyan Manic3700752019-03-11 18:33:53 -070026456 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26457 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26458 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26459 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26460 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26461 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26462 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26463 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26464 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26465 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26466 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26467 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26468 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26469 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26470 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26471 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26472 {"SEN_AUX_PCM_RX", NULL, "SEN_AUX_PCM_RX Audio Mixer"},
26473
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026474 {"PRI_RX_Voice Mixer", "Voip", "VOIP_DL"},
26475 {"PRI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26476 {"PRI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26477 {"PRI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26478 {"PRI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26479 {"PRI_I2S_RX", NULL, "PRI_RX_Voice Mixer"},
26480
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026481 {"SEC_RX_Voice Mixer", "Voip", "VOIP_DL"},
26482 {"SEC_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26483 {"SEC_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26484 {"SEC_I2S_RX", NULL, "SEC_RX_Voice Mixer"},
26485
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026486 {"SEC_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026487 {"SEC_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26488 {"SEC_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026489 {"SEC_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26490 {"SEC_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26491 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26492 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26493 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_Voice Mixer"},
26494
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026495 {"SLIM_0_RX_Voice Mixer", "Voip", "VOIP_DL"},
26496 {"SLIM_0_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026497 {"SLIM_0_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26498 {"SLIM_0_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26499 {"SLIM_0_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26500 {"SLIMBUS_0_RX", NULL, "SLIM_0_RX_Voice Mixer"},
26501
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026502 {"SLIM_6_RX_Voice Mixer", "Voip", "VOIP_DL"},
26503 {"SLIM_6_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026504 {"SLIM_6_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26505 {"SLIM_6_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26506 {"SLIM_6_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26507 {"SLIMBUS_6_RX", NULL, "SLIM_6_RX_Voice Mixer"},
26508
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026509 {"USB_AUDIO_RX_Voice Mixer", "Voip", "VOIP_DL"},
26510 {"USB_AUDIO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026511 {"USB_AUDIO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26512 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26513 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26514 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
26515
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080026516 {"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
26517 {"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080026518 {"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26519 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26520 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26521 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
26522
Karthikeyan Mani57550082018-05-03 18:43:58 -070026523 {"DISPLAY_PORT_RX1_Voice Mixer", "Voip", "VOIP_DL"},
26524 {"DISPLAY_PORT_RX1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26525 {"DISPLAY_PORT_RX1_Voice Mixer", "QCHAT", "QCHAT_DL"},
26526 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26527 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26528 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1_Voice Mixer"},
26529
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026530 {"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
26531 {"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26532 {"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26533 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26534 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026535 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX_Voice Mixer"},
26536
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026537 {"AFE_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26538 {"AFE_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26539 {"AFE_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26540 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26541 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26542 {"PCM_RX", NULL, "AFE_PCM_RX_Voice Mixer"},
26543
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026544 {"AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26545 {"AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026546 {"AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26547 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26548 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26549 {"AUX_PCM_RX", NULL, "AUX_PCM_RX_Voice Mixer"},
26550
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026551 {"SEC_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26552 {"SEC_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026553 {"SEC_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26554 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26555 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26556 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
26557
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026558 {"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26559 {"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026560 {"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26561 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26562 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26563 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
26564
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026565 {"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26566 {"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026567 {"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26568 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26569 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26570 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
26571
Rohit Kumara5077932017-09-10 22:05:05 +053026572 {"QUIN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26573 {"QUIN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053026574 {"QUIN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26575 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26576 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26577 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX_Voice Mixer"},
26578
Karthikeyan Manic3700752019-03-11 18:33:53 -070026579 {"SEN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26580 {"SEN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26581 {"SEN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26582 {"SEN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26583 {"SEN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26584 {"SEN_AUX_PCM_RX", NULL, "SEN_AUX_PCM_RX_Voice Mixer"},
26585
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026586 {"HDMI_RX_Voice Mixer", "Voip", "VOIP_DL"},
26587 {"HDMI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26588 {"HDMI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26589 {"HDMI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26590 {"HDMI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26591 {"HDMI", NULL, "HDMI_RX_Voice Mixer"},
26592 {"HDMI", NULL, "HDMI_DL_HL"},
26593
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026594 {"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026595 {"MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26596 {"MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026597 {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26598 {"MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26599 {"MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
kunleiz8a60b822017-10-11 15:04:02 +080026600 {"MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026601 {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
26602
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026603 {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026604 {"PRI_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26605 {"PRI_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026606 {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26607 {"PRI_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26608 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26609 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26610 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"},
26611
26612 {"INT0_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
26613 {"INT0_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26614 {"INT0_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26615 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26616 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26617 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_Voice Mixer"},
26618
26619 {"INT4_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
26620 {"INT4_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26621 {"INT4_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26622 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26623 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26624 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_Voice Mixer"},
26625
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026626 {"TERT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026627 {"TERT_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26628 {"TERT_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026629 {"TERT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26630 {"TERT_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26631 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26632 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26633 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_Voice Mixer"},
26634
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026635 {"QUAT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026636 {"QUAT_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26637 {"QUAT_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026638 {"QUAT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26639 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26640 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26641 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_Voice Mixer"},
26642
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026643 {"QUIN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026644 {"QUIN_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26645 {"QUIN_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026646 {"QUIN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26647 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26648 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26649 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"},
26650
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026651 {"PRI_TDM_RX_0_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026652 {"PRI_TDM_RX_0_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
26653 {"PRI_TDM_RX_0_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26654 {"PRI_TDM_RX_0_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
26655 {"PRI_TDM_RX_0_Voice Mixer", "QCHAT", "QCHAT_DL"},
26656 {"PRI_TDM_RX_0_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26657 {"PRI_TDM_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26658 {"PRI_TDM_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26659 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_Voice Mixer"},
26660
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026661 {"PRI_TDM_RX_1_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026662 {"PRI_TDM_RX_1_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
26663 {"PRI_TDM_RX_1_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26664 {"PRI_TDM_RX_1_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
26665 {"PRI_TDM_RX_1_Voice Mixer", "QCHAT", "QCHAT_DL"},
26666 {"PRI_TDM_RX_1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26667 {"PRI_TDM_RX_1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26668 {"PRI_TDM_RX_1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26669 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_Voice Mixer"},
26670
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026671 {"PRI_TDM_RX_2_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026672 {"PRI_TDM_RX_2_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
26673 {"PRI_TDM_RX_2_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26674 {"PRI_TDM_RX_2_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
26675 {"PRI_TDM_RX_2_Voice Mixer", "QCHAT", "QCHAT_DL"},
26676 {"PRI_TDM_RX_2_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26677 {"PRI_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26678 {"PRI_TDM_RX_2_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26679 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_Voice Mixer"},
26680
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026681 {"PRI_TDM_RX_3_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026682 {"PRI_TDM_RX_3_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
26683 {"PRI_TDM_RX_3_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26684 {"PRI_TDM_RX_3_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
26685 {"PRI_TDM_RX_3_Voice Mixer", "QCHAT", "QCHAT_DL"},
26686 {"PRI_TDM_RX_3_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26687 {"PRI_TDM_RX_3_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26688 {"PRI_TDM_RX_3_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26689 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_Voice Mixer"},
26690
Karthikeyan Manic3700752019-03-11 18:33:53 -070026691 {"SEN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
26692 {"SEN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26693 {"SEN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26694 {"SEN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26695 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX_Voice Mixer"},
26696
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026697 {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26698 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"},
26699
Kunlei Zhang478379f2019-08-01 17:05:33 +080026700 {"WSA_CDC_DMA_RX_0_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053026701 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26702 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26703 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_Voice Mixer"},
26704
Kunlei Zhang478379f2019-08-01 17:05:33 +080026705 {"RX_CDC_DMA_RX_0_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053026706 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26707 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26708 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_Voice Mixer"},
26709
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026710 {"VOC_EXT_EC MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26711 {"VOC_EXT_EC MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26712 {"VOC_EXT_EC MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26713 {"VOC_EXT_EC MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026714 {"VOC_EXT_EC MUX", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026715 {"VOC_EXT_EC MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Karthikeyan Mani925413e2019-09-10 16:57:28 -070026716 {"VOC_EXT_EC MUX", "PRI_TDM_TX", "PRI_TDM_TX_0"},
Karthikeyan Mania1eb9382018-07-25 10:52:58 -070026717 {"VOC_EXT_EC MUX", "SEC_TDM_TX", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026718 {"VOIP_UL", NULL, "VOC_EXT_EC MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026719 {"VOICEMMODE1_UL", NULL, "VOC_EXT_EC MUX"},
26720 {"VOICEMMODE2_UL", NULL, "VOC_EXT_EC MUX"},
26721
26722 {"AUDIO_REF_EC_UL1 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26723 {"AUDIO_REF_EC_UL1 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26724 {"AUDIO_REF_EC_UL1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26725 {"AUDIO_REF_EC_UL1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26726 {"AUDIO_REF_EC_UL1 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
26727 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26728 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
26729 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
26730 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
26731 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070026732 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
26733 {"AUDIO_REF_EC_UL1 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026734
26735 {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26736 {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26737 {"AUDIO_REF_EC_UL2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26738 {"AUDIO_REF_EC_UL2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26739
26740 {"AUDIO_REF_EC_UL3 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26741 {"AUDIO_REF_EC_UL3 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26742 {"AUDIO_REF_EC_UL3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26743 {"AUDIO_REF_EC_UL3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26744
26745 {"AUDIO_REF_EC_UL4 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26746 {"AUDIO_REF_EC_UL4 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26747 {"AUDIO_REF_EC_UL4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26748 {"AUDIO_REF_EC_UL4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26749
26750 {"AUDIO_REF_EC_UL5 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26751 {"AUDIO_REF_EC_UL5 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26752 {"AUDIO_REF_EC_UL5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26753 {"AUDIO_REF_EC_UL5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26754
26755 {"AUDIO_REF_EC_UL6 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26756 {"AUDIO_REF_EC_UL6 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26757 {"AUDIO_REF_EC_UL6 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26758 {"AUDIO_REF_EC_UL6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26759
26760 {"AUDIO_REF_EC_UL8 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26761 {"AUDIO_REF_EC_UL8 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26762 {"AUDIO_REF_EC_UL8 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26763 {"AUDIO_REF_EC_UL8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26764
26765 {"AUDIO_REF_EC_UL9 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26766 {"AUDIO_REF_EC_UL9 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26767 {"AUDIO_REF_EC_UL9 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26768 {"AUDIO_REF_EC_UL9 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26769
Laxminath Kasam38070be2017-08-17 18:21:59 +053026770 {"AUDIO_REF_EC_UL10 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26771 {"AUDIO_REF_EC_UL10 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26772 {"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26773 {"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26774 {"AUDIO_REF_EC_UL10 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
26775 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26776 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
26777 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
26778 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
26779 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070026780 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
26781 {"AUDIO_REF_EC_UL10 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Vikram Panduranga016c49f2017-09-11 15:15:56 -070026782
26783 {"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26784 {"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26785 {"AUDIO_REF_EC_UL16 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26786 {"AUDIO_REF_EC_UL16 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26787
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026788 {"AUDIO_REF_EC_UL17 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26789 {"AUDIO_REF_EC_UL17 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26790 {"AUDIO_REF_EC_UL17 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26791 {"AUDIO_REF_EC_UL17 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26792
26793 {"AUDIO_REF_EC_UL18 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26794 {"AUDIO_REF_EC_UL18 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26795 {"AUDIO_REF_EC_UL18 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26796 {"AUDIO_REF_EC_UL18 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26797
26798 {"AUDIO_REF_EC_UL19 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26799 {"AUDIO_REF_EC_UL19 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26800 {"AUDIO_REF_EC_UL19 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26801 {"AUDIO_REF_EC_UL19 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26802
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026803 {"AUDIO_REF_EC_UL28 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26804 {"AUDIO_REF_EC_UL28 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26805 {"AUDIO_REF_EC_UL28 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26806 {"AUDIO_REF_EC_UL28 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26807
26808 {"AUDIO_REF_EC_UL29 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26809 {"AUDIO_REF_EC_UL29 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26810 {"AUDIO_REF_EC_UL29 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26811 {"AUDIO_REF_EC_UL29 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Yunfei Zhang3efc4a22017-11-07 16:30:13 +080026812
26813 {"LSM1_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
26814 {"LSM2_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
26815 {"LSM3_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
26816 {"LSM4_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
26817 {"LSM5_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
26818 {"LSM6_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
26819 {"LSM7_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
26820 {"LSM8_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
26821
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026822 {"MM_UL1", NULL, "AUDIO_REF_EC_UL1 MUX"},
26823 {"MM_UL2", NULL, "AUDIO_REF_EC_UL2 MUX"},
26824 {"MM_UL3", NULL, "AUDIO_REF_EC_UL3 MUX"},
26825 {"MM_UL4", NULL, "AUDIO_REF_EC_UL4 MUX"},
26826 {"MM_UL5", NULL, "AUDIO_REF_EC_UL5 MUX"},
26827 {"MM_UL6", NULL, "AUDIO_REF_EC_UL6 MUX"},
26828 {"MM_UL8", NULL, "AUDIO_REF_EC_UL8 MUX"},
26829 {"MM_UL9", NULL, "AUDIO_REF_EC_UL9 MUX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026830 {"MM_UL10", NULL, "AUDIO_REF_EC_UL10 MUX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026831 {"MM_UL16", NULL, "AUDIO_REF_EC_UL16 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026832 {"MM_UL17", NULL, "AUDIO_REF_EC_UL17 MUX"},
26833 {"MM_UL18", NULL, "AUDIO_REF_EC_UL18 MUX"},
26834 {"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026835 {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
26836 {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026837 {"MM_UL30", NULL, "AUDIO_REF_EC_UL30 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026838
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026839 {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
26840 {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
26841 {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"},
Meng Wang93b92622019-07-24 14:45:19 +080026842 {"VoiceMMode1_Tx Mixer", "SEC_MI2S_TX_MMode1", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026843 {"VoiceMMode1_Tx Mixer", "TERT_MI2S_TX_MMode1", "TERT_MI2S_TX"},
26844 {"VoiceMMode1_Tx Mixer", "INT3_MI2S_TX_MMode1", "INT3_MI2S_TX"},
26845 {"VoiceMMode1_Tx Mixer", "SLIM_0_TX_MMode1", "SLIMBUS_0_TX"},
26846 {"VoiceMMode1_Tx Mixer", "SLIM_7_TX_MMode1", "SLIMBUS_7_TX"},
26847 {"VoiceMMode1_Tx Mixer", "SLIM_8_TX_MMode1", "SLIMBUS_8_TX"},
26848 {"VoiceMMode1_Tx Mixer", "USB_AUDIO_TX_MMode1", "USB_AUDIO_TX"},
26849 {"VoiceMMode1_Tx Mixer", "INT_BT_SCO_TX_MMode1", "INT_BT_SCO_TX"},
26850 {"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
26851 {"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
26852 {"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
26853 {"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
26854 {"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026855 {"VoiceMMode1_Tx Mixer", "QUIN_AUX_PCM_TX_MMode1", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026856 {"VoiceMMode1_Tx Mixer", "SEN_AUX_PCM_TX_MMode1", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026857 {"VoiceMMode1_Tx Mixer", "QUAT_TDM_TX_0_MMode1", "QUAT_TDM_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053026858 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_0_MMode1", "TX_CDC_DMA_TX_0"},
26859 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_1_MMode1", "TX_CDC_DMA_TX_1"},
26860 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_2_MMode1", "TX_CDC_DMA_TX_2"},
26861 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_3_MMode1", "TX_CDC_DMA_TX_3"},
26862 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_4_MMode1", "TX_CDC_DMA_TX_4"},
26863 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_5_MMode1", "TX_CDC_DMA_TX_5"},
Aditya Bavanari1e349b82018-02-23 16:34:40 +053026864 {"VoiceMMode1_Tx Mixer", "QUAT_MI2S_TX_MMode1", "QUAT_MI2S_TX"},
26865 {"VoiceMMode1_Tx Mixer", "QUIN_MI2S_TX_MMode1", "QUIN_MI2S_TX"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026866 {"VoiceMMode1_Tx Mixer", "PRI_TDM_TX_3_MMode1", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026867 {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
26868
26869 {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
26870 {"VoiceMMode2_Tx Mixer", "PRI_MI2S_TX_MMode2", "PRI_MI2S_TX"},
Meng Wang93b92622019-07-24 14:45:19 +080026871 {"VoiceMMode2_Tx Mixer", "SEC_MI2S_TX_MMode2", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026872 {"VoiceMMode2_Tx Mixer", "MI2S_TX_MMode2", "MI2S_TX"},
26873 {"VoiceMMode2_Tx Mixer", "TERT_MI2S_TX_MMode2", "TERT_MI2S_TX"},
26874 {"VoiceMMode2_Tx Mixer", "INT3_MI2S_TX_MMode2", "INT3_MI2S_TX"},
26875 {"VoiceMMode2_Tx Mixer", "SLIM_0_TX_MMode2", "SLIMBUS_0_TX"},
26876 {"VoiceMMode2_Tx Mixer", "SLIM_7_TX_MMode2", "SLIMBUS_7_TX"},
26877 {"VoiceMMode2_Tx Mixer", "SLIM_8_TX_MMode2", "SLIMBUS_8_TX"},
26878 {"VoiceMMode2_Tx Mixer", "USB_AUDIO_TX_MMode2", "USB_AUDIO_TX"},
26879 {"VoiceMMode2_Tx Mixer", "INT_BT_SCO_TX_MMode2", "INT_BT_SCO_TX"},
26880 {"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
26881 {"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
26882 {"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
26883 {"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
26884 {"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026885 {"VoiceMMode2_Tx Mixer", "QUIN_AUX_PCM_TX_MMode2", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026886 {"VoiceMMode2_Tx Mixer", "SEN_AUX_PCM_TX_MMode2", "SEN_AUX_PCM_TX"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053026887 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_0_MMode2", "TX_CDC_DMA_TX_0"},
26888 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_1_MMode2", "TX_CDC_DMA_TX_1"},
26889 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_2_MMode2", "TX_CDC_DMA_TX_2"},
26890 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_3_MMode2", "TX_CDC_DMA_TX_3"},
26891 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_4_MMode2", "TX_CDC_DMA_TX_4"},
26892 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_5_MMode2", "TX_CDC_DMA_TX_5"},
Aditya Bavanari1e349b82018-02-23 16:34:40 +053026893 {"VoiceMMode2_Tx Mixer", "QUAT_MI2S_TX_MMode2", "QUAT_MI2S_TX"},
26894 {"VoiceMMode2_Tx Mixer", "QUIN_MI2S_TX_MMode2", "QUIN_MI2S_TX"},
Vignesh Kulothungan1572b9f2019-05-16 14:56:31 -070026895 {"VoiceMMode2_Tx Mixer", "PRI_TDM_TX_3_MMode2", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026896 {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
26897
26898 {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
26899 {"Voip_Tx Mixer", "MI2S_TX_Voip", "MI2S_TX"},
Meng Wang93b92622019-07-24 14:45:19 +080026900 {"Voip_Tx Mixer", "SEC_MI2S_TX_Voip", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026901 {"Voip_Tx Mixer", "TERT_MI2S_TX_Voip", "TERT_MI2S_TX"},
26902 {"Voip_Tx Mixer", "INT3_MI2S_TX_Voip", "INT3_MI2S_TX"},
26903 {"Voip_Tx Mixer", "SLIM_0_TX_Voip", "SLIMBUS_0_TX"},
26904 {"Voip_Tx Mixer", "SLIM_7_TX_Voip", "SLIMBUS_7_TX"},
26905 {"Voip_Tx Mixer", "SLIM_8_TX_Voip", "SLIMBUS_8_TX"},
26906 {"Voip_Tx Mixer", "USB_AUDIO_TX_Voip", "USB_AUDIO_TX"},
26907 {"Voip_Tx Mixer", "INTERNAL_BT_SCO_TX_Voip", "INT_BT_SCO_TX"},
26908 {"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
26909 {"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
26910 {"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
26911 {"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
26912 {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026913 {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026914 {"Voip_Tx Mixer", "SEN_AUX_PCM_TX_Voip", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026915 {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026916 {"Voip_Tx Mixer", "PRI_TDM_TX_3_Voip", "PRI_TDM_TX_3"},
Kunlei Zhang478379f2019-08-01 17:05:33 +080026917 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_0_Voip", "TX_CDC_DMA_TX_0"},
26918 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_1_Voip", "TX_CDC_DMA_TX_1"},
26919 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_2_Voip", "TX_CDC_DMA_TX_2"},
26920 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_3_Voip", "TX_CDC_DMA_TX_3"},
26921 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_4_Voip", "TX_CDC_DMA_TX_4"},
26922 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_5_Voip", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026923 {"VOIP_UL", NULL, "Voip_Tx Mixer"},
26924
26925 {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},
26926 {"SLIMBUS_0_RX", NULL, "SLIMBUS_DL_HL"},
26927 {"SLIMBUS1_DL_HL", "Switch", "SLIM1_DL_HL"},
26928 {"SLIMBUS_1_RX", NULL, "SLIMBUS1_DL_HL"},
26929 {"SLIMBUS3_DL_HL", "Switch", "SLIM3_DL_HL"},
26930 {"SLIMBUS_3_RX", NULL, "SLIMBUS3_DL_HL"},
26931 {"SLIMBUS4_DL_HL", "Switch", "SLIM4_DL_HL"},
26932 {"SLIMBUS_4_RX", NULL, "SLIMBUS4_DL_HL"},
26933 {"SLIMBUS6_DL_HL", "Switch", "SLIM0_DL_HL"},
26934 {"SLIMBUS_6_RX", NULL, "SLIMBUS6_DL_HL"},
Zhou Songcaa541d2019-02-19 18:37:47 +080026935 {"SCO_SLIM7_DL_HL", "Switch", "SLIM7_DL_HL"},
26936 {"SLIMBUS_7_RX", NULL, "SCO_SLIM7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026937 {"SLIM0_UL_HL", NULL, "SLIMBUS_0_TX"},
26938 {"SLIM1_UL_HL", NULL, "SLIMBUS_1_TX"},
26939 {"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
26940 {"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
26941 {"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053026942 {"WSA_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
26943 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_DL_HL"},
26944 {"CDC_DMA_UL_HL", NULL, "VA_CDC_DMA_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053026945 {"RX_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
26946 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_DL_HL"},
26947 {"TX3_CDC_DMA_UL_HL", NULL, "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026948 {"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
26949 {"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
26950 {"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
26951 {"LSM1 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
26952 {"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
26953 {"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26954 {"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26955 {"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053026956 {"LSM1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26957 {"LSM1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026958 {"LSM1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053026959 {"LSM1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053026960 {"LSM1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026961 {"LSM1_UL_HL", NULL, "LSM1 Mixer"},
26962
26963 {"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
26964 {"LSM2 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
26965 {"LSM2 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
26966 {"LSM2 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
26967 {"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
26968 {"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26969 {"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26970 {"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053026971 {"LSM2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26972 {"LSM2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026973 {"LSM2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053026974 {"LSM2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053026975 {"LSM2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026976 {"LSM2_UL_HL", NULL, "LSM2 Mixer"},
26977
26978
26979 {"LSM3 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
26980 {"LSM3 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
26981 {"LSM3 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
26982 {"LSM3 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
26983 {"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
26984 {"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26985 {"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26986 {"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053026987 {"LSM3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26988 {"LSM3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026989 {"LSM3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053026990 {"LSM3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053026991 {"LSM3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026992 {"LSM3_UL_HL", NULL, "LSM3 Mixer"},
26993
26994
26995 {"LSM4 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
26996 {"LSM4 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
26997 {"LSM4 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
26998 {"LSM4 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
26999 {"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27000 {"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27001 {"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27002 {"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027003 {"LSM4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27004 {"LSM4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027005 {"LSM4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027006 {"LSM4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027007 {"LSM4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027008 {"LSM4_UL_HL", NULL, "LSM4 Mixer"},
27009
27010 {"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27011 {"LSM5 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27012 {"LSM5 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27013 {"LSM5 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27014 {"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27015 {"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27016 {"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27017 {"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027018 {"LSM5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27019 {"LSM5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027020 {"LSM5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027021 {"LSM5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027022 {"LSM5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027023 {"LSM5_UL_HL", NULL, "LSM5 Mixer"},
27024
27025 {"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27026 {"LSM6 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27027 {"LSM6 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27028 {"LSM6 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27029 {"LSM6 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27030 {"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027031 {"LSM6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27032 {"LSM6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027033 {"LSM6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027034 {"LSM6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027035 {"LSM6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027036 {"LSM6_UL_HL", NULL, "LSM6 Mixer"},
27037
27038 {"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27039 {"LSM7 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27040 {"LSM7 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27041 {"LSM7 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27042 {"LSM7 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27043 {"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027044 {"LSM7 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27045 {"LSM7 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027046 {"LSM7 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027047 {"LSM7 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027048 {"LSM7 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027049 {"LSM7_UL_HL", NULL, "LSM7 Mixer"},
27050
27051 {"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27052 {"LSM8 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27053 {"LSM8 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27054 {"LSM8 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27055 {"LSM8 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27056 {"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027057 {"LSM8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27058 {"LSM8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027059 {"LSM8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027060 {"LSM8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027061 {"LSM8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027062 {"LSM8_UL_HL", NULL, "LSM8 Mixer"},
27063
27064
27065 {"CPE_LSM_UL_HL", NULL, "BE_IN"},
27066 {"QCHAT_Tx Mixer", "PRI_TX_QCHAT", "PRI_I2S_TX"},
27067 {"QCHAT_Tx Mixer", "SLIM_0_TX_QCHAT", "SLIMBUS_0_TX"},
27068 {"QCHAT_Tx Mixer", "SLIM_7_TX_QCHAT", "SLIMBUS_7_TX"},
27069 {"QCHAT_Tx Mixer", "SLIM_8_TX_QCHAT", "SLIMBUS_8_TX"},
27070 {"QCHAT_Tx Mixer", "INTERNAL_BT_SCO_TX_QCHAT", "INT_BT_SCO_TX"},
27071 {"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
27072 {"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
27073 {"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
27074 {"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
27075 {"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027076 {"QCHAT_Tx Mixer", "QUIN_AUX_PCM_TX_QCHAT", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027077 {"QCHAT_Tx Mixer", "SEN_AUX_PCM_TX_QCHAT", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027078 {"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
27079 {"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
27080 {"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
27081 {"QCHAT_Tx Mixer", "INT3_MI2S_TX_QCHAT", "INT3_MI2S_TX"},
27082 {"QCHAT_Tx Mixer", "USB_AUDIO_TX_QCHAT", "USB_AUDIO_TX"},
27083 {"QCHAT_UL", NULL, "QCHAT_Tx Mixer"},
27084
27085 {"INT_FM_RX", NULL, "INTFM_DL_HL"},
27086 {"INTFM_UL_HL", NULL, "INT_FM_TX"},
27087 {"INTHFP_UL_HL", NULL, "HFP_PRI_AUX_UL_HL"},
27088 {"HFP_PRI_AUX_UL_HL", "Switch", "AUX_PCM_TX"},
27089 {"INTHFP_UL_HL", NULL, "HFP_AUX_UL_HL"},
27090 {"HFP_AUX_UL_HL", "Switch", "SEC_AUX_PCM_TX"},
27091 {"INTHFP_UL_HL", NULL, "HFP_INT_UL_HL"},
27092 {"HFP_INT_UL_HL", "Switch", "INT_BT_SCO_TX"},
27093 {"SLIM7_UL_HL", NULL, "HFP_SLIM7_UL_HL"},
27094 {"HFP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
27095 {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"},
27096 {"AUX_PCM_RX", NULL, "INTHFP_DL_HL"},
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080027097 {"SLIM7_UL_HL", NULL, "A2DP_SLIM7_UL_HL"},
27098 {"A2DP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080027099 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027100 {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080027101 {"SEC_AUXPCM_UL_HL", NULL, "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027102 {"MI2S_RX", NULL, "MI2S_DL_HL"},
27103 {"MI2S_UL_HL", NULL, "MI2S_TX"},
27104 {"PCM_RX_DL_HL", "Switch", "SLIM0_DL_HL"},
27105 {"PCM_RX", NULL, "PCM_RX_DL_HL"},
27106
27107 /* connect to INT4_MI2S_DL_HL since same pcm_id */
27108 {"INT0_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
27109 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_DL_HL"},
27110 {"INT4_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
27111 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_DL_HL"},
27112 {"PRI_MI2S_RX_DL_HL", "Switch", "PRI_MI2S_DL_HL"},
27113 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_DL_HL"},
27114 {"SEC_MI2S_RX_DL_HL", "Switch", "SEC_MI2S_DL_HL"},
27115 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_DL_HL"},
27116 {"TERT_MI2S_RX_DL_HL", "Switch", "TERT_MI2S_DL_HL"},
27117 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_DL_HL"},
27118
27119 {"QUAT_MI2S_RX_DL_HL", "Switch", "QUAT_MI2S_DL_HL"},
27120 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053027121 {"QUIN_MI2S_RX_DL_HL", "Switch", "QUIN_MI2S_DL_HL"},
27122 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_DL_HL"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027123 {"SEN_MI2S_RX_DL_HL", "Switch", "SEN_MI2S_DL_HL"},
27124 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027125 {"MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
27126 {"INT3_MI2S_UL_HL", NULL, "INT3_MI2S_TX"},
27127 {"TERT_MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
27128 {"SEC_I2S_RX", NULL, "SEC_I2S_DL_HL"},
27129 {"PRI_MI2S_UL_HL", NULL, "PRI_MI2S_TX"},
27130 {"SEC_MI2S_UL_HL", NULL, "SEC_MI2S_TX"},
27131 {"SEC_MI2S_RX", NULL, "SEC_MI2S_DL_HL"},
27132 {"PRI_MI2S_RX", NULL, "PRI_MI2S_DL_HL"},
27133 {"TERT_MI2S_RX", NULL, "TERT_MI2S_DL_HL"},
27134 {"QUAT_MI2S_UL_HL", NULL, "QUAT_MI2S_TX"},
27135
27136 {"PRI_TDM_TX_0_UL_HL", NULL, "PRI_TDM_TX_0"},
27137 {"PRI_TDM_TX_1_UL_HL", NULL, "PRI_TDM_TX_1"},
27138 {"PRI_TDM_TX_2_UL_HL", NULL, "PRI_TDM_TX_2"},
27139 {"PRI_TDM_TX_3_UL_HL", NULL, "PRI_TDM_TX_3"},
27140 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_DL_HL"},
27141 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_DL_HL"},
27142 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_DL_HL"},
27143 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_DL_HL"},
27144 {"SEC_TDM_TX_0_UL_HL", NULL, "SEC_TDM_TX_0"},
27145 {"SEC_TDM_TX_1_UL_HL", NULL, "SEC_TDM_TX_1"},
27146 {"SEC_TDM_TX_2_UL_HL", NULL, "SEC_TDM_TX_2"},
27147 {"SEC_TDM_TX_3_UL_HL", NULL, "SEC_TDM_TX_3"},
27148 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0_DL_HL"},
27149 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
27150 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
27151 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
Derek Chenfdcc0982018-10-02 15:14:03 -070027152 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027153 {"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
27154 {"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
27155 {"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
27156 {"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070027157 {"TERT_TDM_TX_7_UL_HL", NULL, "TERT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027158 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
27159 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
27160 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
27161 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3_DL_HL"},
27162 {"QUAT_TDM_TX_0_UL_HL", NULL, "QUAT_TDM_TX_0"},
27163 {"QUAT_TDM_TX_1_UL_HL", NULL, "QUAT_TDM_TX_1"},
27164 {"QUAT_TDM_TX_2_UL_HL", NULL, "QUAT_TDM_TX_2"},
27165 {"QUAT_TDM_TX_3_UL_HL", NULL, "QUAT_TDM_TX_3"},
Derek Chenb9048cb2019-03-07 14:54:13 -050027166 {"QUAT_TDM_TX_7_UL_HL", NULL, "QUAT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027167 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0_DL_HL"},
27168 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1_DL_HL"},
27169 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_DL_HL"},
27170 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3_DL_HL"},
Derek Chenb9048cb2019-03-07 14:54:13 -050027171 {"QUAT_TDM_RX_7", NULL, "QUAT_TDM_RX_7_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053027172 {"QUIN_TDM_TX_0_UL_HL", NULL, "QUIN_TDM_TX_0"},
27173 {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"},
27174 {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"},
27175 {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"},
Han Lu7b6c5882019-06-09 16:03:21 +080027176 {"QUIN_TDM_TX_7_UL_HL", NULL, "QUIN_TDM_TX_7"},
Rohit Kumara5077932017-09-10 22:05:05 +053027177 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"},
27178 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"},
27179 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"},
27180 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"},
Han Lu7b6c5882019-06-09 16:03:21 +080027181 {"QUIN_TDM_RX_7", NULL, "QUIN_TDM_RX_7_DL_HL"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027182 {"SEN_TDM_TX_0_UL_HL", NULL, "SEN_TDM_TX_0"},
27183 {"SEN_TDM_TX_1_UL_HL", NULL, "SEN_TDM_TX_1"},
27184 {"SEN_TDM_TX_2_UL_HL", NULL, "SEN_TDM_TX_2"},
27185 {"SEN_TDM_TX_3_UL_HL", NULL, "SEN_TDM_TX_3"},
27186 {"SEN_TDM_RX_0", NULL, "SEN_TDM_RX_0_DL_HL"},
27187 {"SEN_TDM_RX_1", NULL, "SEN_TDM_RX_1_DL_HL"},
27188 {"SEN_TDM_RX_2", NULL, "SEN_TDM_RX_2_DL_HL"},
27189 {"SEN_TDM_RX_3", NULL, "SEN_TDM_RX_3_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027190
27191 {"PRI_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27192 {"PRI_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27193 {"PRI_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27194 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27195 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27196 {"PRI_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27197 {"PRI_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27198 {"PRI_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27199 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
27200 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
27201 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
27202 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
27203 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27204 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27205 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27206 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027207 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27208 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27209 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27210 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027211 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27212 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27213 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27214 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027215 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Port Mixer"},
27216
27217 {"PRI_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27218 {"PRI_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27219 {"PRI_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27220 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27221 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27222 {"PRI_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27223 {"PRI_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27224 {"PRI_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27225 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
27226 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
27227 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
27228 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
27229 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27230 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27231 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27232 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027233 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27234 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27235 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27236 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027237 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27238 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27239 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27240 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027241 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Port Mixer"},
27242
27243 {"PRI_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27244 {"PRI_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27245 {"PRI_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27246 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27247 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27248 {"PRI_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27249 {"PRI_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27250 {"PRI_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27251 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
27252 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
27253 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
27254 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
27255 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27256 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27257 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27258 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027259 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27260 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27261 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27262 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027263 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27264 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27265 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27266 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027267 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Port Mixer"},
27268
27269 {"PRI_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27270 {"PRI_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27271 {"PRI_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27272 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27273 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27274 {"PRI_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27275 {"PRI_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27276 {"PRI_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27277 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
27278 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
27279 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
27280 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
27281 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27282 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27283 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27284 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027285 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27286 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27287 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27288 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027289 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27290 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27291 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27292 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027293 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Port Mixer"},
27294
27295 {"SEC_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27296 {"SEC_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27297 {"SEC_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27298 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27299 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27300 {"SEC_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27301 {"SEC_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27302 {"SEC_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27303 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
27304 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
27305 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
27306 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
27307 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27308 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27309 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27310 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027311 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27312 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27313 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27314 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027315 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27316 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27317 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27318 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027319 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Port Mixer"},
27320
27321 {"SEC_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27322 {"SEC_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27323 {"SEC_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27324 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27325 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27326 {"SEC_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27327 {"SEC_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27328 {"SEC_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27329 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
27330 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
27331 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
27332 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
27333 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27334 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27335 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27336 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027337 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27338 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27339 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27340 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027341 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27342 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27343 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27344 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027345 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Port Mixer"},
27346
27347 {"SEC_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27348 {"SEC_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27349 {"SEC_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27350 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27351 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27352 {"SEC_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27353 {"SEC_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27354 {"SEC_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27355 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
27356 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
27357 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
27358 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
27359 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27360 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27361 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27362 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027363 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27364 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27365 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27366 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027367 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27368 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27369 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27370 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027371 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Port Mixer"},
27372
27373 {"SEC_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27374 {"SEC_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27375 {"SEC_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27376 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27377 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27378 {"SEC_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27379 {"SEC_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27380 {"SEC_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27381 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
27382 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
27383 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
27384 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
27385 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27386 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27387 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27388 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027389 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27390 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27391 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27392 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027393 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27394 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27395 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27396 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027397 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
27398
Derek Chenfdcc0982018-10-02 15:14:03 -070027399 {"SEC_TDM_RX_7 Port Mixer", "TERT_TDM_TX_7", "TERT_TDM_TX_7"},
27400 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7 Port Mixer"},
27401
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027402 {"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27403 {"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27404 {"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27405 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27406 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27407 {"TERT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27408 {"TERT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27409 {"TERT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27410 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27411 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27412 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27413 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27414 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27415 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27416 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27417 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027418 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27419 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27420 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27421 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027422 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27423 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27424 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27425 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027426 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Port Mixer"},
27427
27428 {"TERT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27429 {"TERT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27430 {"TERT_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27431 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27432 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27433 {"TERT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27434 {"TERT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27435 {"TERT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27436 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27437 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27438 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27439 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27440 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27441 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27442 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27443 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027444 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27445 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27446 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27447 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027448 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27449 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27450 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27451 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027452 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Port Mixer"},
27453
27454 {"TERT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27455 {"TERT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27456 {"TERT_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27457 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27458 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27459 {"TERT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27460 {"TERT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27461 {"TERT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27462 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27463 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27464 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27465 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27466 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27467 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27468 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27469 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027470 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27471 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27472 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27473 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027474 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27475 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27476 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27477 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027478 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Port Mixer"},
27479
27480 {"TERT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27481 {"TERT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27482 {"TERT_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27483 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27484 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27485 {"TERT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27486 {"TERT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27487 {"TERT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27488 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27489 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27490 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27491 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27492 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27493 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27494 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27495 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027496 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27497 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27498 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27499 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027500 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27501 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27502 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27503 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027504 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Port Mixer"},
27505
27506 {"QUAT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27507 {"QUAT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27508 {"QUAT_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27509 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27510 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27511 {"QUAT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27512 {"QUAT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27513 {"QUAT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27514 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27515 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27516 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27517 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27518 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27519 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27520 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27521 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027522 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27523 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27524 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27525 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027526 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27527 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27528 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27529 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027530 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Port Mixer"},
27531
27532 {"QUAT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27533 {"QUAT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27534 {"QUAT_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27535 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27536 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27537 {"QUAT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27538 {"QUAT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27539 {"QUAT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27540 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27541 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27542 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27543 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27544 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27545 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27546 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27547 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027548 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27549 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27550 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27551 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027552 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27553 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27554 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27555 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027556 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Port Mixer"},
27557
27558 {"QUAT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27559 {"QUAT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27560 {"QUAT_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27561 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27562 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27563 {"QUAT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27564 {"QUAT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27565 {"QUAT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27566 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27567 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27568 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27569 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27570 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27571 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27572 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27573 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027574 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27575 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27576 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27577 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027578 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27579 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27580 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27581 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027582 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Port Mixer"},
27583
27584 {"QUAT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27585 {"QUAT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27586 {"QUAT_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27587 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27588 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27589 {"QUAT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27590 {"QUAT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27591 {"QUAT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27592 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27593 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27594 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27595 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27596 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27597 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27598 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27599 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027600 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27601 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27602 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27603 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027604 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27605 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27606 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27607 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027608 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Port Mixer"},
27609
Derek Chenb9048cb2019-03-07 14:54:13 -050027610 {"QUAT_TDM_RX_7 Port Mixer", "QUAT_TDM_TX_7", "QUAT_TDM_TX_7"},
Derek Chen728c5cc2019-06-26 14:21:52 -070027611 {"QUAT_TDM_RX_7 Port Mixer", "QUIN_TDM_TX_7", "QUIN_TDM_TX_7"},
Derek Chenb9048cb2019-03-07 14:54:13 -050027612 {"QUAT_TDM_RX_7", NULL, "QUAT_TDM_RX_7 Port Mixer"},
27613
Rohit Kumara5077932017-09-10 22:05:05 +053027614 {"QUIN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27615 {"QUIN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27616 {"QUIN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27617 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27618 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27619 {"QUIN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27620 {"QUIN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27621 {"QUIN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27622 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27623 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27624 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27625 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27626 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27627 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27628 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27629 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27630 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27631 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27632 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27633 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027634 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27635 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27636 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27637 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053027638 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053027639
27640 {"QUIN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27641 {"QUIN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27642 {"QUIN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27643 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27644 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27645 {"QUIN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27646 {"QUIN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27647 {"QUIN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27648 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27649 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27650 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27651 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27652 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27653 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27654 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27655 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27656 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27657 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27658 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27659 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027660 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27661 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27662 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27663 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053027664 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053027665
27666 {"QUIN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27667 {"QUIN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27668 {"QUIN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27669 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27670 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27671 {"QUIN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27672 {"QUIN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27673 {"QUIN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27674 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27675 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27676 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27677 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27678 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27679 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27680 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27681 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27682 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27683 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27684 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27685 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027686 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27687 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27688 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27689 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053027690 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053027691
27692 {"QUIN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27693 {"QUIN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27694 {"QUIN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27695 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27696 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27697 {"QUIN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27698 {"QUIN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27699 {"QUIN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27700 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27701 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27702 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27703 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27704 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27705 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27706 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27707 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27708 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27709 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27710 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27711 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027712 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27713 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27714 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27715 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053027716 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"},
Derek Chen728c5cc2019-06-26 14:21:52 -070027717
27718 {"QUIN_TDM_RX_7 Port Mixer", "TERT_TDM_TX_7", "TERT_TDM_TX_7"},
27719 {"QUIN_TDM_RX_7 Port Mixer", "QUAT_TDM_TX_7", "QUAT_TDM_TX_7"},
Han Lu7b6c5882019-06-09 16:03:21 +080027720 {"QUIN_TDM_RX_7 Port Mixer", "QUIN_TDM_TX_7", "QUIN_TDM_TX_7"},
27721 {"QUIN_TDM_RX_7", NULL, "QUIN_TDM_RX_7 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053027722
Karthikeyan Manic3700752019-03-11 18:33:53 -070027723 {"SEN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27724 {"SEN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27725 {"SEN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27726 {"SEN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27727 {"SEN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27728 {"SEN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27729 {"SEN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27730 {"SEN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27731 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27732 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27733 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27734 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27735 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27736 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27737 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27738 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27739 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27740 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27741 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27742 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
27743 {"SEN_TDM_RX_0", NULL, "SEN_TDM_RX_0 Port Mixer"},
27744
27745 {"SEN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27746 {"SEN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27747 {"SEN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27748 {"SEN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27749 {"SEN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27750 {"SEN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27751 {"SEN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27752 {"SEN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27753 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27754 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27755 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27756 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27757 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27758 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27759 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27760 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27761 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27762 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27763 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27764 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
27765 {"SEN_TDM_RX_1", NULL, "SEN_TDM_RX_1 Port Mixer"},
27766
27767 {"SEN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27768 {"SEN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27769 {"SEN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27770 {"SEN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27771 {"SEN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27772 {"SEN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27773 {"SEN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27774 {"SEN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27775 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27776 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27777 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27778 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27779 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27780 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27781 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27782 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27783 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27784 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27785 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27786 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
27787 {"SEN_TDM_RX_2", NULL, "SEN_TDM_RX_2 Port Mixer"},
27788
27789 {"SEN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27790 {"SEN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27791 {"SEN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27792 {"SEN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27793 {"SEN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27794 {"SEN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27795 {"SEN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27796 {"SEN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27797 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27798 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27799 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27800 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27801 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27802 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27803 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27804 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27805 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27806 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27807 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27808 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
27809 {"SEN_TDM_RX_3", NULL, "SEN_TDM_RX_3 Port Mixer"},
27810
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027811 {"INT0_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27812 {"INT0_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27813 {"INT0_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27814 {"INT0_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027815 {"INT0_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027816 {"INT0_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027817 {"INT0_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
27818 {"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
27819 {"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
27820 {"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053027821 {"INT0_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027822 {"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27823 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
27824
27825 {"INT4_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27826 {"INT4_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27827 {"INT4_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27828 {"INT4_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027829 {"INT4_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027830 {"INT4_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027831 {"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
27832 {"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
27833 {"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053027834 {"INT4_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027835 {"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27836 {"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27837 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
27838
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053027839 {"WSA_CDC_DMA_RX_0 Port Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27840 {"WSA_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080027841 {"WSA_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080027842 {"WSA_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Meng Wangbbf77922019-03-01 13:24:14 +080027843 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Port Mixer"},
27844
27845 {"RX_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
27846 {"RX_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080027847 {"RX_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Meng Wangbbf77922019-03-01 13:24:14 +080027848 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Port Mixer"},
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053027849
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027850 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27851 {"SLIMBUS_0_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27852 {"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27853 {"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
27854 {"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053027855 {"SLIMBUS_0_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027856 {"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27857 {"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27858 {"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
27859 {"SLIMBUS_0_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027860 {"SLIMBUS_0_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027861 {"SLIMBUS_0_RX Port Mixer", "SEN_AUXPCM_UL_TX", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027862 {"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
27863 {"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27864 {"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27865 {"SLIMBUS_0_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27866 {"SLIMBUS_0_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027867 {"SLIMBUS_0_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027868 {"SLIMBUS_0_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027869 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27870 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
27871 {"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27872 {"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27873 {"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
27874 {"USB_AUDIO_RX Port Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
27875 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Port Mixer"},
27876 {"USB_DL_HL", "Switch", "USBAUDIO_DL_HL"},
27877 {"USB_AUDIO_RX", NULL, "USB_DL_HL"},
27878 {"USBAUDIO_UL_HL", NULL, "USB_AUDIO_TX"},
27879
27880
27881 {"AUX_PCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27882 {"AUX_PCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27883 {"AUX_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27884 {"AUX_PCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27885 {"AUX_PCM_RX Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
Suprith Malligere Shankaregowda467f2c92019-04-19 19:35:41 +053027886 {"AUX_PCM_RX Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080027887 {"AUX_PCM_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027888 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Port Mixer"},
27889
27890 {"SEC_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27891 {"SEC_AUXPCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27892 {"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080027893 {"SEC_AUXPCM_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027894 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
27895
27896 {"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27897 {"TERT_AUXPCM_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
27898 {"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27899 {"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
27900
27901 {"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27902 {"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
27903 {"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27904 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
27905
Rohit Kumara5077932017-09-10 22:05:05 +053027906 {"QUIN_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27907 {"QUIN_AUXPCM_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
27908 {"QUIN_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27909 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUXPCM_RX Port Mixer"},
27910
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027911 {"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
27912 {"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27913 {"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27914 {"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
27915 {"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27916 {"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27917 {"Voice Stub Tx Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
27918 {"Voice Stub Tx Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027919 {"Voice Stub Tx Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027920 {"Voice Stub Tx Mixer", "SEN_AUXPCM_UL_TX", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027921 {"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
27922 {"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27923 {"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27924 {"Voice Stub Tx Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
27925 {"Voice Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27926 {"Voice Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27927 {"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
27928 {"Voice Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
27929 {"Voice Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
27930 {"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
27931 {"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
27932
27933 {"VoLTE Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
27934 {"VoLTE Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27935 {"VoLTE Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
27936 {"VoLTE Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27937 {"VoLTE Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27938 {"VoLTE Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
27939 {"VoLTE Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
27940 {"VoLTE Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
27941 {"VoLTE Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
27942 {"VoLTE Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27943 {"VoLTE Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27944 {"VOLTE_STUB_UL", NULL, "VoLTE Stub Tx Mixer"},
27945
27946 {"Voice2 Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
27947 {"Voice2 Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27948 {"Voice2 Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
27949 {"Voice2 Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27950 {"Voice2 Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27951 {"Voice2 Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
27952 {"Voice2 Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
27953 {"Voice2 Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
27954 {"Voice2 Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
27955 {"Voice2 Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27956 {"Voice2 Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Josh Kirsch9d769302018-04-10 17:25:42 -070027957 {"Voice2 Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027958 {"VOICE2_STUB_UL", NULL, "Voice2 Stub Tx Mixer"},
27959
kunleizdf5a00a2017-11-27 15:27:36 +080027960 {"STUB_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27961 {"STUB_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027962 {"STUB_RX", NULL, "STUB_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080027963
27964 {"SLIMBUS_1_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27965 {"SLIMBUS_1_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027966 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080027967
27968 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27969 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027970 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
27971
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027972 {"SLIM_7_RX_Voice Mixer", "Voip", "VOIP_DL"},
27973 {"SLIM_7_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027974 {"SLIM_7_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27975 {"SLIM_7_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27976 {"SLIM_7_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27977 {"SLIMBUS_7_RX", NULL, "SLIM_7_RX_Voice Mixer"},
27978
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027979 {"SLIM_8_RX_Voice Mixer", "Voip", "VOIP_DL"},
27980 {"SLIM_8_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027981 {"SLIM_8_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27982 {"SLIM_8_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27983 {"SLIM_8_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27984 {"SLIMBUS_8_RX", NULL, "SLIM_8_RX_Voice Mixer"},
27985
27986 {"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27987 {"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27988 {"SLIMBUS_1_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27989 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
27990 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27991 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27992 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
27993 {"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
27994 {"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
27995 {"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
27996 {"SLIMBUS_3_RX Port Mixer", "AUX_PCM_RX", "AUX_PCM_RX"},
27997 {"SLIMBUS_3_RX Port Mixer", "SLIM_0_RX", "SLIMBUS_0_RX"},
27998 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
27999
28000 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28001 {"SLIMBUS_6_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28002 {"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28003 {"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
28004 {"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053028005 {"SLIMBUS_6_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028006 {"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28007 {"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28008 {"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28009 {"SLIMBUS_6_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28010 {"SLIMBUS_6_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28011 {"SLIMBUS_6_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28012 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28013 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Port Mixer"},
28014
28015 {"HDMI_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28016 {"HDMI", NULL, "HDMI_RX Port Mixer"},
28017
28018 {"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28019 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
28020
Karthikeyan Mani57550082018-05-03 18:43:58 -070028021 {"DISPLAY_PORT_RX1 Port Mixer", "MI2S_TX", "MI2S_TX"},
28022 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1 Port Mixer"},
28023
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028024 {"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28025 {"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
28026
28027 {"MI2S_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28028 {"MI2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28029 {"MI2S_RX", NULL, "MI2S_RX Port Mixer"},
28030
28031 {"PRI_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28032 {"PRI_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28033 {"PRI_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28034 {"PRI_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028035 {"PRI_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028036 {"PRI_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028037 {"PRI_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28038 {"PRI_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28039 {"PRI_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28040 {"PRI_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080028041 {"PRI_MI2S_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028042 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Port Mixer"},
28043
28044 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28045 {"SEC_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28046 {"SEC_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28047 {"SEC_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028048 {"SEC_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028049 {"SEC_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028050 {"SEC_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28051 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28052 {"SEC_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080028053 {"SEC_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028054 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Port Mixer"},
28055
28056 {"TERT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28057 {"TERT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28058 {"TERT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28059 {"TERT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028060 {"TERT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028061 {"TERT_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028062 {"TERT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28063 {"TERT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28064 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Port Mixer"},
28065
28066 {"QUAT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28067 {"QUAT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28068 {"QUAT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28069 {"QUAT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028070 {"QUAT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028071 {"SEN_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028072 {"QUAT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28073 {"QUAT_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28074 {"QUAT_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28075 {"QUAT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28076 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Port Mixer"},
28077
Rohit Kumara5077932017-09-10 22:05:05 +053028078 {"QUIN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28079 {"QUIN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28080 {"QUIN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28081 {"QUIN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28082 {"QUIN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028083 {"QUIN_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028084 {"QUIN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28085 {"QUIN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28086 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Port Mixer"},
28087
Karthikeyan Manic3700752019-03-11 18:33:53 -070028088 {"SEN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28089 {"SEN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28090 {"SEN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28091 {"SEN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28092 {"SEN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
28093 {"SEN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28094 {"SEN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28095 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX Port Mixer"},
28096
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028097 /* Backend Enablement */
28098
28099 {"BE_OUT", NULL, "PRI_I2S_RX"},
28100 {"BE_OUT", NULL, "SEC_I2S_RX"},
28101 {"BE_OUT", NULL, "SLIMBUS_0_RX"},
28102 {"BE_OUT", NULL, "SLIMBUS_1_RX"},
28103 {"BE_OUT", NULL, "SLIMBUS_2_RX"},
28104 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
28105 {"BE_OUT", NULL, "SLIMBUS_4_RX"},
28106 {"BE_OUT", NULL, "SLIMBUS_5_RX"},
28107 {"BE_OUT", NULL, "SLIMBUS_6_RX"},
28108 {"BE_OUT", NULL, "SLIMBUS_7_RX"},
28109 {"BE_OUT", NULL, "SLIMBUS_8_RX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053028110 {"BE_OUT", NULL, "SLIMBUS_9_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028111 {"BE_OUT", NULL, "USB_AUDIO_RX"},
28112 {"BE_OUT", NULL, "HDMI"},
28113 {"BE_OUT", NULL, "DISPLAY_PORT"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070028114 {"BE_OUT", NULL, "DISPLAY_PORT1"},
Ralf Herzc8701f72018-06-20 11:37:35 +020028115 {"BE_OUT", NULL, "PRI_SPDIF_RX"},
28116 {"BE_OUT", NULL, "SEC_SPDIF_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028117 {"BE_OUT", NULL, "MI2S_RX"},
28118 {"BE_OUT", NULL, "QUAT_MI2S_RX"},
28119 {"BE_OUT", NULL, "QUIN_MI2S_RX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028120 {"BE_OUT", NULL, "SEN_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028121 {"BE_OUT", NULL, "TERT_MI2S_RX"},
28122 {"BE_OUT", NULL, "SEC_MI2S_RX"},
28123 {"BE_OUT", NULL, "SEC_MI2S_RX_SD1"},
28124 {"BE_OUT", NULL, "PRI_MI2S_RX"},
28125 {"BE_OUT", NULL, "INT0_MI2S_RX"},
28126 {"BE_OUT", NULL, "INT4_MI2S_RX"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053028127 {"BE_OUT", NULL, "INT2_MI2S_RX"},
28128 {"BE_OUT", NULL, "INT3_MI2S_RX"},
28129 {"BE_OUT", NULL, "INT5_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028130 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
28131 {"BE_OUT", NULL, "INT_BT_A2DP_RX"},
28132 {"BE_OUT", NULL, "INT_FM_RX"},
28133 {"BE_OUT", NULL, "PCM_RX"},
28134 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
28135 {"BE_OUT", NULL, "AUX_PCM_RX"},
28136 {"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
28137 {"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
28138 {"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028139 {"BE_OUT", NULL, "QUIN_AUX_PCM_RX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028140 {"BE_OUT", NULL, "SEN_AUX_PCM_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028141 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
28142 {"BE_OUT", NULL, "INT_FM_RX"},
28143 {"BE_OUT", NULL, "PCM_RX"},
28144 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
28145 {"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
28146 {"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
28147 {"BE_OUT", NULL, "PRI_TDM_RX_0"},
28148 {"BE_OUT", NULL, "PRI_TDM_RX_1"},
28149 {"BE_OUT", NULL, "PRI_TDM_RX_2"},
28150 {"BE_OUT", NULL, "PRI_TDM_RX_3"},
28151 {"BE_OUT", NULL, "SEC_TDM_RX_0"},
28152 {"BE_OUT", NULL, "SEC_TDM_RX_1"},
28153 {"BE_OUT", NULL, "SEC_TDM_RX_2"},
28154 {"BE_OUT", NULL, "SEC_TDM_RX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070028155 {"BE_OUT", NULL, "SEC_TDM_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028156 {"BE_OUT", NULL, "TERT_TDM_RX_0"},
28157 {"BE_OUT", NULL, "TERT_TDM_RX_1"},
28158 {"BE_OUT", NULL, "TERT_TDM_RX_2"},
28159 {"BE_OUT", NULL, "TERT_TDM_RX_3"},
28160 {"BE_OUT", NULL, "TERT_TDM_RX_4"},
28161 {"BE_OUT", NULL, "QUAT_TDM_RX_0"},
28162 {"BE_OUT", NULL, "QUAT_TDM_RX_1"},
28163 {"BE_OUT", NULL, "QUAT_TDM_RX_2"},
28164 {"BE_OUT", NULL, "QUAT_TDM_RX_3"},
Derek Chenb9048cb2019-03-07 14:54:13 -050028165 {"BE_OUT", NULL, "QUAT_TDM_RX_7"},
Rohit Kumara5077932017-09-10 22:05:05 +053028166 {"BE_OUT", NULL, "QUIN_TDM_RX_0"},
28167 {"BE_OUT", NULL, "QUIN_TDM_RX_1"},
28168 {"BE_OUT", NULL, "QUIN_TDM_RX_2"},
28169 {"BE_OUT", NULL, "QUIN_TDM_RX_3"},
Han Lu7b6c5882019-06-09 16:03:21 +080028170 {"BE_OUT", NULL, "QUIN_TDM_RX_7"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028171 {"BE_OUT", NULL, "SEN_TDM_RX_0"},
28172 {"BE_OUT", NULL, "SEN_TDM_RX_1"},
28173 {"BE_OUT", NULL, "SEN_TDM_RX_2"},
28174 {"BE_OUT", NULL, "SEN_TDM_RX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053028175 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_0"},
28176 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053028177 {"BE_OUT", NULL, "RX_CDC_DMA_RX_0"},
28178 {"BE_OUT", NULL, "RX_CDC_DMA_RX_1"},
28179 {"BE_OUT", NULL, "RX_CDC_DMA_RX_2"},
28180 {"BE_OUT", NULL, "RX_CDC_DMA_RX_3"},
28181 {"BE_OUT", NULL, "RX_CDC_DMA_RX_4"},
28182 {"BE_OUT", NULL, "RX_CDC_DMA_RX_5"},
28183 {"BE_OUT", NULL, "RX_CDC_DMA_RX_6"},
28184 {"BE_OUT", NULL, "RX_CDC_DMA_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028185
28186 {"PRI_I2S_TX", NULL, "BE_IN"},
28187 {"MI2S_TX", NULL, "BE_IN"},
28188 {"QUAT_MI2S_TX", NULL, "BE_IN"},
28189 {"QUIN_MI2S_TX", NULL, "BE_IN"},
28190 {"PRI_MI2S_TX", NULL, "BE_IN"},
28191 {"TERT_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053028192 {"INT0_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028193 {"INT2_MI2S_TX", NULL, "BE_IN"},
28194 {"INT3_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053028195 {"INT4_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028196 {"INT5_MI2S_TX", NULL, "BE_IN"},
28197 {"SEC_MI2S_TX", NULL, "BE_IN"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028198 {"SENARY_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028199 {"SLIMBUS_0_TX", NULL, "BE_IN" },
28200 {"SLIMBUS_1_TX", NULL, "BE_IN" },
28201 {"SLIMBUS_3_TX", NULL, "BE_IN" },
28202 {"SLIMBUS_4_TX", NULL, "BE_IN" },
28203 {"SLIMBUS_5_TX", NULL, "BE_IN" },
28204 {"SLIMBUS_6_TX", NULL, "BE_IN" },
28205 {"SLIMBUS_7_TX", NULL, "BE_IN" },
28206 {"SLIMBUS_8_TX", NULL, "BE_IN" },
Surendar Karka3ef3d812018-09-28 18:52:35 +053028207 {"SLIMBUS_9_TX", NULL, "BE_IN" },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028208 {"USB_AUDIO_TX", NULL, "BE_IN" },
28209 {"INT_BT_SCO_TX", NULL, "BE_IN"},
28210 {"INT_FM_TX", NULL, "BE_IN"},
28211 {"PCM_TX", NULL, "BE_IN"},
28212 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
28213 {"BE_OUT", NULL, "STUB_RX"},
28214 {"STUB_TX", NULL, "BE_IN"},
28215 {"STUB_1_TX", NULL, "BE_IN"},
28216 {"BE_OUT", NULL, "AUX_PCM_RX"},
28217 {"AUX_PCM_TX", NULL, "BE_IN"},
28218 {"SEC_AUX_PCM_TX", NULL, "BE_IN"},
28219 {"TERT_AUX_PCM_TX", NULL, "BE_IN"},
28220 {"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053028221 {"QUIN_AUX_PCM_TX", NULL, "BE_IN"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028222 {"SEN_AUX_PCM_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028223 {"INCALL_RECORD_TX", NULL, "BE_IN"},
28224 {"INCALL_RECORD_RX", NULL, "BE_IN"},
28225 {"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
28226 {"SLIM0_RX_VI_FB_RCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053028227 {"WSA_RX_0_VI_FB_LCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
28228 {"WSA_RX_0_VI_FB_RCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028229 {"PRI_MI2S_RX_VI_FB_MUX", "SENARY_TX", "SENARY_TX"},
28230 {"INT4_MI2S_RX_VI_FB_MONO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
28231 {"INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
28232 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_LCH_MUX"},
28233 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_RCH_MUX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053028234 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_LCH_MUX"},
28235 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_RCH_MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028236 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_VI_FB_MUX"},
28237 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_MONO_CH_MUX"},
28238 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_STEREO_CH_MUX"},
28239 {"PRI_TDM_TX_0", NULL, "BE_IN"},
28240 {"PRI_TDM_TX_1", NULL, "BE_IN"},
28241 {"PRI_TDM_TX_2", NULL, "BE_IN"},
28242 {"PRI_TDM_TX_3", NULL, "BE_IN"},
28243 {"SEC_TDM_TX_0", NULL, "BE_IN"},
28244 {"SEC_TDM_TX_1", NULL, "BE_IN"},
28245 {"SEC_TDM_TX_2", NULL, "BE_IN"},
28246 {"SEC_TDM_TX_3", NULL, "BE_IN"},
28247 {"TERT_TDM_TX_0", NULL, "BE_IN"},
28248 {"TERT_TDM_TX_1", NULL, "BE_IN"},
28249 {"TERT_TDM_TX_2", NULL, "BE_IN"},
28250 {"TERT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenfdcc0982018-10-02 15:14:03 -070028251 {"TERT_TDM_TX_7", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028252 {"QUAT_TDM_TX_0", NULL, "BE_IN"},
28253 {"QUAT_TDM_TX_1", NULL, "BE_IN"},
28254 {"QUAT_TDM_TX_2", NULL, "BE_IN"},
28255 {"QUAT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenb9048cb2019-03-07 14:54:13 -050028256 {"QUAT_TDM_TX_7", NULL, "BE_IN"},
Surendar Karkad47fda42018-05-20 19:21:10 +053028257 {"AFE_LOOPBACK_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053028258 {"QUIN_TDM_TX_0", NULL, "BE_IN"},
28259 {"QUIN_TDM_TX_1", NULL, "BE_IN"},
28260 {"QUIN_TDM_TX_2", NULL, "BE_IN"},
28261 {"QUIN_TDM_TX_3", NULL, "BE_IN"},
Han Lu7b6c5882019-06-09 16:03:21 +080028262 {"QUIN_TDM_TX_7", NULL, "BE_IN"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028263 {"SEN_TDM_TX_0", NULL, "BE_IN"},
28264 {"SEN_TDM_TX_1", NULL, "BE_IN"},
28265 {"SEN_TDM_TX_2", NULL, "BE_IN"},
28266 {"SEN_TDM_TX_3", NULL, "BE_IN"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053028267 {"WSA_CDC_DMA_TX_0", NULL, "BE_IN"},
28268 {"WSA_CDC_DMA_TX_1", NULL, "BE_IN"},
28269 {"WSA_CDC_DMA_TX_2", NULL, "BE_IN"},
28270 {"VA_CDC_DMA_TX_0", NULL, "BE_IN"},
28271 {"VA_CDC_DMA_TX_1", NULL, "BE_IN"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080028272 {"VA_CDC_DMA_TX_2", NULL, "BE_IN"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053028273 {"TX_CDC_DMA_TX_0", NULL, "BE_IN"},
28274 {"TX_CDC_DMA_TX_1", NULL, "BE_IN"},
28275 {"TX_CDC_DMA_TX_2", NULL, "BE_IN"},
28276 {"TX_CDC_DMA_TX_3", NULL, "BE_IN"},
28277 {"TX_CDC_DMA_TX_4", NULL, "BE_IN"},
28278 {"TX_CDC_DMA_TX_5", NULL, "BE_IN"},
Ralf Herzc8701f72018-06-20 11:37:35 +020028279 {"PRI_SPDIF_TX", NULL, "BE_IN"},
28280 {"SEC_SPDIF_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028281};
28282
28283static int msm_pcm_routing_hw_params(struct snd_pcm_substream *substream,
28284 struct snd_pcm_hw_params *params)
28285{
28286 struct snd_soc_pcm_runtime *rtd = substream->private_data;
28287 unsigned int be_id = rtd->dai_link->id;
28288
28289 if (be_id >= MSM_BACKEND_DAI_MAX) {
28290 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
28291 return -EINVAL;
28292 }
28293
28294 mutex_lock(&routing_lock);
28295 msm_bedais[be_id].sample_rate = params_rate(params);
28296 msm_bedais[be_id].channel = params_channels(params);
28297 msm_bedais[be_id].format = params_format(params);
28298 pr_debug("%s: BE Sample Rate (%d) format (%d) BE id %d\n",
28299 __func__, msm_bedais[be_id].sample_rate,
28300 msm_bedais[be_id].format, be_id);
28301 mutex_unlock(&routing_lock);
28302 return 0;
28303}
28304
28305static int msm_pcm_routing_close(struct snd_pcm_substream *substream)
28306{
28307 struct snd_soc_pcm_runtime *rtd = substream->private_data;
28308 unsigned int be_id = rtd->dai_link->id;
28309 int i, session_type, path_type, topology;
28310 struct msm_pcm_routing_bdai_data *bedai;
28311 struct msm_pcm_routing_fdai_data *fdai;
28312
28313 pr_debug("%s: substream->pcm->id:%s\n",
28314 __func__, substream->pcm->id);
28315
28316 if (be_id >= MSM_BACKEND_DAI_MAX) {
28317 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
28318 return -EINVAL;
28319 }
28320
28321 bedai = &msm_bedais[be_id];
28322 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
28323 0 : 1);
28324 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
28325 path_type = ADM_PATH_PLAYBACK;
28326 else
28327 path_type = ADM_PATH_LIVE_REC;
28328
28329 mutex_lock(&routing_lock);
28330 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
28331 if (!is_mm_lsm_fe_id(i))
28332 continue;
28333 fdai = &fe_dai_map[i][session_type];
28334 if (fdai->strm_id != INVALID_SESSION) {
28335 int idx;
28336 int port_id;
28337 unsigned long copp =
28338 session_copp_map[i][session_type][be_id];
28339 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
28340 if (test_bit(idx, &copp))
28341 break;
Vignesh Kulothungane59d3152018-10-10 14:19:59 -070028342
28343 if (idx >= MAX_COPPS_PER_PORT) {
28344 pr_debug("%s: copp idx is invalid, exiting\n",
28345 __func__);
28346 continue;
28347 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028348 fdai->be_srate = bedai->sample_rate;
Surendar Karkae7507512018-07-20 15:46:54 +053028349 port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028350 topology = adm_get_topology_for_port_copp_idx(port_id,
28351 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070028352 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +053028353 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028354 pr_debug("%s: copp:%ld,idx bit fe:%d, type:%d,be:%d topology=0x%x\n",
28355 __func__, copp, i, session_type, be_id,
28356 topology);
28357 clear_bit(idx,
28358 &session_copp_map[i][session_type][be_id]);
28359 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028360 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053028361 msm_pcm_routing_deinit_pp(port_id,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028362 topology);
28363 }
28364 }
28365
28366 bedai->active = 0;
28367 bedai->sample_rate = 0;
28368 bedai->channel = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028369 mutex_unlock(&routing_lock);
28370
28371 return 0;
28372}
28373
28374static int msm_pcm_routing_prepare(struct snd_pcm_substream *substream)
28375{
28376 struct snd_soc_pcm_runtime *rtd = substream->private_data;
28377 unsigned int be_id = rtd->dai_link->id;
28378 int i, path_type, topology;
28379 int session_type = INVALID_SESSION;
28380 struct msm_pcm_routing_bdai_data *bedai;
28381 u32 channels, sample_rate;
28382 uint16_t bits_per_sample = 16, voc_path_type;
28383 struct msm_pcm_routing_fdai_data *fdai;
28384 u32 session_id;
28385 struct media_format_info voc_be_media_format;
28386 bool is_lsm;
28387
28388 pr_debug("%s: substream->pcm->id:%s\n",
28389 __func__, substream->pcm->id);
28390
28391 if (be_id >= MSM_BACKEND_DAI_MAX) {
28392 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
28393 return -EINVAL;
28394 }
28395
28396 bedai = &msm_bedais[be_id];
28397
28398 mutex_lock(&routing_lock);
28399 if (bedai->active == 1)
28400 goto done; /* Ignore prepare if back-end already active */
28401
28402 /* AFE port is not active at this point. However, still
28403 * go ahead setting active flag under the notion that
28404 * QDSP6 is able to handle ADM starting before AFE port
28405 * is started.
28406 */
28407 bedai->active = 1;
28408
28409 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
28410 if (!(is_mm_lsm_fe_id(i) &&
28411 route_check_fe_id_adm_support(i)))
28412 continue;
28413
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028414 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
28415 SESSION_TYPE_RX : SESSION_TYPE_TX;
28416 fdai = &fe_dai_map[i][session_type];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028417 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028418 if (fdai->passthr_mode != LEGACY_PCM)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028419 path_type = ADM_PATH_COMPRESSED_RX;
28420 else
28421 path_type = ADM_PATH_PLAYBACK;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028422 } else {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028423 if ((fdai->passthr_mode != LEGACY_PCM) &&
28424 (fdai->passthr_mode != LISTEN))
Ralf Herzc8701f72018-06-20 11:37:35 +020028425 path_type = ADM_PATH_COMPRESSED_TX;
28426 else
28427 path_type = ADM_PATH_LIVE_REC;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028428 }
28429
28430 is_lsm = (i >= MSM_FRONTEND_DAI_LSM1) &&
28431 (i <= MSM_FRONTEND_DAI_LSM8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028432 if (fdai->strm_id != INVALID_SESSION) {
28433 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +053028434 int port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028435
28436 if (session_type == SESSION_TYPE_TX &&
28437 fdai->be_srate &&
28438 (fdai->be_srate != bedai->sample_rate)) {
28439 pr_debug("%s: flush strm %d diff BE rates\n",
28440 __func__,
28441 fdai->strm_id);
28442
28443 if (fdai->event_info.event_func)
28444 fdai->event_info.event_func(
28445 MSM_PCM_RT_EVT_BUF_RECFG,
28446 fdai->event_info.priv_data);
28447 fdai->be_srate = 0; /* might not need it */
28448 }
28449 bits_per_sample = msm_routing_get_bit_width(
28450 bedai->format);
28451
28452 app_type =
28453 fe_dai_app_type_cfg[i][session_type][be_id].app_type;
28454 if (app_type && is_lsm) {
28455 app_type_idx =
28456 msm_pcm_routing_get_lsm_app_type_idx(app_type);
28457 sample_rate =
28458 fe_dai_app_type_cfg[i][session_type][be_id]
28459 .sample_rate;
28460 bits_per_sample =
28461 lsm_app_type_cfg[app_type_idx].bit_width;
28462 } else if (app_type) {
28463 app_type_idx =
28464 msm_pcm_routing_get_app_type_idx(app_type);
28465 sample_rate =
28466 fe_dai_app_type_cfg[i][session_type]
28467 [be_id].sample_rate;
28468 bits_per_sample =
28469 app_type_cfg[app_type_idx].bit_width;
28470 } else
28471 sample_rate = bedai->sample_rate;
28472 /*
28473 * check if ADM needs to be configured with different
28474 * channel mapping than backend
28475 */
28476 if (!bedai->adm_override_ch)
28477 channels = bedai->channel;
28478 else
28479 channels = bedai->adm_override_ch;
28480 acdb_dev_id =
28481 fe_dai_app_type_cfg[i][session_type][be_id].acdb_dev_id;
28482 topology = msm_routing_get_adm_topology(i, session_type,
28483 be_id);
Ralf Herzc8701f72018-06-20 11:37:35 +020028484
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028485 if ((fdai->passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
28486 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_GEN)
28487 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_IEC61937))
Ralf Herzc8701f72018-06-20 11:37:35 +020028488 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
28489
Ramlal Karrab6ef9e02019-08-14 17:53:29 +053028490 if (hifi_filter_enabled)
28491 bits_per_sample = msm_routing_get_bit_width(
28492 SNDRV_PCM_FORMAT_S32_LE);
Surendar Karkae7507512018-07-20 15:46:54 +053028493 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028494 sample_rate, channels, topology,
28495 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +053028496 app_type, acdb_dev_id,
28497 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028498 if ((copp_idx < 0) ||
28499 (copp_idx >= MAX_COPPS_PER_PORT)) {
28500 pr_err("%s: adm open failed\n", __func__);
28501 mutex_unlock(&routing_lock);
28502 return -EINVAL;
28503 }
28504 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
28505 __func__, i, session_type, be_id);
28506 set_bit(copp_idx,
28507 &session_copp_map[i][session_type][be_id]);
28508
28509 if (msm_is_resample_needed(
28510 sample_rate,
28511 bedai->sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +053028512 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028513 bedai->sample_rate);
28514
28515 msm_pcm_routing_build_matrix(i, session_type, path_type,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028516 fdai->perf_mode, fdai->passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028517 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028518 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053028519 msm_pcm_routing_cfg_pp(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028520 topology, channels);
28521 }
28522 }
28523
28524 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
28525 session_id = msm_pcm_routing_get_voc_sessionid(i);
28526 if (session_id) {
28527 pr_debug("%s voice session_id: 0x%x\n", __func__,
28528 session_id);
28529
28530 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
28531 voc_path_type = RX_PATH;
28532 else
28533 voc_path_type = TX_PATH;
28534
28535 voc_set_route_flag(session_id, voc_path_type, 1);
28536
28537 memset(&voc_be_media_format, 0,
28538 sizeof(struct media_format_info));
28539
28540 voc_be_media_format.port_id = bedai->port_id;
28541 voc_be_media_format.num_channels = bedai->channel;
28542 voc_be_media_format.sample_rate = bedai->sample_rate;
28543 voc_be_media_format.bits_per_sample = bedai->format;
28544 /* Defaulting this to 1 for voice call usecases */
28545 voc_be_media_format.channel_mapping[0] = 1;
28546
28547 voc_set_device_config(session_id, voc_path_type,
28548 &voc_be_media_format);
28549
28550 if (voc_get_route_flag(session_id, RX_PATH) &&
28551 voc_get_route_flag(session_id, TX_PATH))
28552 voc_enable_device(session_id);
28553 }
28554 }
28555
28556 /* Check if backend is an external ec ref port and set as needed */
28557 if (unlikely(bedai->port_id == voc_get_ext_ec_ref_port_id())) {
28558
28559 memset(&voc_be_media_format, 0,
28560 sizeof(struct media_format_info));
28561
28562 /* Get format info for ec ref port from msm_bedais[] */
28563 voc_be_media_format.port_id = bedai->port_id;
28564 voc_be_media_format.num_channels = bedai->channel;
28565 voc_be_media_format.bits_per_sample = bedai->format;
28566 voc_be_media_format.sample_rate = bedai->sample_rate;
28567 /* Defaulting this to 1 for voice call usecases */
28568 voc_be_media_format.channel_mapping[0] = 1;
28569 voc_set_ext_ec_ref_media_fmt_info(&voc_be_media_format);
28570 pr_debug("%s: EC Ref media format info set to port_id=%d, num_channels=%d, bits_per_sample=%d, sample_rate=%d\n",
28571 __func__, voc_be_media_format.port_id,
28572 voc_be_media_format.num_channels,
28573 voc_be_media_format.bits_per_sample,
28574 voc_be_media_format.sample_rate);
28575 }
28576
28577done:
28578 mutex_unlock(&routing_lock);
28579
28580 return 0;
28581}
28582
28583static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
28584 int fe_id)
28585{
28586 int index, topo_id, be_idx;
28587 unsigned long pp_config = 0;
28588 bool mute_on;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028589 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028590 bool compr_passthr_mode = true;
28591
28592 pr_debug("%s: port_id %d, copp_idx %d\n", __func__, port_id, copp_idx);
28593
28594 if (port_id != HDMI_RX && port_id != DISPLAY_PORT_RX) {
28595 pr_err("%s: Device pp params on invalid port %d\n",
28596 __func__, port_id);
28597 return -EINVAL;
28598 }
28599
28600 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
28601 if (port_id == msm_bedais[be_idx].port_id)
28602 break;
28603 }
28604
28605 if (be_idx >= MSM_BACKEND_DAI_MAX) {
28606 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
28607 return -EINVAL;
28608 }
28609
28610 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
28611 if (msm_bedais_pp_params[index].port_id == port_id)
28612 break;
28613 }
28614 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
28615 pr_err("%s: Invalid backend pp params index %d\n",
28616 __func__, index);
28617 return -EINVAL;
28618 }
28619
28620 topo_id = adm_get_topology_for_port_copp_idx(port_id, copp_idx);
28621 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY) {
28622 pr_err("%s: Invalid passthrough topology 0x%x\n",
28623 __func__, topo_id);
28624 return -EINVAL;
28625 }
28626
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028627 session_type =
28628 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
28629 SESSION_TYPE_RX : SESSION_TYPE_TX;
28630
28631 if ((fe_dai_map[fe_id][session_type].passthr_mode == LEGACY_PCM) ||
28632 (fe_dai_map[fe_id][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028633 compr_passthr_mode = false;
28634
28635 pp_config = msm_bedais_pp_params[index].pp_params_config;
28636 if (test_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config)) {
28637 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
28638 clear_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config);
28639 mute_on = msm_bedais_pp_params[index].mute_on;
28640 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
28641 adm_send_compressed_device_mute(port_id,
28642 copp_idx,
28643 mute_on);
28644 }
28645 if (test_bit(ADM_PP_PARAM_LATENCY_BIT, &pp_config)) {
28646 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
28647 clear_bit(ADM_PP_PARAM_LATENCY_BIT,
28648 &pp_config);
28649 latency = msm_bedais_pp_params[index].latency;
28650 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
28651 adm_send_compressed_device_latency(port_id,
28652 copp_idx,
28653 latency);
28654 }
28655 return 0;
28656}
28657
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070028658static uint32_t msm_routing_get_topology(size_t data_size, void *data)
28659{
28660 uint32_t topology = NULL_COPP_TOPOLOGY;
28661 void *cal_info = NULL;
28662 uint32_t size = 0;
28663
28664 /* Retrieve cal_info size from cal data*/
Aditya Bavanariaf708a82019-03-08 19:17:57 +053028665 if (data_size < sizeof(struct audio_cal_type_basic) +
28666 sizeof(struct audio_cal_info_adm_top)) {
28667 pr_err("%s: Invalid data size: %zd\n", __func__, data_size);
28668 goto done;
28669 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070028670 size = data_size - sizeof(struct audio_cal_type_basic);
28671 cal_info = kzalloc(size, GFP_KERNEL);
28672
28673 if (!cal_info)
28674 goto done;
28675
28676 memcpy(cal_info,
28677 ((uint8_t *)data + sizeof(struct audio_cal_type_basic)), size);
28678
28679 topology = ((struct audio_cal_info_adm_top *)cal_info)->topology;
28680 kfree(cal_info);
28681 cal_info = NULL;
28682
28683done:
28684 pr_debug("%s: Using topology %d\n", __func__, topology);
28685
28686 return topology;
28687}
28688
28689static void msm_routing_load_topology(size_t data_size, void *data)
28690{
28691 uint32_t topology_id;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053028692 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070028693
28694 topology_id = msm_routing_get_topology(data_size, data);
28695 if (topology_id != NULL_COPP_TOPOLOGY)
28696 ret = q6core_load_unload_topo_modules(topology_id,
28697 CORE_LOAD_TOPOLOGY);
28698 if (ret < 0)
28699 pr_debug("%s %d load topology failed\n",
28700 __func__, topology_id);
28701
28702}
28703
28704static void msm_routing_unload_topology(uint32_t topology_id)
28705{
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053028706 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070028707
28708 if (topology_id != NULL_COPP_TOPOLOGY)
28709 ret = q6core_load_unload_topo_modules(topology_id,
28710 CORE_UNLOAD_TOPOLOGY);
28711 if (ret < 0)
28712 pr_debug("%s %d unload topology failed\n",
28713 __func__, topology_id);
28714
28715}
28716
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028717static int msm_routing_put_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
28718 struct snd_ctl_elem_value *ucontrol)
28719{
28720 int pp_id = ucontrol->value.integer.value[0];
28721 int port_id = 0;
28722 int index, be_idx, i, topo_id, idx;
28723 bool mute;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028724 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028725 bool compr_passthr_mode = true;
28726
28727 pr_debug("%s: pp_id: 0x%x\n", __func__, pp_id);
28728
28729 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
28730 port_id = msm_bedais[be_idx].port_id;
28731 if (port_id == HDMI_RX || port_id == DISPLAY_PORT_RX)
28732 break;
28733 }
28734
28735 if (be_idx >= MSM_BACKEND_DAI_MAX) {
28736 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
28737 return -EINVAL;
28738 }
28739
28740 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
28741 if (msm_bedais_pp_params[index].port_id == port_id)
28742 break;
28743 }
28744 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
28745 pr_err("%s: Invalid pp params backend index %d\n",
28746 __func__, index);
28747 return -EINVAL;
28748 }
28749
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028750 session_type =
28751 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
28752 SESSION_TYPE_RX : SESSION_TYPE_TX;
28753
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028754 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
28755 MSM_FRONTEND_DAI_MM_SIZE) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028756 if ((fe_dai_map[i][session_type].passthr_mode == LEGACY_PCM) ||
28757 (fe_dai_map[i][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028758 compr_passthr_mode = false;
28759
28760 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
28761 unsigned long copp =
28762 session_copp_map[i]
28763 [SESSION_TYPE_RX][be_idx];
28764 if (!test_bit(idx, &copp))
28765 continue;
28766 topo_id = adm_get_topology_for_port_copp_idx(port_id,
28767 idx);
28768 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY)
28769 continue;
28770 pr_debug("%s: port: 0x%x, copp %ld, be active: %d, passt: %d\n",
28771 __func__, port_id, copp, msm_bedais[be_idx].active,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028772 fe_dai_map[i][session_type].passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028773 switch (pp_id) {
28774 case ADM_PP_PARAM_MUTE_ID:
28775 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
28776 mute = ucontrol->value.integer.value[1] ? true : false;
28777 msm_bedais_pp_params[index].mute_on = mute;
28778 set_bit(ADM_PP_PARAM_MUTE_BIT,
28779 &msm_bedais_pp_params[index].pp_params_config);
28780 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
28781 adm_send_compressed_device_mute(port_id,
28782 idx, mute);
28783 break;
28784 case ADM_PP_PARAM_LATENCY_ID:
28785 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
28786 msm_bedais_pp_params[index].latency =
28787 ucontrol->value.integer.value[1];
28788 set_bit(ADM_PP_PARAM_LATENCY_BIT,
28789 &msm_bedais_pp_params[index].pp_params_config);
28790 latency = msm_bedais_pp_params[index].latency =
28791 ucontrol->value.integer.value[1];
28792 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
28793 adm_send_compressed_device_latency(port_id,
28794 idx, latency);
28795 break;
28796 default:
28797 pr_info("%s, device pp param %d not supported\n",
28798 __func__, pp_id);
28799 break;
28800 }
28801 }
28802 }
28803 return 0;
28804}
28805
28806static int msm_routing_get_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
28807 struct snd_ctl_elem_value *ucontrol)
28808{
28809 pr_debug("%s:msm_routing_get_device_pp_params_mixer", __func__);
28810 return 0;
28811}
28812
28813static const struct snd_kcontrol_new device_pp_params_mixer_controls[] = {
28814 SOC_SINGLE_MULTI_EXT("Device PP Params", SND_SOC_NOPM, 0, 0xFFFFFFFF,
28815 0, 3, msm_routing_get_device_pp_params_mixer,
28816 msm_routing_put_device_pp_params_mixer),
28817};
28818
28819static int msm_aptx_dec_license_control_get(struct snd_kcontrol *kcontrol,
28820 struct snd_ctl_elem_value *ucontrol)
28821{
28822 ucontrol->value.integer.value[0] =
28823 core_get_license_status(ASM_MEDIA_FMT_APTX);
28824 pr_debug("%s: status %ld\n", __func__,
28825 ucontrol->value.integer.value[0]);
28826 return 0;
28827}
28828
28829static int msm_aptx_dec_license_control_put(struct snd_kcontrol *kcontrol,
28830 struct snd_ctl_elem_value *ucontrol)
28831{
28832 int32_t status = 0;
28833
28834 status = core_set_license(ucontrol->value.integer.value[0],
28835 APTX_CLASSIC_DEC_LICENSE_ID);
28836 pr_debug("%s: status %d\n", __func__, status);
28837 return status;
28838}
28839
28840static const struct snd_kcontrol_new aptx_dec_license_controls[] = {
28841 SOC_SINGLE_EXT("APTX Dec License", SND_SOC_NOPM, 0,
28842 0xFFFF, 0, msm_aptx_dec_license_control_get,
28843 msm_aptx_dec_license_control_put),
28844};
28845
Rohit kumar63ffaa72019-02-01 18:05:33 +053028846static int msm_routing_put_port_chmap_mixer(struct snd_kcontrol *kcontrol,
28847 struct snd_ctl_elem_value *ucontrol)
28848{
28849 uint8_t channel_map[PCM_FORMAT_MAX_NUM_CHANNEL_V8];
28850 uint32_t be_idx = ucontrol->value.integer.value[0];
28851 int i;
28852
28853 for (i = 0; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; i++) {
28854 channel_map[i] = (char)(ucontrol->value.integer.value[i + 1]);
28855 if (channel_map[i] > PCM_MAX_CHMAP_ID) {
28856 pr_err("%s: Invalid channel map %d\n",
28857 __func__, channel_map[i]);
28858 return -EINVAL;
28859 }
28860 }
28861 adm_set_port_multi_ch_map(channel_map, msm_bedais[be_idx].port_id);
28862
28863 return 0;
28864}
28865
28866static const struct snd_kcontrol_new port_multi_channel_map_mixer_controls[] = {
28867 SOC_SINGLE_MULTI_EXT("Backend Device Channel Map", SND_SOC_NOPM, 0,
28868 MSM_BACKEND_DAI_MAX, 0,
28869 PCM_FORMAT_MAX_NUM_CHANNEL_V8 + 1, NULL,
28870 msm_routing_put_port_chmap_mixer),
28871};
28872
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028873static int msm_routing_be_dai_name_table_info(struct snd_kcontrol *kcontrol,
28874 struct snd_ctl_elem_info *uinfo)
28875{
28876 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
28877 uinfo->count = sizeof(be_dai_name_table);
28878 return 0;
28879}
28880
28881static int msm_routing_be_dai_name_table_tlv_get(struct snd_kcontrol *kcontrol,
28882 unsigned int __user *bytes,
28883 unsigned int size)
28884{
28885 int i;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053028886 int ret = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028887
28888 if (size < sizeof(be_dai_name_table)) {
28889 pr_err("%s: invalid size %d requested, returning\n",
28890 __func__, size);
28891 ret = -EINVAL;
28892 goto done;
28893 }
28894
28895 /*
28896 * Fill be_dai_name_table from msm_bedais table to reduce code changes
28897 * needed when adding new backends
28898 */
28899 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
28900 be_dai_name_table[i].be_id = i;
28901 strlcpy(be_dai_name_table[i].be_name,
28902 msm_bedais[i].name,
28903 LPASS_BE_NAME_MAX_LENGTH);
28904 }
28905
28906 ret = copy_to_user(bytes, &be_dai_name_table,
28907 sizeof(be_dai_name_table));
28908 if (ret) {
28909 pr_err("%s: failed to copy be_dai_name_table\n", __func__);
28910 ret = -EFAULT;
28911 }
28912
28913done:
28914 return ret;
28915}
28916
28917static const struct snd_kcontrol_new
28918 msm_routing_be_dai_name_table_mixer_controls[] = {
28919 {
28920 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
28921 SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
28922 .info = msm_routing_be_dai_name_table_info,
28923 .name = "Backend DAI Name Table",
28924 .tlv.c = snd_soc_bytes_tlv_callback,
28925 .private_value = (unsigned long) &(struct soc_bytes_ext) {
28926 .max = sizeof(be_dai_name_table),
28927 .get = msm_routing_be_dai_name_table_tlv_get,
28928 }
28929 },
28930};
28931
28932static int msm_routing_stereo_channel_reverse_control_get(
28933 struct snd_kcontrol *kcontrol,
28934 struct snd_ctl_elem_value *ucontrol)
28935{
28936 ucontrol->value.integer.value[0] = swap_ch;
28937 pr_debug("%s: Swap channel value: %ld\n", __func__,
28938 ucontrol->value.integer.value[0]);
28939 return 0;
28940}
28941
28942static int msm_routing_stereo_channel_reverse_control_put(
28943 struct snd_kcontrol *kcontrol,
28944 struct snd_ctl_elem_value *ucontrol)
28945{
28946 int i, idx, be_index, port_id;
28947 int ret = 0;
28948 unsigned long copp;
28949
28950 pr_debug("%s Swap channel value:%ld\n", __func__,
28951 ucontrol->value.integer.value[0]);
28952
28953 swap_ch = ucontrol->value.integer.value[0];
28954
28955 mutex_lock(&routing_lock);
28956 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
28957 port_id = msm_bedais[be_index].port_id;
28958 if (!msm_bedais[be_index].active)
28959 continue;
28960
28961 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
28962 MSM_FRONTEND_DAI_MM_SIZE) {
28963 copp = session_copp_map[i][SESSION_TYPE_RX][be_index];
28964 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
28965 if (!test_bit(idx, &copp))
28966 continue;
28967
28968 pr_debug("%s: swap channel control of portid:%d, coppid:%d\n",
28969 __func__, port_id, idx);
28970 ret = adm_swap_speaker_channels(
28971 port_id, idx,
28972 msm_bedais[be_index].sample_rate,
28973 swap_ch);
28974 if (ret) {
28975 pr_err("%s:Swap_channel failed, err=%d\n",
28976 __func__, ret);
28977 goto done;
28978 }
28979 }
28980 }
28981 }
28982done:
28983 mutex_unlock(&routing_lock);
28984 return ret;
28985}
28986
28987static const struct snd_kcontrol_new stereo_channel_reverse_control[] = {
28988 SOC_SINGLE_EXT("Swap channel", SND_SOC_NOPM, 0,
28989 1, 0, msm_routing_stereo_channel_reverse_control_get,
28990 msm_routing_stereo_channel_reverse_control_put),
28991};
28992
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080028993static int msm_routing_instance_id_support_info(struct snd_kcontrol *kcontrol,
28994 struct snd_ctl_elem_info *uinfo)
28995{
28996 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
28997 uinfo->count = 1;
28998 return 0;
28999}
29000
29001static int msm_routing_instance_id_support_put(
29002 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
29003{
29004 bool supported = ucontrol->value.integer.value[0] ? true : false;
29005
29006 q6common_update_instance_id_support(supported);
29007 return 0;
29008}
29009
29010static int msm_routing_instance_id_support_get(
29011 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
29012{
29013 bool supported = false;
29014
29015 supported = q6common_is_instance_id_supported();
29016 ucontrol->value.integer.value[0] = supported ? 1 : 0;
29017
29018 return 0;
29019}
29020
29021static const struct snd_kcontrol_new
29022 msm_routing_feature_support_mixer_controls[] = {
29023 {
29024 .access = SNDRV_CTL_ELEM_ACCESS_READ |
29025 SNDRV_CTL_ELEM_ACCESS_WRITE,
29026 .info = msm_routing_instance_id_support_info,
29027 .name = "Instance ID Support",
29028 .put = msm_routing_instance_id_support_put,
29029 .get = msm_routing_instance_id_support_get,
29030 },
29031};
29032
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029033static const struct snd_pcm_ops msm_routing_pcm_ops = {
29034 .hw_params = msm_pcm_routing_hw_params,
29035 .close = msm_pcm_routing_close,
29036 .prepare = msm_pcm_routing_prepare,
29037};
29038
29039/* Not used but frame seems to require it */
Meng Wangee084a02018-09-04 16:11:58 +080029040static int msm_routing_probe(struct snd_soc_component *component)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029041{
Meng Wangee084a02018-09-04 16:11:58 +080029042 snd_soc_dapm_new_controls(&component->dapm, msm_qdsp6_widgets,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029043 ARRAY_SIZE(msm_qdsp6_widgets));
Meng Wangddca6862019-05-21 09:31:44 +080029044 snd_soc_dapm_ignore_suspend(&component->dapm, "BE_OUT");
29045 snd_soc_dapm_ignore_suspend(&component->dapm, "BE_IN");
Meng Wangee084a02018-09-04 16:11:58 +080029046 snd_soc_dapm_add_routes(&component->dapm, intercon,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029047 ARRAY_SIZE(intercon));
29048
Meng Wangee084a02018-09-04 16:11:58 +080029049 snd_soc_dapm_new_widgets(component->dapm.card);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029050
Meng Wangee084a02018-09-04 16:11:58 +080029051 snd_soc_add_component_controls(component, lsm_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029052 ARRAY_SIZE(lsm_controls));
29053
Meng Wangee084a02018-09-04 16:11:58 +080029054 snd_soc_add_component_controls(component, aanc_slim_0_rx_mux,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029055 ARRAY_SIZE(aanc_slim_0_rx_mux));
29056
Meng Wangee084a02018-09-04 16:11:58 +080029057 snd_soc_add_component_controls(component, aanc_noise_level,
Sudheer Papothic07b37a2018-05-04 05:56:47 +053029058 ARRAY_SIZE(aanc_noise_level));
29059
Meng Wangee084a02018-09-04 16:11:58 +080029060 snd_soc_add_component_controls(component, msm_voc_session_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029061 ARRAY_SIZE(msm_voc_session_controls));
29062
Meng Wangee084a02018-09-04 16:11:58 +080029063 snd_soc_add_component_controls(component, app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029064 ARRAY_SIZE(app_type_cfg_controls));
29065
Meng Wangee084a02018-09-04 16:11:58 +080029066 snd_soc_add_component_controls(component, lsm_app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029067 ARRAY_SIZE(lsm_app_type_cfg_controls));
29068
Meng Wangee084a02018-09-04 16:11:58 +080029069 snd_soc_add_component_controls(component, module_cfg_controls,
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070029070 ARRAY_SIZE(module_cfg_controls));
29071
Meng Wangee084a02018-09-04 16:11:58 +080029072 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029073 stereo_to_custom_stereo_controls,
29074 ARRAY_SIZE(stereo_to_custom_stereo_controls));
29075
Meng Wangee084a02018-09-04 16:11:58 +080029076 snd_soc_add_component_controls(component, ec_ref_param_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029077 ARRAY_SIZE(ec_ref_param_controls));
29078
Meng Wangee084a02018-09-04 16:11:58 +080029079 snd_soc_add_component_controls(component, channel_mixer_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029080 ARRAY_SIZE(channel_mixer_controls));
29081
Meng Wangee084a02018-09-04 16:11:58 +080029082 msm_qti_pp_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029083
Meng Wangee084a02018-09-04 16:11:58 +080029084 msm_dts_srs_tm_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029085
Meng Wangee084a02018-09-04 16:11:58 +080029086 msm_dolby_dap_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029087
Meng Wangee084a02018-09-04 16:11:58 +080029088 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029089 use_ds1_or_ds2_controls,
29090 ARRAY_SIZE(use_ds1_or_ds2_controls));
29091
Meng Wangee084a02018-09-04 16:11:58 +080029092 snd_soc_add_component_controls(component,
Ramlal Karrab6ef9e02019-08-14 17:53:29 +053029093 hifi_filter_controls,
29094 ARRAY_SIZE(hifi_filter_controls));
29095
29096 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029097 device_pp_params_mixer_controls,
29098 ARRAY_SIZE(device_pp_params_mixer_controls));
29099
Meng Wangee084a02018-09-04 16:11:58 +080029100 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029101 msm_routing_be_dai_name_table_mixer_controls,
29102 ARRAY_SIZE(msm_routing_be_dai_name_table_mixer_controls));
29103
Meng Wangee084a02018-09-04 16:11:58 +080029104 snd_soc_add_component_controls(component, msm_source_tracking_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029105 ARRAY_SIZE(msm_source_tracking_controls));
Meng Wangee084a02018-09-04 16:11:58 +080029106 snd_soc_add_component_controls(component, adm_channel_config_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029107 ARRAY_SIZE(adm_channel_config_controls));
29108
Meng Wangee084a02018-09-04 16:11:58 +080029109 snd_soc_add_component_controls(component, aptx_dec_license_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029110 ARRAY_SIZE(aptx_dec_license_controls));
Meng Wangee084a02018-09-04 16:11:58 +080029111 snd_soc_add_component_controls(component,
29112 stereo_channel_reverse_control,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029113 ARRAY_SIZE(stereo_channel_reverse_control));
Meng Wangee084a02018-09-04 16:11:58 +080029114 snd_soc_add_component_controls(
29115 component, msm_routing_feature_support_mixer_controls,
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080029116 ARRAY_SIZE(msm_routing_feature_support_mixer_controls));
Rohit kumar63ffaa72019-02-01 18:05:33 +053029117 snd_soc_add_component_controls(component,
29118 port_multi_channel_map_mixer_controls,
29119 ARRAY_SIZE(port_multi_channel_map_mixer_controls));
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080029120
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029121 return 0;
29122}
29123
29124int msm_routing_pcm_new(struct snd_soc_pcm_runtime *runtime)
29125{
29126 return msm_pcm_routing_hwdep_new(runtime, msm_bedais);
29127}
29128
29129void msm_routing_pcm_free(struct snd_pcm *pcm)
29130{
29131 msm_pcm_routing_hwdep_free(pcm);
29132}
29133
Meng Wangee084a02018-09-04 16:11:58 +080029134static struct snd_soc_component_driver msm_soc_routing_component = {
29135 .name = DRV_NAME,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029136 .ops = &msm_routing_pcm_ops,
29137 .probe = msm_routing_probe,
29138 .pcm_new = msm_routing_pcm_new,
29139 .pcm_free = msm_routing_pcm_free,
29140};
29141
29142static int msm_routing_pcm_probe(struct platform_device *pdev)
29143{
29144
29145 dev_dbg(&pdev->dev, "dev name %s\n", dev_name(&pdev->dev));
Meng Wangee084a02018-09-04 16:11:58 +080029146 return snd_soc_register_component(&pdev->dev,
29147 &msm_soc_routing_component,
29148 NULL, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029149}
29150
29151static int msm_routing_pcm_remove(struct platform_device *pdev)
29152{
Meng Wangee084a02018-09-04 16:11:58 +080029153 snd_soc_unregister_component(&pdev->dev);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029154 return 0;
29155}
29156
29157static const struct of_device_id msm_pcm_routing_dt_match[] = {
29158 {.compatible = "qcom,msm-pcm-routing"},
29159 {}
29160};
29161MODULE_DEVICE_TABLE(of, msm_pcm_routing_dt_match);
29162
29163static struct platform_driver msm_routing_pcm_driver = {
29164 .driver = {
29165 .name = "msm-pcm-routing",
29166 .owner = THIS_MODULE,
29167 .of_match_table = msm_pcm_routing_dt_match,
Xiaojun Sang53cd13a2018-06-29 15:14:37 +080029168 .suppress_bind_attrs = true,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029169 },
29170 .probe = msm_routing_pcm_probe,
29171 .remove = msm_routing_pcm_remove,
29172};
29173
29174int msm_routing_check_backend_enabled(int fedai_id)
29175{
29176 int i;
29177
29178 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
29179 /* bad ID assigned in machine driver */
29180 pr_err("%s: bad MM ID\n", __func__);
29181 return 0;
29182 }
29183 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
29184 if (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))
29185 return msm_bedais[i].active;
29186 }
29187 return 0;
29188}
29189
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029190static int get_cal_type_index(int32_t cal_type)
29191{
29192 int ret = -EINVAL;
29193
29194 switch (cal_type) {
29195 case ADM_TOPOLOGY_CAL_TYPE:
29196 ret = ADM_TOPOLOGY_CAL_TYPE_IDX;
29197 break;
29198 case ADM_LSM_TOPOLOGY_CAL_TYPE:
29199 ret = ADM_LSM_TOPOLOGY_CAL_TYPE_IDX;
29200 break;
29201 default:
29202 pr_err("%s: Invalid cal type %d\n", __func__, cal_type);
29203 }
29204 return ret;
29205}
29206
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029207static int msm_routing_set_cal(int32_t cal_type,
29208 size_t data_size, void *data)
29209{
29210 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029211 int cal_index;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029212 pr_debug("%s\n", __func__);
29213
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029214 cal_index = get_cal_type_index(cal_type);
29215 if (cal_index < 0) {
29216 pr_err("%s: Could not get cal index %d\n",
29217 __func__, cal_index);
29218 ret = -EINVAL;
29219 goto done;
29220 }
29221
29222 ret = cal_utils_set_cal(data_size, data, cal_data[cal_index], 0, NULL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029223 if (ret < 0) {
29224 pr_err("%s: cal_utils_set_cal failed, ret = %d, cal type = %d!\n",
29225 __func__, ret, cal_type);
29226 ret = -EINVAL;
29227 goto done;
29228 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070029229 /* Pre-load if it is ADM topology */
29230 if ((cal_index == ADM_TOPOLOGY_CAL_TYPE_IDX) ||
29231 (cal_index == ADM_LSM_TOPOLOGY_CAL_TYPE_IDX)) {
29232 msm_routing_load_topology(data_size, data);
29233 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029234done:
29235 return ret;
29236}
29237
29238static void msm_routing_delete_cal_data(void)
29239{
29240 pr_debug("%s\n", __func__);
29241
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029242 cal_utils_destroy_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029243}
29244
29245static int msm_routing_init_cal_data(void)
29246{
29247 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029248 struct cal_type_info cal_type_info[] = {
29249 {{ADM_TOPOLOGY_CAL_TYPE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029250 {NULL, NULL, NULL,
29251 msm_routing_set_cal, NULL, NULL} },
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029252 {NULL, NULL, cal_utils_match_buf_num} },
29253
29254 {{ADM_LSM_TOPOLOGY_CAL_TYPE,
29255 {NULL, NULL, NULL,
29256 msm_routing_set_cal, NULL, NULL} },
29257 {NULL, NULL, cal_utils_match_buf_num} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029258 };
29259 pr_debug("%s\n", __func__);
29260
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029261 ret = cal_utils_create_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0],
29262 &cal_type_info[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029263 if (ret < 0) {
29264 pr_err("%s: could not create cal type!\n",
29265 __func__);
29266 ret = -EINVAL;
29267 goto err;
29268 }
29269
29270 return ret;
29271err:
29272 msm_routing_delete_cal_data();
29273 return ret;
29274}
29275
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053029276int __init msm_soc_routing_platform_init(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029277{
29278 mutex_init(&routing_lock);
29279 if (msm_routing_init_cal_data())
29280 pr_err("%s: could not init cal data!\n", __func__);
29281
29282 afe_set_routing_callback(
29283 (routing_cb)msm_pcm_get_dev_acdb_id_by_port_id);
29284
29285 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
29286 memset(&last_be_id_configured, 0, sizeof(last_be_id_configured));
29287
29288 return platform_driver_register(&msm_routing_pcm_driver);
29289}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029290
Asish Bhattacharya5faacb32017-12-04 17:23:15 +053029291void msm_soc_routing_platform_exit(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029292{
29293 msm_routing_delete_cal_data();
29294 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
29295 mutex_destroy(&routing_lock);
29296 platform_driver_unregister(&msm_routing_pcm_driver);
29297}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029298
29299MODULE_DESCRIPTION("MSM routing platform driver");
29300MODULE_LICENSE("GPL v2");