blob: 0563d8c8016ef2730973d690a03df4c96c0f661d [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;
Prasad Kumpatla6db89c72019-09-24 14:51:22 +05301426 u16 bit_width = 16, be_bit_width;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301427 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);
Prasad Kumpatla6db89c72019-09-24 14:51:22 +05301528
1529 be_bit_width = msm_routing_get_bit_width(
1530 msm_bedais[i].format);
1531 if (hifi_filter_enabled && (msm_bedais[i].sample_rate
1532 == 384000 || msm_bedais[i].sample_rate ==
1533 352800) && be_bit_width == 32)
Ramlal Karrab6ef9e02019-08-14 17:53:29 +05301534 bit_width = msm_routing_get_bit_width(
1535 SNDRV_PCM_FORMAT_S32_LE);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301536
1537 copp_idx =
Surendar Karkae7507512018-07-20 15:46:54 +05301538 adm_open(port_id, path_type, sample_rate,
1539 channels, topology, perf_mode,
1540 bit_width, app_type, acdb_dev_id,
1541 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301542 if ((copp_idx < 0) ||
1543 (copp_idx >= MAX_COPPS_PER_PORT)) {
1544 pr_err("%s:adm open failed coppid:%d\n",
1545 __func__, copp_idx);
1546 mutex_unlock(&routing_lock);
1547 return -EINVAL;
1548 }
1549 pr_debug("%s: set idx bit of fe:%d, type: %d, be:%d\n",
1550 __func__, fe_id, session_type, i);
1551 set_bit(copp_idx,
1552 &session_copp_map[fe_id][session_type][i]);
1553
1554 if (msm_is_resample_needed(
1555 sample_rate,
1556 msm_bedais[i].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05301557 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301558 msm_bedais[i].sample_rate);
1559
1560 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1561 unsigned long copp =
1562 session_copp_map[fe_id][session_type][i];
1563 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301564 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301565 payload.copp_idx[num_copps] = j;
1566 payload.app_type[num_copps] =
1567 fe_dai_app_type_cfg
1568 [fe_id][session_type][i]
1569 .app_type;
1570 payload.acdb_dev_id[num_copps] =
1571 fe_dai_app_type_cfg
1572 [fe_id][session_type][i]
1573 .acdb_dev_id;
1574 payload.sample_rate[num_copps] =
1575 fe_dai_app_type_cfg
1576 [fe_id][session_type][i]
1577 .sample_rate;
1578 num_copps++;
1579 }
1580 }
1581 if (passthr_mode != COMPRESSED_PASSTHROUGH_DSD
Ralf Herzc8701f72018-06-20 11:37:35 +02001582 && passthr_mode != COMPRESSED_PASSTHROUGH_GEN
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301583 && passthr_mode != COMPRESSED_PASSTHROUGH_IEC61937)
Surendar Karkae7507512018-07-20 15:46:54 +05301584 msm_routing_send_device_pp_params(port_id,
1585 copp_idx, fe_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301586 }
1587 }
1588 if (num_copps) {
1589 payload.num_copps = num_copps;
1590 payload.session_id = fe_dai_map[fe_id][session_type].strm_id;
1591 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1592 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1593 }
1594 mutex_unlock(&routing_lock);
1595 return 0;
1596}
1597
1598static u32 msm_pcm_routing_get_voc_sessionid(u16 val)
1599{
1600 u32 session_id;
1601
1602 switch (val) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301603 case MSM_FRONTEND_DAI_QCHAT:
1604 session_id = voc_get_session_id(QCHAT_SESSION_NAME);
1605 break;
1606 case MSM_FRONTEND_DAI_VOIP:
1607 session_id = voc_get_session_id(VOIP_SESSION_NAME);
1608 break;
1609 case MSM_FRONTEND_DAI_VOICEMMODE1:
1610 session_id = voc_get_session_id(VOICEMMODE1_NAME);
1611 break;
1612 case MSM_FRONTEND_DAI_VOICEMMODE2:
1613 session_id = voc_get_session_id(VOICEMMODE2_NAME);
1614 break;
1615 default:
1616 session_id = 0;
1617 }
1618
1619 pr_debug("%s session_id 0x%x", __func__, session_id);
1620 return session_id;
1621}
1622
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301623static int msm_pcm_routing_channel_mixer_v2(int fe_id, bool perf_mode,
1624 int dspst_id, int stream_type)
1625{
1626 int copp_idx = 0;
1627 int sess_type = 0;
1628 int j = 0, be_id = 0;
1629 int ret = 0;
1630
1631 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1632 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1633 return 0;
1634 }
1635
1636 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1637 sess_type = SESSION_TYPE_RX;
1638 else
1639 sess_type = SESSION_TYPE_TX;
1640
1641 if (!(channel_mixer_v2[fe_id][sess_type].enable)) {
1642 pr_debug("%s: channel mixer not enabled for FE %d direction %d\n",
1643 __func__, fe_id, sess_type);
1644 return 0;
1645 }
1646
1647 be_id = channel_mixer_v2[fe_id][sess_type].port_idx - 1;
1648 channel_mixer_v2[fe_id][sess_type].input_channels[0] =
1649 channel_mixer_v2[fe_id][sess_type].input_channel;
1650
1651 pr_debug("%s sess type %d,fe_id %d,override in:%d out:%d,be active %d\n",
1652 __func__, sess_type, fe_id,
1653 channel_mixer_v2[fe_id][sess_type].override_in_ch_map,
1654 channel_mixer_v2[fe_id][sess_type].override_out_ch_map,
1655 msm_bedais[be_id].active);
1656
1657 if ((msm_bedais[be_id].active) &&
1658 test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0])) {
1659 unsigned long copp =
1660 session_copp_map[fe_id][sess_type][be_id];
1661 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1662 if (test_bit(j, &copp)) {
1663 copp_idx = j;
1664 break;
1665 }
1666 }
1667
1668 ret = adm_programable_channel_mixer(
1669 msm_bedais[be_id].port_id,
1670 copp_idx, dspst_id, sess_type,
1671 &channel_mixer_v2[fe_id][sess_type], 0);
1672 }
1673
1674 return ret;
1675}
1676
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301677static int msm_pcm_routing_channel_mixer(int fe_id, bool perf_mode,
1678 int dspst_id, int stream_type)
1679{
1680 int copp_idx = 0;
1681 int sess_type = 0;
1682 int i = 0, j = 0, be_id;
1683 int ret = 0;
1684
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301685 ret = msm_pcm_routing_channel_mixer_v2(fe_id, perf_mode,
1686 dspst_id, stream_type);
1687 if (ret) {
1688 pr_err("%s channel mixer v2 cmd set failure%d\n", __func__,
1689 fe_id);
1690 return ret;
1691 }
1692
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301693 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1694 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1695 return 0;
1696 }
1697
1698 if (!(channel_mixer[fe_id].enable)) {
1699 pr_debug("%s: channel mixer not enabled for FE %d\n",
1700 __func__, fe_id);
1701 return 0;
1702 }
1703
1704 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1705 sess_type = SESSION_TYPE_RX;
1706 else
1707 sess_type = SESSION_TYPE_TX;
1708
1709 for (i = 0; i < ADM_MAX_CHANNELS && channel_input[fe_id][i] > 0;
1710 ++i) {
1711 be_id = channel_input[fe_id][i] - 1;
1712 channel_mixer[fe_id].input_channels[i] =
1713 msm_bedais[be_id].channel;
1714
1715 if ((msm_bedais[be_id].active) &&
1716 test_bit(fe_id,
1717 &msm_bedais[be_id].fe_sessions[0])) {
1718 unsigned long copp =
1719 session_copp_map[fe_id][sess_type][be_id];
1720 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1721 if (test_bit(j, &copp)) {
1722 copp_idx = j;
1723 break;
1724 }
1725 }
1726
1727 pr_debug("%s: fe %d, be %d, channel %d, copp %d\n",
1728 __func__,
1729 fe_id, be_id, msm_bedais[be_id].channel,
1730 copp_idx);
1731 ret = adm_programable_channel_mixer(
Meng Wangf016d302019-01-21 10:35:53 +08001732 get_port_id(msm_bedais[be_id].port_id),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301733 copp_idx, dspst_id, sess_type,
1734 channel_mixer + fe_id, i);
1735 }
1736 }
1737
1738 return ret;
1739}
1740
Dhananjay Kumar807f7e92018-12-11 18:10:08 +05301741/**
1742 * msm_pcm_routing_set_channel_mixer_runtime - apply channel mixer
1743 * setting during runtime.
1744 *
1745 * @be_id: backend index
1746 * @session_id: session index
1747 * @session_type: session type
1748 * @params: parameters for channel mixer
1749 *
1750 * Retuen: 0 for success, else error
1751 */
1752int msm_pcm_routing_set_channel_mixer_runtime(int be_id, int session_id,
1753 int session_type,
1754 struct msm_pcm_channel_mixer *params)
1755{
1756 int rc = 0;
1757 int port_id, copp_idx = 0;
1758
1759 be_id--;
1760 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1761 pr_err("%s: invalid backend id %d\n", __func__,
1762 be_id);
1763 return -EINVAL;
1764 }
1765
1766 port_id = msm_bedais[be_id].port_id;
1767 copp_idx = adm_get_default_copp_idx(port_id);
1768 pr_debug("%s: port_id - %d, copp_idx %d session id - %d\n",
1769 __func__, port_id, copp_idx, session_id);
1770
1771 if ((params->input_channel < 0) ||
1772 (params->input_channel > ADM_MAX_CHANNELS)) {
1773 pr_err("%s: invalid input channel %d\n", __func__,
1774 params->input_channel);
1775 return -EINVAL;
1776 }
1777
1778 if ((params->output_channel < 0) ||
1779 (params->output_channel > ADM_MAX_CHANNELS)) {
1780 pr_err("%s: invalid output channel %d\n", __func__,
1781 params->output_channel);
1782 return -EINVAL;
1783 }
1784
1785 params->input_channels[0] = params->input_channel;
1786
1787 pr_debug("%s sess type %d,override in:%d out:%d,be active %d\n",
1788 __func__, session_type,
1789 params->override_in_ch_map,
1790 params->override_out_ch_map,
1791 msm_bedais[be_id].active);
1792
1793 rc = adm_programable_channel_mixer(port_id,
1794 copp_idx,
1795 session_id,
1796 session_type,
1797 params,
1798 0);
1799 if (rc) {
1800 pr_err("%s: send params failed rc=%d\n", __func__, rc);
1801 rc = -EINVAL;
1802 }
1803 return rc;
1804}
1805EXPORT_SYMBOL(msm_pcm_routing_set_channel_mixer_runtime);
1806
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301807int msm_pcm_routing_reg_phy_stream(int fedai_id, int perf_mode,
1808 int dspst_id, int stream_type)
1809{
1810 int i, j, session_type, path_type, port_type, topology, num_copps = 0;
1811 struct route_payload payload;
1812 u32 channels, sample_rate;
Prasad Kumpatla6db89c72019-09-24 14:51:22 +05301813 uint16_t bits_per_sample = 16, be_bit_width;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301814 uint32_t passthr_mode = LEGACY_PCM;
1815 int ret = 0;
1816
1817 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1818 /* bad ID assigned in machine driver */
1819 pr_err("%s: bad MM ID %d\n", __func__, fedai_id);
1820 return -EINVAL;
1821 }
1822
1823 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1824 session_type = SESSION_TYPE_RX;
1825 path_type = ADM_PATH_PLAYBACK;
1826 port_type = MSM_AFE_PORT_TYPE_RX;
1827 } else {
1828 session_type = SESSION_TYPE_TX;
1829 path_type = ADM_PATH_LIVE_REC;
1830 port_type = MSM_AFE_PORT_TYPE_TX;
1831 }
1832
1833 mutex_lock(&routing_lock);
1834
1835 payload.num_copps = 0; /* only RX needs to use payload */
1836 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1837 fe_dai_map[fedai_id][session_type].perf_mode = perf_mode;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301838 fe_dai_map[fedai_id][session_type].passthr_mode = LEGACY_PCM;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301839
1840 /* re-enable EQ if active */
1841 msm_qti_pp_send_eq_values(fedai_id);
1842 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1843 if (!is_be_dai_extproc(i) &&
1844 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1845 (msm_bedais[i].active) &&
1846 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1847 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05301848 int port_id = get_port_id(msm_bedais[i].port_id);
1849
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301850 /*
1851 * check if ADM needs to be configured with different
1852 * channel mapping than backend
1853 */
1854 if (!msm_bedais[i].adm_override_ch)
1855 channels = msm_bedais[i].channel;
1856 else
1857 channels = msm_bedais[i].adm_override_ch;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301858
1859 bits_per_sample = msm_routing_get_bit_width(
1860 msm_bedais[i].format);
1861
1862 app_type =
1863 fe_dai_app_type_cfg[fedai_id][session_type][i].app_type;
1864 if (app_type) {
1865 app_type_idx =
1866 msm_pcm_routing_get_app_type_idx(app_type);
1867 sample_rate =
1868 fe_dai_app_type_cfg[fedai_id][session_type][i]
1869 .sample_rate;
1870 bits_per_sample =
1871 app_type_cfg[app_type_idx].bit_width;
1872 } else
1873 sample_rate = msm_bedais[i].sample_rate;
1874
1875 acdb_dev_id =
1876 fe_dai_app_type_cfg[fedai_id][session_type][i]
1877 .acdb_dev_id;
1878 topology = msm_routing_get_adm_topology(fedai_id,
1879 session_type,
1880 i);
Prasad Kumpatla6db89c72019-09-24 14:51:22 +05301881 be_bit_width = msm_routing_get_bit_width(
1882 msm_bedais[i].format);
1883
1884 if (hifi_filter_enabled && (msm_bedais[i].sample_rate ==
1885 384000 ||msm_bedais[i].sample_rate == 352800)
1886 && be_bit_width == 32)
Ramlal Karrab6ef9e02019-08-14 17:53:29 +05301887 bits_per_sample = msm_routing_get_bit_width(
1888 SNDRV_PCM_FORMAT_S32_LE);
Surendar Karkae7507512018-07-20 15:46:54 +05301889 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301890 sample_rate, channels, topology,
1891 perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +05301892 app_type, acdb_dev_id,
1893 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301894 if ((copp_idx < 0) ||
1895 (copp_idx >= MAX_COPPS_PER_PORT)) {
1896 pr_err("%s: adm open failed copp_idx:%d\n",
Vikram Panduranga770b8382017-09-27 12:17:36 -07001897 __func__, copp_idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301898 mutex_unlock(&routing_lock);
1899 return -EINVAL;
1900 }
1901 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1902 __func__, fedai_id, session_type, i);
1903 set_bit(copp_idx,
1904 &session_copp_map[fedai_id][session_type][i]);
1905
1906 if (msm_is_resample_needed(
1907 sample_rate,
1908 msm_bedais[i].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05301909 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301910 msm_bedais[i].sample_rate);
1911
1912 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1913 unsigned long copp =
1914 session_copp_map[fedai_id][session_type][i];
1915 if (test_bit(j, &copp)) {
Surendar Karkae7507512018-07-20 15:46:54 +05301916 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301917 payload.copp_idx[num_copps] = j;
1918 payload.app_type[num_copps] =
1919 fe_dai_app_type_cfg
1920 [fedai_id][session_type]
1921 [i].app_type;
1922 payload.acdb_dev_id[num_copps] =
1923 fe_dai_app_type_cfg
1924 [fedai_id][session_type]
1925 [i].acdb_dev_id;
1926 payload.sample_rate[num_copps] =
1927 fe_dai_app_type_cfg
1928 [fedai_id][session_type]
1929 [i].sample_rate;
1930 num_copps++;
1931 }
1932 }
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301933 if (perf_mode == LEGACY_PCM_MODE)
Surendar Karkae7507512018-07-20 15:46:54 +05301934 msm_pcm_routing_cfg_pp(port_id, copp_idx,
1935 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301936 }
1937 }
1938 if (num_copps) {
1939 payload.num_copps = num_copps;
1940 payload.session_id = fe_dai_map[fedai_id][session_type].strm_id;
1941 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1942 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1943 }
1944
1945 ret = msm_pcm_routing_channel_mixer(fedai_id, perf_mode,
1946 dspst_id, stream_type);
1947 mutex_unlock(&routing_lock);
1948 return ret;
1949}
1950
1951int msm_pcm_routing_reg_phy_stream_v2(int fedai_id, int perf_mode,
1952 int dspst_id, int stream_type,
1953 struct msm_pcm_routing_evt event_info)
1954{
1955 if (msm_pcm_routing_reg_phy_stream(fedai_id, perf_mode, dspst_id,
1956 stream_type)) {
1957 pr_err("%s: failed to reg phy stream\n", __func__);
1958 return -EINVAL;
1959 }
1960
1961 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1962 fe_dai_map[fedai_id][SESSION_TYPE_RX].event_info = event_info;
1963 else
1964 fe_dai_map[fedai_id][SESSION_TYPE_TX].event_info = event_info;
1965 return 0;
1966}
1967
1968void msm_pcm_routing_dereg_phy_stream(int fedai_id, int stream_type)
1969{
Surendar Karkae7507512018-07-20 15:46:54 +05301970 int i, port_type, session_type, path_type, topology, port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301971 struct msm_pcm_routing_fdai_data *fdai;
1972
1973 if (!is_mm_lsm_fe_id(fedai_id)) {
1974 /* bad ID assigned in machine driver */
1975 pr_err("%s: bad MM ID\n", __func__);
1976 return;
1977 }
1978
1979 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1980 port_type = MSM_AFE_PORT_TYPE_RX;
1981 session_type = SESSION_TYPE_RX;
1982 path_type = ADM_PATH_PLAYBACK;
1983 } else {
1984 port_type = MSM_AFE_PORT_TYPE_TX;
1985 session_type = SESSION_TYPE_TX;
1986 path_type = ADM_PATH_LIVE_REC;
1987 }
1988
1989 mutex_lock(&routing_lock);
1990 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1991 if (!is_be_dai_extproc(i) &&
1992 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1993 (msm_bedais[i].active) &&
1994 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1995 int idx;
1996 unsigned long copp =
1997 session_copp_map[fedai_id][session_type][i];
1998 fdai = &fe_dai_map[fedai_id][session_type];
1999
2000 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
2001 if (test_bit(idx, &copp))
2002 break;
2003
2004 if (idx >= MAX_COPPS_PER_PORT || idx < 0) {
2005 pr_debug("%s: copp idx is invalid, exiting\n",
2006 __func__);
2007 continue;
2008 }
Surendar Karkae7507512018-07-20 15:46:54 +05302009 port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302010 topology = adm_get_topology_for_port_copp_idx(
Surendar Karkae7507512018-07-20 15:46:54 +05302011 port_id, idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07002012 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +05302013 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302014 pr_debug("%s:copp:%ld,idx bit fe:%d,type:%d,be:%d\n",
2015 __func__, copp, fedai_id, session_type, i);
2016 clear_bit(idx,
2017 &session_copp_map[fedai_id][session_type][i]);
2018 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
2019 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
2020 (fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05302021 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05302022 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302023 }
2024 }
2025
2026 fe_dai_map[fedai_id][session_type].strm_id = INVALID_SESSION;
2027 fe_dai_map[fedai_id][session_type].be_srate = 0;
2028 mutex_unlock(&routing_lock);
2029}
2030
2031/* Check if FE/BE route is set */
2032static bool msm_pcm_routing_route_is_set(u16 be_id, u16 fe_id)
2033{
2034 bool rc = false;
2035
2036 if (!is_mm_lsm_fe_id(fe_id)) {
2037 /* recheck FE ID in the mixer control defined in this file */
2038 pr_err("%s: bad MM ID\n", __func__);
2039 return rc;
2040 }
2041
2042 if (test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0]))
2043 rc = true;
2044
2045 return rc;
2046}
2047
2048static void msm_pcm_routing_process_audio(u16 reg, u16 val, int set)
2049{
2050 int session_type, path_type, topology;
2051 u32 channels, sample_rate;
Prasad Kumpatla6db89c72019-09-24 14:51:22 +05302052 uint16_t bits_per_sample = 16, be_bit_width;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302053 struct msm_pcm_routing_fdai_data *fdai;
2054 uint32_t passthr_mode;
2055 bool is_lsm;
2056
2057 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
2058
2059 if (!is_mm_lsm_fe_id(val)) {
2060 /* recheck FE ID in the mixer control defined in this file */
2061 pr_err("%s: bad MM ID\n", __func__);
2062 return;
2063 }
2064
2065 if (!route_check_fe_id_adm_support(val)) {
2066 /* ignore adm open if not supported for fe_id */
2067 pr_debug("%s: No ADM support for fe id %d\n", __func__, val);
Meng Wang6d8ecdd2019-04-11 11:06:47 +08002068 if (set)
2069 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2070 else
2071 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302072 return;
2073 }
2074
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05302075 session_type =
2076 (afe_get_port_type(msm_bedais[reg].port_id) == MSM_AFE_PORT_TYPE_RX) ?
2077 SESSION_TYPE_RX : SESSION_TYPE_TX;
2078 fdai = &fe_dai_map[val][session_type];
2079 passthr_mode = fdai->passthr_mode;
2080 if (session_type == SESSION_TYPE_RX) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302081 if (passthr_mode != LEGACY_PCM)
2082 path_type = ADM_PATH_COMPRESSED_RX;
2083 else
2084 path_type = ADM_PATH_PLAYBACK;
2085 } else {
Ralf Herzc8701f72018-06-20 11:37:35 +02002086 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302087 path_type = ADM_PATH_COMPRESSED_TX;
2088 else
2089 path_type = ADM_PATH_LIVE_REC;
2090 }
2091 is_lsm = (val >= MSM_FRONTEND_DAI_LSM1) &&
2092 (val <= MSM_FRONTEND_DAI_LSM8);
2093
2094 mutex_lock(&routing_lock);
2095 if (set) {
2096 if (!test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
2097 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
2098 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
2099 voc_start_playback(set, msm_bedais[reg].port_id);
2100
2101 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302102 if (msm_bedais[reg].active && fdai->strm_id !=
2103 INVALID_SESSION) {
2104 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05302105 int port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302106 /*
2107 * check if ADM needs to be configured with different
2108 * channel mapping than backend
2109 */
2110 if (!msm_bedais[reg].adm_override_ch)
2111 channels = msm_bedais[reg].channel;
2112 else
2113 channels = msm_bedais[reg].adm_override_ch;
2114 if (session_type == SESSION_TYPE_TX &&
2115 fdai->be_srate &&
2116 (fdai->be_srate != msm_bedais[reg].sample_rate)) {
2117 pr_debug("%s: flush strm %d diff BE rates\n",
2118 __func__, fdai->strm_id);
2119
2120 if (fdai->event_info.event_func)
2121 fdai->event_info.event_func(
2122 MSM_PCM_RT_EVT_BUF_RECFG,
2123 fdai->event_info.priv_data);
2124 fdai->be_srate = 0; /* might not need it */
2125 }
2126
2127 bits_per_sample = msm_routing_get_bit_width(
2128 msm_bedais[reg].format);
2129
2130 app_type =
2131 fe_dai_app_type_cfg[val][session_type][reg].app_type;
2132 if (app_type && is_lsm) {
2133 app_type_idx =
2134 msm_pcm_routing_get_lsm_app_type_idx(app_type);
2135 sample_rate =
2136 fe_dai_app_type_cfg[val][session_type][reg]
2137 .sample_rate;
2138 bits_per_sample =
2139 lsm_app_type_cfg[app_type_idx].bit_width;
2140 } else if (app_type) {
2141 app_type_idx =
2142 msm_pcm_routing_get_app_type_idx(app_type);
2143 sample_rate =
2144 fe_dai_app_type_cfg[val][session_type][reg]
2145 .sample_rate;
2146 bits_per_sample =
2147 app_type_cfg[app_type_idx].bit_width;
2148 } else
2149 sample_rate = msm_bedais[reg].sample_rate;
2150
2151 topology = msm_routing_get_adm_topology(val,
2152 session_type,
2153 reg);
2154 acdb_dev_id =
2155 fe_dai_app_type_cfg[val][session_type][reg].acdb_dev_id;
Prasad Kumpatla6db89c72019-09-24 14:51:22 +05302156
2157 be_bit_width = msm_routing_get_bit_width(
2158 msm_bedais[reg].format);
2159 if (hifi_filter_enabled && (msm_bedais[reg].sample_rate
2160 == 384000 ||msm_bedais[reg].sample_rate ==
2161 352800) && be_bit_width == 32)
Ramlal Karrab6ef9e02019-08-14 17:53:29 +05302162 bits_per_sample = msm_routing_get_bit_width(
2163 SNDRV_PCM_FORMAT_S32_LE);
Surendar Karkae7507512018-07-20 15:46:54 +05302164 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302165 sample_rate, channels, topology,
2166 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +05302167 app_type, acdb_dev_id,
2168 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302169 if ((copp_idx < 0) ||
2170 (copp_idx >= MAX_COPPS_PER_PORT)) {
2171 pr_err("%s: adm open failed\n", __func__);
2172 mutex_unlock(&routing_lock);
2173 return;
2174 }
2175 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
2176 __func__, val, session_type, reg);
2177 set_bit(copp_idx,
2178 &session_copp_map[val][session_type][reg]);
2179
2180 if (msm_is_resample_needed(
2181 sample_rate,
2182 msm_bedais[reg].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05302183 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302184 msm_bedais[reg].sample_rate);
2185
2186 if (session_type == SESSION_TYPE_RX &&
2187 fdai->event_info.event_func)
2188 fdai->event_info.event_func(
2189 MSM_PCM_RT_EVT_DEVSWITCH,
2190 fdai->event_info.priv_data);
2191
2192 msm_pcm_routing_build_matrix(val, session_type,
2193 path_type,
2194 fdai->perf_mode,
2195 passthr_mode);
2196 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
2197 (passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05302198 msm_pcm_routing_cfg_pp(port_id, copp_idx,
2199 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302200 }
2201 } else {
2202 if (test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
2203 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
2204 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
2205 voc_start_playback(set, msm_bedais[reg].port_id);
2206 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302207 if (msm_bedais[reg].active && fdai->strm_id !=
2208 INVALID_SESSION) {
2209 int idx;
2210 int port_id;
2211 unsigned long copp =
2212 session_copp_map[val][session_type][reg];
2213 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
2214 if (test_bit(idx, &copp))
2215 break;
2216
Vignesh Kulothungane59d3152018-10-10 14:19:59 -07002217 if (idx >= MAX_COPPS_PER_PORT) {
2218 pr_debug("%s: copp idx is invalid, exiting\n",
2219 __func__);
2220 mutex_unlock(&routing_lock);
2221 return;
2222 }
Surendar Karkae7507512018-07-20 15:46:54 +05302223 port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302224 topology = adm_get_topology_for_port_copp_idx(port_id,
2225 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07002226 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +05302227 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302228 pr_debug("%s: copp: %ld, reset idx bit fe:%d, type: %d, be:%d topology=0x%x\n",
2229 __func__, copp, val, session_type, reg,
2230 topology);
2231 clear_bit(idx,
2232 &session_copp_map[val][session_type][reg]);
2233 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
2234 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
2235 (fdai->perf_mode == LEGACY_PCM_MODE) &&
2236 (passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05302237 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302238 msm_pcm_routing_build_matrix(val, session_type,
2239 path_type,
2240 fdai->perf_mode,
2241 passthr_mode);
2242 }
2243 }
2244 if ((msm_bedais[reg].port_id == VOICE_RECORD_RX)
2245 || (msm_bedais[reg].port_id == VOICE_RECORD_TX))
2246 voc_start_record(msm_bedais[reg].port_id, set, voc_session_id);
2247
2248 mutex_unlock(&routing_lock);
2249}
2250
2251static int msm_routing_get_audio_mixer(struct snd_kcontrol *kcontrol,
2252 struct snd_ctl_elem_value *ucontrol)
2253{
2254 struct soc_mixer_control *mc =
2255 (struct soc_mixer_control *)kcontrol->private_value;
2256
Meng Wang05d5e9a2018-03-28 16:45:03 +08002257 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302258 ucontrol->value.integer.value[0] = 1;
2259 else
2260 ucontrol->value.integer.value[0] = 0;
2261
Meng Wang05d5e9a2018-03-28 16:45:03 +08002262 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302263 ucontrol->value.integer.value[0]);
2264
2265 return 0;
2266}
2267
2268static int msm_routing_put_audio_mixer(struct snd_kcontrol *kcontrol,
2269 struct snd_ctl_elem_value *ucontrol)
2270{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302271 struct snd_soc_dapm_widget *widget =
2272 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302273 struct soc_mixer_control *mc =
2274 (struct soc_mixer_control *)kcontrol->private_value;
2275 struct snd_soc_dapm_update *update = NULL;
2276
2277 if (ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08002278 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false) {
2279 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302280 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2281 update);
2282 } else if (!ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08002283 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true) {
2284 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302285 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2286 update);
2287 }
2288
2289 return 1;
2290}
2291
2292static int msm_routing_get_listen_mixer(struct snd_kcontrol *kcontrol,
2293 struct snd_ctl_elem_value *ucontrol)
2294{
2295 struct soc_mixer_control *mc =
2296 (struct soc_mixer_control *)kcontrol->private_value;
2297
Meng Wang05d5e9a2018-03-28 16:45:03 +08002298 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302299 ucontrol->value.integer.value[0] = 1;
2300 else
2301 ucontrol->value.integer.value[0] = 0;
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 return 0;
2307}
2308
2309static int msm_routing_put_listen_mixer(struct snd_kcontrol *kcontrol,
2310 struct snd_ctl_elem_value *ucontrol)
2311{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302312 struct snd_soc_dapm_widget *widget =
2313 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302314 struct soc_mixer_control *mc =
2315 (struct soc_mixer_control *)kcontrol->private_value;
2316 struct snd_soc_dapm_update *update = NULL;
2317
Meng Wang05d5e9a2018-03-28 16:45:03 +08002318 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302319 ucontrol->value.integer.value[0]);
2320
2321 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002322 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false)
2323 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302324 snd_soc_dapm_mixer_update_power(widget->dapm,
2325 kcontrol, 1, update);
2326 } else if (!ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002327 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true)
2328 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302329 snd_soc_dapm_mixer_update_power(widget->dapm,
2330 kcontrol, 0, update);
2331 }
2332
2333 return 1;
2334}
2335
2336static void msm_pcm_routing_process_voice(u16 reg, u16 val, int set)
2337{
2338 u32 session_id = 0;
2339 u16 path_type;
2340 struct media_format_info voc_be_media_format;
2341
2342 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
2343
2344 session_id = msm_pcm_routing_get_voc_sessionid(val);
2345
2346 pr_debug("%s: FE DAI 0x%x session_id 0x%x\n",
2347 __func__, val, session_id);
2348
2349 mutex_lock(&routing_lock);
2350
2351 if (set)
2352 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2353 else
2354 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
2355
2356 if (val == MSM_FRONTEND_DAI_DTMF_RX &&
2357 afe_get_port_type(msm_bedais[reg].port_id) ==
2358 MSM_AFE_PORT_TYPE_RX) {
2359 pr_debug("%s(): set=%d port id=0x%x for dtmf generation\n",
2360 __func__, set, msm_bedais[reg].port_id);
2361 afe_set_dtmf_gen_rx_portid(msm_bedais[reg].port_id, set);
2362 }
2363
2364 if (afe_get_port_type(msm_bedais[reg].port_id) ==
2365 MSM_AFE_PORT_TYPE_RX)
2366 path_type = RX_PATH;
2367 else
2368 path_type = TX_PATH;
2369
2370 if (set) {
2371 if (msm_bedais[reg].active) {
2372 voc_set_route_flag(session_id, path_type, 1);
2373
2374 memset(&voc_be_media_format, 0,
2375 sizeof(struct media_format_info));
2376
2377 voc_be_media_format.port_id = msm_bedais[reg].port_id;
2378 voc_be_media_format.num_channels =
2379 msm_bedais[reg].channel;
2380 voc_be_media_format.sample_rate =
2381 msm_bedais[reg].sample_rate;
2382 voc_be_media_format.bits_per_sample =
2383 msm_bedais[reg].format;
2384 /* Defaulting this to 1 for voice call usecases */
2385 voc_be_media_format.channel_mapping[0] = 1;
2386
2387 voc_set_device_config(session_id, path_type,
2388 &voc_be_media_format);
2389
2390 if (voc_get_route_flag(session_id, TX_PATH) &&
2391 voc_get_route_flag(session_id, RX_PATH))
2392 voc_enable_device(session_id);
2393 } else {
2394 pr_debug("%s BE is not active\n", __func__);
2395 }
2396 } else {
2397 voc_set_route_flag(session_id, path_type, 0);
2398 voc_disable_device(session_id);
2399 }
2400
2401 mutex_unlock(&routing_lock);
2402
2403}
2404
2405static int msm_routing_get_voice_mixer(struct snd_kcontrol *kcontrol,
2406 struct snd_ctl_elem_value *ucontrol)
2407{
2408 struct soc_mixer_control *mc =
2409 (struct soc_mixer_control *)kcontrol->private_value;
2410
2411 mutex_lock(&routing_lock);
2412
Meng Wang05d5e9a2018-03-28 16:45:03 +08002413 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302414 ucontrol->value.integer.value[0] = 1;
2415 else
2416 ucontrol->value.integer.value[0] = 0;
2417
2418 mutex_unlock(&routing_lock);
2419
Meng Wang05d5e9a2018-03-28 16:45:03 +08002420 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302421 ucontrol->value.integer.value[0]);
2422
2423 return 0;
2424}
2425
2426static int msm_routing_put_voice_mixer(struct snd_kcontrol *kcontrol,
2427 struct snd_ctl_elem_value *ucontrol)
2428{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302429 struct snd_soc_dapm_widget *widget =
2430 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302431 struct soc_mixer_control *mc =
2432 (struct soc_mixer_control *)kcontrol->private_value;
2433 struct snd_soc_dapm_update *update = NULL;
2434
2435 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002436 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302437 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2438 update);
2439 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002440 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302441 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2442 update);
2443 }
2444
2445 return 1;
2446}
2447
2448static int msm_routing_get_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2449 struct snd_ctl_elem_value *ucontrol)
2450{
2451 struct soc_mixer_control *mc =
2452 (struct soc_mixer_control *)kcontrol->private_value;
2453
2454 mutex_lock(&routing_lock);
2455
Meng Wang05d5e9a2018-03-28 16:45:03 +08002456 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302457 ucontrol->value.integer.value[0] = 1;
2458 else
2459 ucontrol->value.integer.value[0] = 0;
2460
2461 mutex_unlock(&routing_lock);
2462
Meng Wang05d5e9a2018-03-28 16:45:03 +08002463 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302464 ucontrol->value.integer.value[0]);
2465
2466 return 0;
2467}
2468
2469static int msm_routing_put_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2470 struct snd_ctl_elem_value *ucontrol)
2471{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302472 struct snd_soc_dapm_widget *widget =
2473 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302474 struct soc_mixer_control *mc =
2475 (struct soc_mixer_control *)kcontrol->private_value;
2476 struct snd_soc_dapm_update *update = NULL;
2477
2478 if (ucontrol->value.integer.value[0]) {
2479 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002480 set_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302481 mutex_unlock(&routing_lock);
2482
2483 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2484 update);
2485 } else {
2486 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002487 clear_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302488 mutex_unlock(&routing_lock);
2489
2490 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2491 update);
2492 }
2493
Meng Wang05d5e9a2018-03-28 16:45:03 +08002494 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302495 ucontrol->value.integer.value[0]);
2496
2497 return 1;
2498}
2499
2500/*
2501 * Return the mapping between port ID and backend ID to enable the AFE callback
2502 * to determine the acdb_dev_id from the port id
2503 */
2504int msm_pcm_get_be_id_from_port_id(int port_id)
2505{
2506 int i;
2507 int be_id = -EINVAL;
2508
2509 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
2510 if (msm_bedais[i].port_id == port_id) {
2511 be_id = i;
2512 break;
2513 }
2514 }
2515
2516 return be_id;
2517}
2518
2519/*
2520 * Return the registered dev_acdb_id given a port ID to enable identifying the
2521 * correct AFE calibration information by comparing the header information.
2522 */
2523static int msm_pcm_get_dev_acdb_id_by_port_id(int port_id)
2524{
2525 int acdb_id = -EINVAL;
2526 int i = 0;
2527 int session;
2528 int port_type = afe_get_port_type(port_id);
2529 int be_id = msm_pcm_get_be_id_from_port_id(port_id);
2530
2531 pr_debug("%s:port_id %d be_id %d, port_type 0x%x\n",
2532 __func__, port_id, be_id, port_type);
2533
2534 if (port_type == MSM_AFE_PORT_TYPE_TX) {
2535 session = SESSION_TYPE_TX;
2536 } else if (port_type == MSM_AFE_PORT_TYPE_RX) {
2537 session = SESSION_TYPE_RX;
2538 } else {
2539 pr_err("%s: Invalid port type %d\n", __func__, port_type);
2540 acdb_id = -EINVAL;
2541 goto exit;
2542 }
2543
2544 if (be_id < 0) {
2545 pr_err("%s: Error getting backend id %d\n", __func__, be_id);
2546 goto exit;
2547 }
2548
2549 mutex_lock(&routing_lock);
2550 i = find_first_bit(&msm_bedais[be_id].fe_sessions[0],
2551 MSM_FRONTEND_DAI_MAX);
2552 if (i < MSM_FRONTEND_DAI_MAX)
2553 acdb_id = fe_dai_app_type_cfg[i][session][be_id].acdb_dev_id;
2554
2555 pr_debug("%s: FE[%d] session[%d] BE[%d] acdb_id(%d)\n",
2556 __func__, i, session, be_id, acdb_id);
2557 mutex_unlock(&routing_lock);
2558exit:
2559 return acdb_id;
2560}
2561
2562static int msm_routing_get_switch_mixer(struct snd_kcontrol *kcontrol,
2563 struct snd_ctl_elem_value *ucontrol)
2564{
2565 ucontrol->value.integer.value[0] = fm_switch_enable;
2566 pr_debug("%s: FM Switch enable %ld\n", __func__,
2567 ucontrol->value.integer.value[0]);
2568 return 0;
2569}
2570
2571static int msm_routing_put_switch_mixer(struct snd_kcontrol *kcontrol,
2572 struct snd_ctl_elem_value *ucontrol)
2573{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302574 struct snd_soc_dapm_widget *widget =
2575 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302576 struct snd_soc_dapm_update *update = NULL;
2577
2578 pr_debug("%s: FM Switch enable %ld\n", __func__,
2579 ucontrol->value.integer.value[0]);
2580 if (ucontrol->value.integer.value[0])
2581 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2582 update);
2583 else
2584 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2585 update);
2586 fm_switch_enable = ucontrol->value.integer.value[0];
2587 return 1;
2588}
2589
2590static int msm_routing_get_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2591 struct snd_ctl_elem_value *ucontrol)
2592{
2593 ucontrol->value.integer.value[0] = hfp_switch_enable;
2594 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2595 ucontrol->value.integer.value[0]);
2596 return 0;
2597}
2598
2599static int msm_routing_put_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2600 struct snd_ctl_elem_value *ucontrol)
2601{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302602 struct snd_soc_dapm_widget *widget =
2603 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302604 struct snd_soc_dapm_update *update = NULL;
2605
2606 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2607 ucontrol->value.integer.value[0]);
2608 if (ucontrol->value.integer.value[0])
2609 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2610 1, update);
2611 else
2612 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2613 0, update);
2614 hfp_switch_enable = ucontrol->value.integer.value[0];
2615 return 1;
2616}
2617
Aniket Kumar Latac0c31472018-02-22 14:46:09 -08002618static int msm_routing_a2dp_switch_mixer_get(struct snd_kcontrol *kcontrol,
2619 struct snd_ctl_elem_value *ucontrol)
2620{
2621 ucontrol->value.integer.value[0] = a2dp_switch_enable;
2622 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2623 ucontrol->value.integer.value[0]);
2624 return 0;
2625}
2626
2627static int msm_routing_a2dp_switch_mixer_put(struct snd_kcontrol *kcontrol,
2628 struct snd_ctl_elem_value *ucontrol)
2629{
2630 struct snd_soc_dapm_widget *widget =
2631 snd_soc_dapm_kcontrol_widget(kcontrol);
2632 struct snd_soc_dapm_update *update = NULL;
2633
2634 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2635 ucontrol->value.integer.value[0]);
2636 a2dp_switch_enable = ucontrol->value.integer.value[0];
2637 if (a2dp_switch_enable)
2638 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2639 1, update);
2640 else
2641 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2642 0, update);
2643 return 1;
2644}
2645
Zhou Songcaa541d2019-02-19 18:37:47 +08002646static int msm_routing_sco_switch_mixer_get(struct snd_kcontrol *kcontrol,
2647 struct snd_ctl_elem_value *ucontrol)
2648{
2649 ucontrol->value.integer.value[0] = sco_switch_enable;
2650 pr_debug("%s: SCO Switch enable %ld\n", __func__,
2651 ucontrol->value.integer.value[0]);
2652 return 0;
2653}
2654
2655static int msm_routing_sco_switch_mixer_put(struct snd_kcontrol *kcontrol,
2656 struct snd_ctl_elem_value *ucontrol)
2657{
2658 struct snd_soc_dapm_widget *widget =
2659 snd_soc_dapm_kcontrol_widget(kcontrol);
2660 struct snd_soc_dapm_update *update = NULL;
2661
2662 pr_debug("%s: SCO Switch enable %ld\n", __func__,
2663 ucontrol->value.integer.value[0]);
2664 sco_switch_enable = ucontrol->value.integer.value[0];
2665 if (sco_switch_enable)
2666 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2667 1, update);
2668 else
2669 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2670 0, update);
2671 return 1;
2672}
2673
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302674static int msm_routing_get_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2675 struct snd_ctl_elem_value *ucontrol)
2676{
2677 ucontrol->value.integer.value[0] = int0_mi2s_switch_enable;
2678 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2679 ucontrol->value.integer.value[0]);
2680 return 0;
2681}
2682
2683static int msm_routing_put_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2684 struct snd_ctl_elem_value *ucontrol)
2685{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302686 struct snd_soc_dapm_widget *widget =
2687 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302688 struct snd_soc_dapm_update *update = NULL;
2689
2690 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2691 ucontrol->value.integer.value[0]);
2692 if (ucontrol->value.integer.value[0])
2693 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2694 update);
2695 else
2696 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2697 update);
2698 int0_mi2s_switch_enable = ucontrol->value.integer.value[0];
2699 return 1;
2700}
2701
2702static int msm_routing_get_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2703 struct snd_ctl_elem_value *ucontrol)
2704{
2705 ucontrol->value.integer.value[0] = int4_mi2s_switch_enable;
2706 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2707 ucontrol->value.integer.value[0]);
2708 return 0;
2709}
2710
2711static int msm_routing_put_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2712 struct snd_ctl_elem_value *ucontrol)
2713{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302714 struct snd_soc_dapm_widget *widget =
2715 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302716 struct snd_soc_dapm_update *update = NULL;
2717
2718 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2719 ucontrol->value.integer.value[0]);
2720 if (ucontrol->value.integer.value[0])
2721 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2722 update);
2723 else
2724 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2725 update);
2726 int4_mi2s_switch_enable = ucontrol->value.integer.value[0];
2727 return 1;
2728}
2729
2730static int msm_routing_get_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2731 struct snd_ctl_elem_value *ucontrol)
2732{
2733 ucontrol->value.integer.value[0] = usb_switch_enable;
2734 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2735 ucontrol->value.integer.value[0]);
2736 return 0;
2737}
2738
2739static int msm_routing_put_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2740 struct snd_ctl_elem_value *ucontrol)
2741{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302742 struct snd_soc_dapm_widget *widget =
2743 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302744 struct snd_soc_dapm_update *update = NULL;
2745
2746 pr_debug("%s: USB Switch enable %ld\n", __func__,
2747 ucontrol->value.integer.value[0]);
2748 if (ucontrol->value.integer.value[0])
2749 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2750 1, update);
2751 else
2752 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2753 0, update);
2754 usb_switch_enable = ucontrol->value.integer.value[0];
2755 return 1;
2756}
2757
2758static int msm_routing_get_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2759 struct snd_ctl_elem_value *ucontrol)
2760{
2761 ucontrol->value.integer.value[0] = pri_mi2s_switch_enable;
2762 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2763 ucontrol->value.integer.value[0]);
2764 return 0;
2765}
2766
2767static int msm_routing_put_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2768 struct snd_ctl_elem_value *ucontrol)
2769{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302770 struct snd_soc_dapm_widget *widget =
2771 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302772 struct snd_soc_dapm_update *update = NULL;
2773
2774 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2775 ucontrol->value.integer.value[0]);
2776 if (ucontrol->value.integer.value[0])
2777 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2778 update);
2779 else
2780 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2781 update);
2782 pri_mi2s_switch_enable = ucontrol->value.integer.value[0];
2783 return 1;
2784}
2785
2786static int msm_routing_get_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2787 struct snd_ctl_elem_value *ucontrol)
2788{
2789 ucontrol->value.integer.value[0] = sec_mi2s_switch_enable;
2790 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2791 ucontrol->value.integer.value[0]);
2792 return 0;
2793}
2794
2795static int msm_routing_put_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2796 struct snd_ctl_elem_value *ucontrol)
2797{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302798 struct snd_soc_dapm_widget *widget =
2799 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302800 struct snd_soc_dapm_update *update = NULL;
2801
2802 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2803 ucontrol->value.integer.value[0]);
2804 if (ucontrol->value.integer.value[0])
2805 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2806 update);
2807 else
2808 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2809 update);
2810 sec_mi2s_switch_enable = ucontrol->value.integer.value[0];
2811 return 1;
2812}
2813
2814static int msm_routing_get_tert_mi2s_switch_mixer(
2815 struct snd_kcontrol *kcontrol,
2816 struct snd_ctl_elem_value *ucontrol)
2817{
2818 ucontrol->value.integer.value[0] = tert_mi2s_switch_enable;
2819 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2820 ucontrol->value.integer.value[0]);
2821 return 0;
2822}
2823
2824static int msm_routing_put_tert_mi2s_switch_mixer(
2825 struct snd_kcontrol *kcontrol,
2826 struct snd_ctl_elem_value *ucontrol)
2827{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302828 struct snd_soc_dapm_widget *widget =
2829 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302830 struct snd_soc_dapm_update *update = NULL;
2831
2832 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2833 ucontrol->value.integer.value[0]);
2834 if (ucontrol->value.integer.value[0])
2835 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2836 update);
2837 else
2838 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2839 update);
2840 tert_mi2s_switch_enable = ucontrol->value.integer.value[0];
2841 return 1;
2842}
2843
2844static int msm_routing_get_quat_mi2s_switch_mixer(
2845 struct snd_kcontrol *kcontrol,
2846 struct snd_ctl_elem_value *ucontrol)
2847{
2848 ucontrol->value.integer.value[0] = quat_mi2s_switch_enable;
2849 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2850 ucontrol->value.integer.value[0]);
2851 return 0;
2852}
2853
2854static int msm_routing_put_quat_mi2s_switch_mixer(
2855 struct snd_kcontrol *kcontrol,
2856 struct snd_ctl_elem_value *ucontrol)
2857{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302858 struct snd_soc_dapm_widget *widget =
2859 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302860 struct snd_soc_dapm_update *update = NULL;
2861
2862 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2863 ucontrol->value.integer.value[0]);
2864 if (ucontrol->value.integer.value[0])
2865 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2866 update);
2867 else
2868 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2869 update);
2870 quat_mi2s_switch_enable = ucontrol->value.integer.value[0];
2871 return 1;
2872}
2873
Rohit Kumara5077932017-09-10 22:05:05 +05302874static int msm_routing_get_quin_mi2s_switch_mixer(
2875 struct snd_kcontrol *kcontrol,
2876 struct snd_ctl_elem_value *ucontrol)
2877{
2878 ucontrol->value.integer.value[0] = quin_mi2s_switch_enable;
2879 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2880 ucontrol->value.integer.value[0]);
2881 return 0;
2882}
2883
2884static int msm_routing_put_quin_mi2s_switch_mixer(
2885 struct snd_kcontrol *kcontrol,
2886 struct snd_ctl_elem_value *ucontrol)
2887{
2888 struct snd_soc_dapm_widget *widget =
2889 snd_soc_dapm_kcontrol_widget(kcontrol);
2890 struct snd_soc_dapm_update *update = NULL;
2891
2892 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2893 ucontrol->value.integer.value[0]);
2894 if (ucontrol->value.integer.value[0])
2895 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2896 update);
2897 else
2898 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2899 update);
2900 quin_mi2s_switch_enable = ucontrol->value.integer.value[0];
2901 return 1;
2902}
2903
Karthikeyan Manic3700752019-03-11 18:33:53 -07002904static int msm_routing_get_sen_mi2s_switch_mixer(
2905 struct snd_kcontrol *kcontrol,
2906 struct snd_ctl_elem_value *ucontrol)
2907{
2908 ucontrol->value.integer.value[0] = sen_mi2s_switch_enable;
2909 pr_debug("%s: SEN MI2S Switch enable %ld\n", __func__,
2910 ucontrol->value.integer.value[0]);
2911 return 0;
2912}
2913
2914static int msm_routing_put_sen_mi2s_switch_mixer(
2915 struct snd_kcontrol *kcontrol,
2916 struct snd_ctl_elem_value *ucontrol)
2917{
2918 struct snd_soc_dapm_widget *widget =
2919 snd_soc_dapm_kcontrol_widget(kcontrol);
2920 struct snd_soc_dapm_update *update = NULL;
2921
2922 pr_debug("%s: SEN MI2S Switch enable %ld\n", __func__,
2923 ucontrol->value.integer.value[0]);
2924 if (ucontrol->value.integer.value[0])
2925 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2926 update);
2927 else
2928 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2929 update);
2930 sen_mi2s_switch_enable = ucontrol->value.integer.value[0];
2931 return 1;
2932}
2933
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302934static int msm_routing_get_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2935 struct snd_ctl_elem_value *ucontrol)
2936{
2937 ucontrol->value.integer.value[0] = fm_pcmrx_switch_enable;
2938 pr_debug("%s: FM Switch enable %ld\n", __func__,
2939 ucontrol->value.integer.value[0]);
2940 return 0;
2941}
2942
2943static int msm_routing_put_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2944 struct snd_ctl_elem_value *ucontrol)
2945{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302946 struct snd_soc_dapm_widget *widget =
2947 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302948 struct snd_soc_dapm_update *update = NULL;
2949
2950 pr_debug("%s: FM Switch enable %ld\n", __func__,
2951 ucontrol->value.integer.value[0]);
2952 if (ucontrol->value.integer.value[0])
2953 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2954 update);
2955 else
2956 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2957 update);
2958 fm_pcmrx_switch_enable = ucontrol->value.integer.value[0];
2959 return 1;
2960}
2961
2962static int msm_routing_lsm_port_get(struct snd_kcontrol *kcontrol,
2963 struct snd_ctl_elem_value *ucontrol)
2964{
2965 ucontrol->value.integer.value[0] = lsm_port_index;
2966 return 0;
2967}
2968
2969static int msm_routing_lsm_port_put(struct snd_kcontrol *kcontrol,
2970 struct snd_ctl_elem_value *ucontrol)
2971{
2972 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
2973 int mux = ucontrol->value.enumerated.item[0];
2974 int lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2975
2976 if (mux >= e->items) {
2977 pr_err("%s: Invalid mux value %d\n", __func__, mux);
2978 return -EINVAL;
2979 }
2980
2981 pr_debug("%s: LSM enable %ld\n", __func__,
2982 ucontrol->value.integer.value[0]);
2983 switch (ucontrol->value.integer.value[0]) {
2984 case 1:
2985 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_0_TX;
2986 break;
2987 case 2:
2988 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_1_TX;
2989 break;
2990 case 3:
2991 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_2_TX;
2992 break;
2993 case 4:
2994 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_3_TX;
2995 break;
2996 case 5:
2997 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_4_TX;
2998 break;
2999 case 6:
3000 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
3001 break;
3002 case 7:
3003 lsm_port = AFE_PORT_ID_TERTIARY_MI2S_TX;
3004 break;
3005 case 8:
3006 lsm_port = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3007 break;
3008 case 9:
3009 lsm_port = ADM_LSM_PORT_ID;
3010 break;
3011 case 10:
3012 lsm_port = AFE_PORT_ID_INT3_MI2S_TX;
3013 break;
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +05303014 case 11:
3015 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
3016 break;
3017 case 12:
3018 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_1;
3019 break;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05303020 case 13:
Xiaoyu Yef439aed2019-01-02 16:40:01 -08003021 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_2;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05303022 break;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303023 case 14:
Xiaoyu Yef439aed2019-01-02 16:40:01 -08003024 lsm_port = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
3025 break;
3026 case 15:
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303027 lsm_port = AFE_PORT_ID_QUINARY_TDM_TX;
3028 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303029 default:
3030 pr_err("Default lsm port");
3031 break;
3032 }
3033 set_lsm_port(lsm_port);
3034 lsm_port_index = ucontrol->value.integer.value[0];
3035
3036 return 0;
3037}
3038
3039static int msm_routing_lsm_func_get(struct snd_kcontrol *kcontrol,
3040 struct snd_ctl_elem_value *ucontrol)
3041{
3042 int i;
3043 u16 port_id;
3044 enum afe_mad_type mad_type;
3045
3046 pr_debug("%s: enter\n", __func__);
3047 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
3048 if (!strnstr(kcontrol->id.name, lsm_port_text[i],
3049 strlen(lsm_port_text[i])))
3050 break;
3051
3052 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003053 pr_warn("%s: Invalid id name %s\n", __func__,
3054 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303055 return -EINVAL;
3056 }
3057
3058 port_id = i * 2 + 1 + SLIMBUS_0_RX;
3059
3060 /*Check for Tertiary/Quaternary/INT3 TX port*/
3061 if (strnstr(kcontrol->id.name, lsm_port_text[7],
3062 strlen(lsm_port_text[7])))
3063 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3064
3065 if (strnstr(kcontrol->id.name, lsm_port_text[8],
3066 strlen(lsm_port_text[8])))
3067 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3068
3069 if (strnstr(kcontrol->id.name, lsm_port_text[10],
3070 strlen(lsm_port_text[10])))
3071 port_id = AFE_PORT_ID_INT3_MI2S_TX;
3072
Aditya Bavanarie9454c62018-08-23 23:45:20 +05303073 if (strnstr(kcontrol->id.name, lsm_port_text[13],
3074 strlen(lsm_port_text[13])))
3075 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
3076
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303077 if (strnstr(kcontrol->id.name, lsm_port_text[14],
3078 strlen(lsm_port_text[14])))
3079 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
3080
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303081 mad_type = afe_port_get_mad_type(port_id);
3082 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
3083 mad_type);
3084 switch (mad_type) {
3085 case MAD_HW_NONE:
3086 ucontrol->value.integer.value[0] = MADNONE;
3087 break;
3088 case MAD_HW_AUDIO:
3089 ucontrol->value.integer.value[0] = MADAUDIO;
3090 break;
3091 case MAD_HW_BEACON:
3092 ucontrol->value.integer.value[0] = MADBEACON;
3093 break;
3094 case MAD_HW_ULTRASOUND:
3095 ucontrol->value.integer.value[0] = MADULTRASOUND;
3096 break;
3097 case MAD_SW_AUDIO:
3098 ucontrol->value.integer.value[0] = MADSWAUDIO;
3099 break;
3100 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003101 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303102 return -EINVAL;
3103 }
3104 return 0;
3105}
3106
3107static int msm_routing_lsm_func_put(struct snd_kcontrol *kcontrol,
3108 struct snd_ctl_elem_value *ucontrol)
3109{
3110 int i;
3111 u16 port_id;
3112 enum afe_mad_type mad_type;
3113
3114 pr_debug("%s: enter\n", __func__);
3115 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
3116 if (strnstr(kcontrol->id.name, lsm_port_text[i],
3117 strlen(lsm_port_text[i])))
3118 break;
3119
3120 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003121 pr_warn("%s: Invalid id name %s\n", __func__,
3122 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303123 return -EINVAL;
3124 }
3125
3126 port_id = i * 2 + 1 + SLIMBUS_0_RX;
3127 switch (ucontrol->value.integer.value[0]) {
3128 case MADNONE:
3129 mad_type = MAD_HW_NONE;
3130 break;
3131 case MADAUDIO:
3132 mad_type = MAD_HW_AUDIO;
3133 break;
3134 case MADBEACON:
3135 mad_type = MAD_HW_BEACON;
3136 break;
3137 case MADULTRASOUND:
3138 mad_type = MAD_HW_ULTRASOUND;
3139 break;
3140 case MADSWAUDIO:
3141 mad_type = MAD_SW_AUDIO;
3142 break;
3143 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003144 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303145 return -EINVAL;
3146 }
3147
3148 /*Check for Tertiary/Quaternary/INT3 TX port*/
3149 if (strnstr(kcontrol->id.name, lsm_port_text[7],
3150 strlen(lsm_port_text[7])))
3151 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3152
3153 if (strnstr(kcontrol->id.name, lsm_port_text[8],
3154 strlen(lsm_port_text[8])))
3155 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3156
3157 if (strnstr(kcontrol->id.name, lsm_port_text[10],
3158 strlen(lsm_port_text[10])))
3159 port_id = AFE_PORT_ID_INT3_MI2S_TX;
3160
Aditya Bavanarie9454c62018-08-23 23:45:20 +05303161 if (strnstr(kcontrol->id.name, lsm_port_text[13],
3162 strlen(lsm_port_text[13])))
3163 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
3164
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303165 if (strnstr(kcontrol->id.name, lsm_port_text[14],
3166 strlen(lsm_port_text[14])))
3167 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
3168
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303169 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
3170 mad_type);
3171 return afe_port_set_mad_type(port_id, mad_type);
3172}
3173
3174static const char *const adm_override_chs_text[] = {"Zero", "One", "Two"};
3175
Surendar Karka25e77dd2019-05-09 14:33:45 +05303176static SOC_ENUM_SINGLE_EXT_DECL(adm_override_chs,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303177 adm_override_chs_text);
3178
3179static int msm_routing_adm_get_backend_idx(struct snd_kcontrol *kcontrol)
3180{
3181 int backend_id;
3182
3183 if (strnstr(kcontrol->id.name, "SLIM7_RX", sizeof("SLIM7_RX"))) {
3184 backend_id = MSM_BACKEND_DAI_SLIMBUS_7_RX;
Surendar Karka25e77dd2019-05-09 14:33:45 +05303185 } else if (strnstr(kcontrol->id.name, "SLIM9_TX", sizeof("SLIM9_TX"))) {
3186 backend_id = MSM_BACKEND_DAI_SLIMBUS_9_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303187 } else {
3188 pr_err("%s: unsupported backend id: %s",
3189 __func__, kcontrol->id.name);
3190 return -EINVAL;
3191 }
3192
3193 return backend_id;
3194}
Surendar Karka25e77dd2019-05-09 14:33:45 +05303195
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303196static int msm_routing_adm_channel_config_get(
3197 struct snd_kcontrol *kcontrol,
3198 struct snd_ctl_elem_value *ucontrol)
3199{
3200 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
3201
3202 if (backend_id >= 0) {
3203 mutex_lock(&routing_lock);
3204 ucontrol->value.integer.value[0] =
3205 msm_bedais[backend_id].adm_override_ch;
3206 pr_debug("%s: adm channel count %ld for BE:%d\n", __func__,
3207 ucontrol->value.integer.value[0], backend_id);
3208 mutex_unlock(&routing_lock);
3209 }
3210
3211 return 0;
3212}
3213
3214static int msm_routing_adm_channel_config_put(
3215 struct snd_kcontrol *kcontrol,
3216 struct snd_ctl_elem_value *ucontrol)
3217{
3218 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
3219
3220 if (backend_id >= 0) {
3221 mutex_lock(&routing_lock);
3222 msm_bedais[backend_id].adm_override_ch =
3223 ucontrol->value.integer.value[0];
3224 pr_debug("%s:updating BE :%d adm channels: %d\n",
3225 __func__, backend_id,
3226 msm_bedais[backend_id].adm_override_ch);
3227 mutex_unlock(&routing_lock);
3228 }
3229
3230 return 0;
3231}
3232
3233static const struct snd_kcontrol_new adm_channel_config_controls[] = {
Surendar Karka25e77dd2019-05-09 14:33:45 +05303234 SOC_ENUM_EXT("SLIM7_RX ADM Channels", adm_override_chs,
3235 msm_routing_adm_channel_config_get,
3236 msm_routing_adm_channel_config_put),
3237 SOC_ENUM_EXT("SLIM9_TX ADM Channels", adm_override_chs,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303238 msm_routing_adm_channel_config_get,
3239 msm_routing_adm_channel_config_put),
3240};
3241
3242static int msm_routing_slim_0_rx_aanc_mux_get(struct snd_kcontrol *kcontrol,
3243 struct snd_ctl_elem_value *ucontrol)
3244{
3245
3246 mutex_lock(&routing_lock);
3247 ucontrol->value.integer.value[0] = slim0_rx_aanc_fb_port;
3248 mutex_unlock(&routing_lock);
3249 pr_debug("%s: AANC Mux Port %ld\n", __func__,
3250 ucontrol->value.integer.value[0]);
3251 return 0;
3252};
3253
3254static int msm_routing_slim_0_rx_aanc_mux_put(struct snd_kcontrol *kcontrol,
3255 struct snd_ctl_elem_value *ucontrol)
3256{
3257 struct aanc_data aanc_info;
3258
3259 mutex_lock(&routing_lock);
3260 memset(&aanc_info, 0x00, sizeof(aanc_info));
3261 pr_debug("%s: AANC Mux Port %ld\n", __func__,
3262 ucontrol->value.integer.value[0]);
3263 slim0_rx_aanc_fb_port = ucontrol->value.integer.value[0];
3264 if (ucontrol->value.integer.value[0] == 0) {
3265 aanc_info.aanc_active = false;
3266 aanc_info.aanc_tx_port = 0;
3267 aanc_info.aanc_rx_port = 0;
3268 } else {
3269 aanc_info.aanc_active = true;
3270 aanc_info.aanc_rx_port = SLIMBUS_0_RX;
3271 aanc_info.aanc_tx_port =
3272 (SLIMBUS_0_RX - 1 + (slim0_rx_aanc_fb_port * 2));
3273 }
3274 afe_set_aanc_info(&aanc_info);
3275 mutex_unlock(&routing_lock);
3276 return 0;
3277};
3278static int msm_routing_get_port_mixer(struct snd_kcontrol *kcontrol,
3279 struct snd_ctl_elem_value *ucontrol)
3280{
3281 int idx = 0, shift = 0;
3282 struct soc_mixer_control *mc =
3283 (struct soc_mixer_control *)kcontrol->private_value;
3284
Meng Wang05d5e9a2018-03-28 16:45:03 +08003285 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
3286 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303287
3288 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
3289 pr_err("%s: Invalid idx = %d\n", __func__, idx);
3290 return -EINVAL;
3291 }
3292
3293 if (test_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003294 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303295 ucontrol->value.integer.value[0] = 1;
3296 else
3297 ucontrol->value.integer.value[0] = 0;
3298
Meng Wang05d5e9a2018-03-28 16:45:03 +08003299 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303300 ucontrol->value.integer.value[0]);
3301
3302 return 0;
3303}
3304
3305static int msm_routing_put_port_mixer(struct snd_kcontrol *kcontrol,
3306 struct snd_ctl_elem_value *ucontrol)
3307{
3308 int idx = 0, shift = 0;
3309 struct soc_mixer_control *mc =
3310 (struct soc_mixer_control *)kcontrol->private_value;
3311
Meng Wang05d5e9a2018-03-28 16:45:03 +08003312 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
3313 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303314
3315 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
3316 pr_err("%s: Invalid idx = %d\n", __func__, idx);
3317 return -EINVAL;
3318 }
3319
Meng Wang05d5e9a2018-03-28 16:45:03 +08003320 pr_debug("%s: shift 0x%x rshift 0x%x val %ld idx %d reminder shift %d\n",
3321 __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303322 ucontrol->value.integer.value[0], idx, shift);
3323
3324 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08003325 afe_loopback(1, msm_bedais[mc->shift].port_id,
3326 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303327 set_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003328 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303329 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08003330 afe_loopback(0, msm_bedais[mc->shift].port_id,
3331 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303332 clear_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003333 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303334 }
3335
3336 return 1;
3337}
3338
3339static int msm_pcm_get_channel_rule_index(struct snd_kcontrol *kcontrol,
3340 struct snd_ctl_elem_value *ucontrol)
3341{
3342 u16 fe_id = 0;
3343
3344 fe_id = ((struct soc_mixer_control *)
3345 kcontrol->private_value)->shift;
3346 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3347 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3348 return -EINVAL;
3349 }
3350
3351 ucontrol->value.integer.value[0] = channel_mixer[fe_id].rule;
3352
3353 return 0;
3354}
3355
3356static int msm_pcm_put_channel_rule_index(struct snd_kcontrol *kcontrol,
3357 struct snd_ctl_elem_value *ucontrol)
3358{
3359 u16 fe_id = 0;
3360
3361 fe_id = ((struct soc_mixer_control *)
3362 kcontrol->private_value)->shift;
3363 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3364 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3365 return -EINVAL;
3366 }
3367
3368 channel_mixer[fe_id].rule = ucontrol->value.integer.value[0];
3369
3370 return 1;
3371}
3372
3373static int msm_pcm_get_out_chs(struct snd_kcontrol *kcontrol,
3374 struct snd_ctl_elem_value *ucontrol)
3375{
3376 u16 fe_id = 0;
3377
3378 fe_id = ((struct soc_multi_mixer_control *)
3379 kcontrol->private_value)->shift;
3380 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3381 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3382 return -EINVAL;
3383 }
3384
3385 ucontrol->value.integer.value[0] =
3386 channel_mixer[fe_id].output_channel;
3387 return 0;
3388}
3389
3390static int msm_pcm_put_out_chs(struct snd_kcontrol *kcontrol,
3391 struct snd_ctl_elem_value *ucontrol)
3392{
3393 u16 fe_id = 0;
3394
3395 fe_id = ((struct soc_multi_mixer_control *)
3396 kcontrol->private_value)->shift;
3397 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3398 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3399 return -EINVAL;
3400 }
3401
3402 pr_debug("%s: fe_id is %d, output channels = %d\n", __func__,
3403 fe_id,
3404 (unsigned int)(ucontrol->value.integer.value[0]));
3405 channel_mixer[fe_id].output_channel =
3406 (unsigned int)(ucontrol->value.integer.value[0]);
3407
3408 return 1;
3409}
3410
3411static const char *const ch_mixer[] = {"Disable", "Enable"};
3412
3413/* If new backend is added, need update this array */
3414static const char *const be_name[] = {
3415"ZERO", "PRI_I2S_RX", "PRI_I2S_TX", "SLIM_0_RX",
3416"SLIM_0_TX", "HDMI_RX", "INT_BT_SCO_RX", "INT_BT_SCO_TX",
3417"INT_FM_RX", "INT_FM_TX", "AFE_PCM_RX", "AFE_PCM_TX",
3418"AUXPCM_RX", "AUXPCM_TX", "VOICE_PLAYBACK_TX", "VOICE2_PLAYBACK_TX",
3419"INCALL_RECORD_RX", "INCALL_RECORD_TX", "MI2S_RX", "MI2S_TX",
3420"SEC_I2S_RX", "SLIM_1_RX", "SLIM_1_TX", "SLIM_2_RX",
3421"SLIM_2_TX", "SLIM_3_RX", "SLIM_3_TX", "SLIM_4_RX",
3422"SLIM_4_TX", "SLIM_5_RX", "SLIM_5_TX", "SLIM_6_RX",
3423"SLIM_6_TX", "SLIM_7_RX", "SLIM_7_TX", "SLIM_8_RX",
3424"SLIM_8_TX", "EXTPROC_RX", "EXTPROC_TX", "EXPROC_EC_TX",
3425"QUAT_MI2S_RX", "QUAT_MI2S_TX", "SECOND_MI2S_RX", "SECOND_MI2S_TX",
3426"PRI_MI2S_RX", "PRI_MI2S_TX", "TERT_MI2S_RX", "TERT_MI2S_TX",
Ralf Herzc8701f72018-06-20 11:37:35 +02003427"AUDIO_I2S_RX", "SEC_AUXPCM_RX", "SEC_AUXPCM_TX", "PRI_SPDIF_RX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303428"SECOND_MI2S_RX_SD1", "QUIN_MI2S_RX", "QUIN_MI2S_TX", "SENARY_MI2S_TX",
3429"PRI_TDM_RX_0", "PRI_TDM_TX_0", "PRI_TDM_RX_1", "PRI_TDM_TX_1",
3430"PRI_TDM_RX_2", "PRI_TDM_TX_2", "PRI_TDM_RX_3", "PRI_TDM_TX_3",
3431"PRI_TDM_RX_4", "PRI_TDM_TX_4", "PRI_TDM_RX_5", "PRI_TDM_TX_5",
3432"PRI_TDM_RX_6", "PRI_TDM_TX_6", "PRI_TDM_RX_7", "PRI_TDM_TX_7",
3433"SEC_TDM_RX_0", "SEC_TDM_TX_0", "SEC_TDM_RX_1", "SEC_TDM_TX_1",
3434"SEC_TDM_RX_2", "SEC_TDM_TX_2", "SEC_TDM_RX_3", "SEC_TDM_TX_3",
3435"SEC_TDM_RX_4", "SEC_TDM_TX_4", "SEC_TDM_RX_5", "SEC_TDM_TX_5",
3436"SEC_TDM_RX_6", "SEC_TDM_TX_6", "SEC_TDM_RX_7", "SEC_TDM_TX_7",
3437"TERT_TDM_RX_0", "TERT_TDM_TX_0", "TERT_TDM_RX_1", "TERT_TDM_TX_1",
3438"TERT_TDM_RX_2", "TERT_TDM_TX_2", "TERT_TDM_RX_3", "TERT_TDM_TX_3",
3439"TERT_TDM_RX_4", "TERT_TDM_TX_4", "TERT_TDM_RX_5", "TERT_TDM_TX_5",
3440"TERT_TDM_RX_6", "TERT_TDM_TX_6", "TERT_TDM_RX_7", "TERT_TDM_TX_7",
3441"QUAT_TDM_RX_0", "QUAT_TDM_TX_0", "QUAT_TDM_RX_1", "QUAT_TDM_TX_1",
3442"QUAT_TDM_RX_2", "QUAT_TDM_TX_2", "QUAT_TDM_RX_3", "QUAT_TDM_TX_3",
3443"QUAT_TDM_RX_4", "QUAT_TDM_TX_4", "QUAT_TDM_RX_5", "QUAT_TDM_TX_5",
3444"QUAT_TDM_RX_6", "QUAT_TDM_TX_6", "QUAT_TDM_RX_7", "QUAT_TDM_TX_7",
Rohit Kumara5077932017-09-10 22:05:05 +05303445"QUIN_TDM_RX_0", "QUIN_TDM_TX_0", "QUIN_TDM_RX_1", "QUIN_TDM_TX_1",
3446"QUIN_TDM_RX_2", "QUIN_TDM_TX_2", "QUIN_TDM_RX_3", "QUIN_TDM_TX_3",
3447"QUIN_TDM_RX_4", "QUIN_TDM_TX_4", "QUIN_TDM_RX_5", "QUIN_TDM_TX_5",
3448"QUIN_TDM_RX_6", "QUIN_TDM_TX_6", "QUIN_TDM_RX_7", "QUIN_TDM_TX_7",
Karthikeyan Manic3700752019-03-11 18:33:53 -07003449"SEN_TDM_RX_0", "SEN_TDM_TX_0", "SEN_TDM_RX_1", "SEN_TDM_TX_1",
3450"SEN_TDM_RX_2", "SEN_TDM_TX_2", "SEN_TDM_RX_3", "SEN_TDM_TX_3",
3451"SEN_TDM_RX_4", "SEN_TDM_TX_4", "SEN_TDM_RX_5", "SEN_TDM_TX_5",
3452"SEN_TDM_RX_6", "SEN_TDM_TX_6", "SEN_TDM_RX_7", "SEN_TDM_TX_7",
Meng Wangf016d302019-01-21 10:35:53 +08003453"INT_BT_A2DP_RX", "USB_RX", "USB_TX", "DISPLAY_PORT_RX",
3454"DISPLAY_PORT_RX1", "TERT_AUXPCM_RX", "TERT_AUXPCM_TX", "QUAT_AUXPCM_RX",
3455"QUAT_AUXPCM_TX", "QUIN_AUXPCM_RX", "QUIN_AUXPCM_TX", "INT0_MI2S_RX",
3456"INT0_MI2S_TX", "INT1_MI2S_RX", "INT1_MI2S_TX", "INT2_MI2S_RX",
3457"INT2_MI2S_TX", "INT3_MI2S_RX", "INT3_MI2S_TX", "INT4_MI2S_RX",
3458"INT4_MI2S_TX", "INT5_MI2S_RX", "INT5_MI2S_TX", "INT6_MI2S_RX",
3459"INT6_MI2S_TX", "SEN_AUXPCM_RX", "SEN_AUXPCM_TX", "SENARY_MI2S_RX",
3460"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 -08003461"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 +05303462"RX_CDC_DMA_RX_0", "TX_CDC_DMA_TX_0", "RX_CDC_DMA_RX_1", "TX_CDC_DMA_TX_1",
3463"RX_CDC_DMA_RX_2", "TX_CDC_DMA_TX_2", "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_3",
3464"RX_CDC_DMA_RX_4", "TX_CDC_DMA_TX_4", "RX_CDC_DMA_RX_5", "TX_CDC_DMA_TX_5",
3465"RX_CDC_DMA_RX_6", "RX_CDC_DMA_RX_7",
3466"PRI_SPDIF_TX", "SEC_SPDIF_RX", "SEC_SPDIF_TX",
Ralf Herz29e07132019-07-26 15:15:21 +02003467"SLIM_9_RX", "SLIM_9_TX", "AFE_LOOPBACK_TX", "PRI_META_MI2S_RX",
3468"SEC_META_MI2S_RX"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303469};
3470
3471static SOC_ENUM_SINGLE_DECL(mm1_channel_mux,
3472 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, ch_mixer);
3473static SOC_ENUM_SINGLE_DECL(mm2_channel_mux,
3474 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA2, ch_mixer);
3475static SOC_ENUM_SINGLE_DECL(mm3_channel_mux,
3476 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA3, ch_mixer);
3477static SOC_ENUM_SINGLE_DECL(mm4_channel_mux,
3478 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA4, ch_mixer);
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303479static SOC_ENUM_SINGLE_DECL(mm18_channel_mux,
3480 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA18, ch_mixer);
3481static SOC_ENUM_SINGLE_DECL(mm19_channel_mux,
3482 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA19, ch_mixer);
3483static SOC_ENUM_SINGLE_DECL(mm28_channel_mux,
3484 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA28, ch_mixer);
3485static SOC_ENUM_SINGLE_DECL(mm29_channel_mux,
3486 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA29, ch_mixer);
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05303487static SOC_ENUM_SINGLE_DECL(mm30_channel_mux,
3488 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA30, ch_mixer);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303489
3490static SOC_ENUM_DOUBLE_DECL(mm1_ch1_enum,
3491 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 0, be_name);
3492static SOC_ENUM_DOUBLE_DECL(mm1_ch2_enum,
3493 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 1, be_name);
3494static SOC_ENUM_DOUBLE_DECL(mm1_ch3_enum,
3495 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 2, be_name);
3496static SOC_ENUM_DOUBLE_DECL(mm1_ch4_enum,
3497 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 3, be_name);
3498static SOC_ENUM_DOUBLE_DECL(mm1_ch5_enum,
3499 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 4, be_name);
3500static SOC_ENUM_DOUBLE_DECL(mm1_ch6_enum,
3501 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 5, be_name);
3502static SOC_ENUM_DOUBLE_DECL(mm1_ch7_enum,
3503 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 6, be_name);
3504static SOC_ENUM_DOUBLE_DECL(mm1_ch8_enum,
3505 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 7, be_name);
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303506static SOC_ENUM_DOUBLE_DECL(mm18_ch1_enum,
3507 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA18, 0, be_name);
3508static SOC_ENUM_DOUBLE_DECL(mm18_ch2_enum,
3509 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA18, 1, be_name);
3510static SOC_ENUM_DOUBLE_DECL(mm19_ch1_enum,
3511 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA19, 0, be_name);
3512static SOC_ENUM_DOUBLE_DECL(mm19_ch2_enum,
3513 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA19, 1, be_name);
3514static SOC_ENUM_DOUBLE_DECL(mm28_ch1_enum,
3515 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA28, 0, be_name);
3516static SOC_ENUM_DOUBLE_DECL(mm28_ch2_enum,
3517 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA28, 1, be_name);
3518static SOC_ENUM_DOUBLE_DECL(mm29_ch1_enum,
3519 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA29, 0, be_name);
3520static SOC_ENUM_DOUBLE_DECL(mm29_ch2_enum,
3521 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA29, 1, be_name);
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05303522static SOC_ENUM_DOUBLE_DECL(mm30_ch1_enum,
3523 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA30, 0, be_name);
3524static SOC_ENUM_DOUBLE_DECL(mm30_ch2_enum,
3525 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA30, 1, be_name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303526
3527static int msm_pcm_get_ctl_enum_info(struct snd_ctl_elem_info *uinfo,
3528 unsigned int channels,
3529 unsigned int items, const char *const names[])
3530{
3531 if (uinfo->value.enumerated.item >= items)
3532 uinfo->value.enumerated.item = items - 1;
3533
3534 WARN(strlen(names[uinfo->value.enumerated.item]) >=
3535 sizeof(uinfo->value.enumerated.name),
3536 "ALSA: too long item name '%s'\n",
3537 names[uinfo->value.enumerated.item]);
3538 strlcpy(uinfo->value.enumerated.name,
3539 names[uinfo->value.enumerated.item],
3540 sizeof(uinfo->value.enumerated.name));
3541 return 0;
3542}
3543
3544static int msm_pcm_channel_mixer_info(struct snd_kcontrol *kcontrol,
3545 struct snd_ctl_elem_info *uinfo)
3546{
3547 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3548
3549 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3550 uinfo->count = 1;
3551
3552 uinfo->value.enumerated.items = ARRAY_SIZE(ch_mixer);
3553 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3554
3555 return 0;
3556}
3557static int msm_pcm_channel_mixer_get(struct snd_kcontrol *kcontrol,
3558 struct snd_ctl_elem_value *ucontrol)
3559{
3560 u16 fe_id = 0;
3561
3562 fe_id = ((struct soc_enum *)
3563 kcontrol->private_value)->shift_l;
3564 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3565 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3566 return -EINVAL;
3567 }
3568
3569 pr_debug("%s: FE %d %s\n", __func__,
3570 fe_id,
3571 channel_mixer[fe_id].enable ? "Enabled" : "Disabled");
3572 ucontrol->value.enumerated.item[0] = channel_mixer[fe_id].enable;
3573 return 0;
3574}
3575
3576static int msm_pcm_channel_mixer_put(struct snd_kcontrol *kcontrol,
3577 struct snd_ctl_elem_value *ucontrol)
3578{
3579 u16 fe_id = 0;
3580
3581 fe_id = ((struct soc_enum *)
3582 kcontrol->private_value)->shift_l;
3583 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3584 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3585 return -EINVAL;
3586 }
3587
3588 channel_mixer[fe_id].enable = ucontrol->value.enumerated.item[0];
3589 pr_debug("%s: %s FE %d\n", __func__,
3590 channel_mixer[fe_id].enable ? "Enable" : "Disable",
3591 fe_id);
3592 return 0;
3593}
3594
3595static int msm_pcm_channel_input_be_info(struct snd_kcontrol *kcontrol,
3596 struct snd_ctl_elem_info *uinfo)
3597{
3598 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3599
3600 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3601 uinfo->count = 1;
3602
3603 uinfo->value.enumerated.items = ARRAY_SIZE(be_name);
3604 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3605
3606 return 0;
3607}
3608
3609static int msm_pcm_channel_input_be_put(struct snd_kcontrol *kcontrol,
3610 struct snd_ctl_elem_value *ucontrol)
3611{
3612 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3613 u16 fe_id = 0, in_ch = 0;
3614
3615 fe_id = e->shift_l;
3616 in_ch = e->shift_r;
3617 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3618 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3619 return -EINVAL;
3620 }
3621 if (in_ch >= ADM_MAX_CHANNELS) {
3622 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3623 return -EINVAL;
3624 }
3625
3626 channel_input[fe_id][in_ch] = ucontrol->value.enumerated.item[0];
3627 return 1;
3628}
3629
3630static int msm_pcm_channel_input_be_get(struct snd_kcontrol *kcontrol,
3631 struct snd_ctl_elem_value *ucontrol)
3632{
3633 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3634 u16 fe_id = 0, in_ch = 0;
3635
3636 fe_id = e->shift_l;
3637 in_ch = e->shift_r;
3638 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3639 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3640 return -EINVAL;
3641 }
3642 if (in_ch >= ADM_MAX_CHANNELS) {
3643 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3644 return -EINVAL;
3645 }
3646
3647 ucontrol->value.enumerated.item[0] = channel_input[fe_id][in_ch];
3648 return 1;
3649}
3650
3651
3652static int msm_pcm_channel_weight_info(struct snd_kcontrol *kcontrol,
3653 struct snd_ctl_elem_info *uinfo)
3654{
3655 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3656 uinfo->count = ADM_MAX_CHANNELS;
3657 uinfo->value.integer.min = 0;
3658 uinfo->value.integer.max = WEIGHT_0_DB;
3659
3660 return 0;
3661}
3662
3663static int msm_pcm_channel_weight_put(struct snd_kcontrol *kcontrol,
3664 struct snd_ctl_elem_value *ucontrol)
3665{
3666 u16 fe_id = 0, out_ch = 0;
3667 int i, weight;
3668
3669 fe_id = ((struct soc_multi_mixer_control *)
3670 kcontrol->private_value)->shift;
3671 out_ch = ((struct soc_multi_mixer_control *)
3672 kcontrol->private_value)->rshift;
3673 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3674 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3675 return -EINVAL;
3676 }
3677 if (out_ch >= ADM_MAX_CHANNELS) {
3678 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3679 return -EINVAL;
3680 }
3681
3682 pr_debug("%s: FE_ID: %d, channel weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld\n",
3683 __func__, fe_id,
3684 ucontrol->value.integer.value[0],
3685 ucontrol->value.integer.value[1],
3686 ucontrol->value.integer.value[2],
3687 ucontrol->value.integer.value[3],
3688 ucontrol->value.integer.value[4],
3689 ucontrol->value.integer.value[5],
3690 ucontrol->value.integer.value[6],
3691 ucontrol->value.integer.value[7]);
3692
3693 for (i = 0; i < ADM_MAX_CHANNELS; ++i) {
3694 weight = ucontrol->value.integer.value[i];
3695 channel_mixer[fe_id].channel_weight[out_ch][i] = weight;
3696 pr_debug("%s: FE_ID %d, output %d input %d weight %d\n",
3697 __func__, fe_id, out_ch, i,
3698 channel_mixer[fe_id].channel_weight[out_ch][i]);
3699 }
3700
3701 return 0;
3702}
3703
3704static int msm_pcm_channel_weight_get(struct snd_kcontrol *kcontrol,
3705 struct snd_ctl_elem_value *ucontrol)
3706{
3707 u16 fe_id = 0, out_ch = 0;
3708 int i;
3709
3710 fe_id = ((struct soc_multi_mixer_control *)
3711 kcontrol->private_value)->shift;
3712 out_ch = ((struct soc_multi_mixer_control *)
3713 kcontrol->private_value)->rshift;
3714 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3715 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3716 return -EINVAL;
3717 }
3718 if (out_ch >= ADM_MAX_CHANNELS) {
3719 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3720 return -EINVAL;
3721 }
3722
3723 for (i = 0; i < ADM_MAX_CHANNELS; ++i)
3724 ucontrol->value.integer.value[i] =
3725 channel_mixer[fe_id].channel_weight[out_ch][i];
3726
3727 pr_debug("%s: FE_ID: %d, weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld",
3728 __func__, fe_id,
3729 ucontrol->value.integer.value[0],
3730 ucontrol->value.integer.value[1],
3731 ucontrol->value.integer.value[2],
3732 ucontrol->value.integer.value[3],
3733 ucontrol->value.integer.value[4],
3734 ucontrol->value.integer.value[5],
3735 ucontrol->value.integer.value[6],
3736 ucontrol->value.integer.value[7]);
3737
3738 return 0;
3739}
3740
Chaithanya Krishna Bacharajue48fb2b2019-05-08 13:02:08 +05303741static int msm_pcm_channel_output_map_info(struct snd_kcontrol *kcontrol,
3742 struct snd_ctl_elem_info *uinfo)
3743{
3744 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3745 uinfo->count = PCM_FORMAT_MAX_NUM_CHANNEL_V8;
3746 /* Valid channel map value ranges from 1 to 64 */
3747 uinfo->value.integer.min = 0;
3748 uinfo->value.integer.max = 64;
3749
3750 return 0;
3751}
3752
3753static int msm_pcm_channel_output_map_put(struct snd_kcontrol *kcontrol,
3754 struct snd_ctl_elem_value *ucontrol)
3755{
3756 u16 fe_id = 0;
3757 int i, ch_map;
3758
3759 fe_id = ((struct soc_multi_mixer_control *)
3760 kcontrol->private_value)->shift;
3761 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3762 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3763 return -EINVAL;
3764 }
3765
3766 for (i = 0; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; ++i) {
3767 ch_map = ucontrol->value.integer.value[i];
3768 channel_mixer[fe_id].out_ch_map[i] = ch_map;
3769 pr_debug("%s: FE_ID %d, channel %d channel map %d\n",
3770 __func__, fe_id, i, channel_mixer[fe_id].out_ch_map[i]);
3771 }
3772
3773 /* Make override_out_ch_map false if ch map is reset */
3774 if (channel_mixer[fe_id].out_ch_map[0] == 0)
3775 channel_mixer[fe_id].override_out_ch_map = false;
3776 else
3777 channel_mixer[fe_id].override_out_ch_map = true;
3778
3779 return 0;
3780}
3781
3782static int msm_pcm_channel_output_map_get(struct snd_kcontrol *kcontrol,
3783 struct snd_ctl_elem_value *ucontrol)
3784{
3785 u16 fe_id = 0;
3786 int i;
3787
3788 fe_id = ((struct soc_multi_mixer_control *)
3789 kcontrol->private_value)->shift;
3790 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3791 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3792 return -EINVAL;
3793 }
3794
3795 for (i = 0; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; ++i)
3796 ucontrol->value.integer.value[i] =
3797 channel_mixer[fe_id].out_ch_map[i];
3798
3799 return 0;
3800}
3801
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303802static const struct snd_kcontrol_new channel_mixer_controls[] = {
3803 SOC_SINGLE_EXT("MultiMedia1 Channel Rule", SND_SOC_NOPM,
3804 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3805 msm_pcm_get_channel_rule_index,
3806 msm_pcm_put_channel_rule_index),
3807 SOC_SINGLE_EXT("MultiMedia2 Channel Rule", SND_SOC_NOPM,
3808 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3809 msm_pcm_get_channel_rule_index,
3810 msm_pcm_put_channel_rule_index),
3811 SOC_SINGLE_EXT("MultiMedia3 Channel Rule", SND_SOC_NOPM,
3812 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3813 msm_pcm_get_channel_rule_index,
3814 msm_pcm_put_channel_rule_index),
3815 SOC_SINGLE_EXT("MultiMedia4 Channel Rule", SND_SOC_NOPM,
3816 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3817 msm_pcm_get_channel_rule_index,
3818 msm_pcm_put_channel_rule_index),
3819 SOC_SINGLE_EXT("MultiMedia5 Channel Rule", SND_SOC_NOPM,
3820 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3821 msm_pcm_get_channel_rule_index,
3822 msm_pcm_put_channel_rule_index),
3823 SOC_SINGLE_EXT("MultiMedia6 Channel Rule", SND_SOC_NOPM,
3824 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3825 msm_pcm_get_channel_rule_index,
3826 msm_pcm_put_channel_rule_index),
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303827 SOC_SINGLE_EXT("MultiMedia18 Channel Rule", SND_SOC_NOPM,
3828 MSM_FRONTEND_DAI_MULTIMEDIA18, 8, 0,
3829 msm_pcm_get_channel_rule_index,
3830 msm_pcm_put_channel_rule_index),
3831 SOC_SINGLE_EXT("MultiMedia19 Channel Rule", SND_SOC_NOPM,
3832 MSM_FRONTEND_DAI_MULTIMEDIA19, 8, 0,
3833 msm_pcm_get_channel_rule_index,
3834 msm_pcm_put_channel_rule_index),
3835 SOC_SINGLE_EXT("MultiMedia28 Channel Rule", SND_SOC_NOPM,
3836 MSM_FRONTEND_DAI_MULTIMEDIA28, 8, 0,
3837 msm_pcm_get_channel_rule_index,
3838 msm_pcm_put_channel_rule_index),
3839 SOC_SINGLE_EXT("MultiMedia29 Channel Rule", SND_SOC_NOPM,
3840 MSM_FRONTEND_DAI_MULTIMEDIA29, 8, 0,
3841 msm_pcm_get_channel_rule_index,
3842 msm_pcm_put_channel_rule_index),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05303843 SOC_SINGLE_EXT("MultiMedia30 Channel Rule", SND_SOC_NOPM,
3844 MSM_FRONTEND_DAI_MULTIMEDIA30, 8, 0,
3845 msm_pcm_get_channel_rule_index,
3846 msm_pcm_put_channel_rule_index),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303847
3848 SOC_SINGLE_EXT("MultiMedia1 Channels", SND_SOC_NOPM,
Chaithanya Krishna Bacharaju6790e922019-05-03 13:41:00 +05303849 MSM_FRONTEND_DAI_MULTIMEDIA1, 14, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303850 msm_pcm_get_out_chs,
3851 msm_pcm_put_out_chs),
3852 SOC_SINGLE_EXT("MultiMedia2 Channels", SND_SOC_NOPM,
3853 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3854 msm_pcm_get_out_chs,
3855 msm_pcm_put_out_chs),
3856 SOC_SINGLE_EXT("MultiMedia3 Channels", SND_SOC_NOPM,
3857 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3858 msm_pcm_get_out_chs,
3859 msm_pcm_put_out_chs),
3860 SOC_SINGLE_EXT("MultiMedia4 Channels", SND_SOC_NOPM,
3861 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3862 msm_pcm_get_out_chs,
3863 msm_pcm_put_out_chs),
3864 SOC_SINGLE_EXT("MultiMedia5 Channels", SND_SOC_NOPM,
3865 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3866 msm_pcm_get_out_chs,
3867 msm_pcm_put_out_chs),
3868 SOC_SINGLE_EXT("MultiMedia6 Channels", SND_SOC_NOPM,
3869 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3870 msm_pcm_get_out_chs,
3871 msm_pcm_put_out_chs),
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303872 SOC_SINGLE_EXT("MultiMedia18 Channels", SND_SOC_NOPM,
3873 MSM_FRONTEND_DAI_MULTIMEDIA18, 14, 0,
3874 msm_pcm_get_out_chs,
3875 msm_pcm_put_out_chs),
3876 SOC_SINGLE_EXT("MultiMedia19 Channels", SND_SOC_NOPM,
3877 MSM_FRONTEND_DAI_MULTIMEDIA19, 14, 0,
3878 msm_pcm_get_out_chs,
3879 msm_pcm_put_out_chs),
3880 SOC_SINGLE_EXT("MultiMedia28 Channels", SND_SOC_NOPM,
3881 MSM_FRONTEND_DAI_MULTIMEDIA28, 14, 0,
3882 msm_pcm_get_out_chs,
3883 msm_pcm_put_out_chs),
3884 SOC_SINGLE_EXT("MultiMedia29 Channels", SND_SOC_NOPM,
3885 MSM_FRONTEND_DAI_MULTIMEDIA29, 14, 0,
3886 msm_pcm_get_out_chs,
3887 msm_pcm_put_out_chs),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05303888 SOC_SINGLE_EXT("MultiMedia30 Channels", SND_SOC_NOPM,
3889 MSM_FRONTEND_DAI_MULTIMEDIA30, 14, 0,
3890 msm_pcm_get_out_chs,
3891 msm_pcm_put_out_chs),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303892 {
3893 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3894 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3895 .name = "MultiMedia1 Channel Mixer",
3896 .info = msm_pcm_channel_mixer_info,
3897 .get = msm_pcm_channel_mixer_get,
3898 .put = msm_pcm_channel_mixer_put,
3899 .private_value = (unsigned long)&(mm1_channel_mux)
3900 },
3901 {
3902 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3903 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3904 .name = "MultiMedia2 Channel Mixer",
3905 .info = msm_pcm_channel_mixer_info,
3906 .get = msm_pcm_channel_mixer_get,
3907 .put = msm_pcm_channel_mixer_put,
3908 .private_value = (unsigned long)&(mm2_channel_mux)
3909 },
3910 {
3911 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3912 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3913 .name = "MultiMedia3 Channel Mixer",
3914 .info = msm_pcm_channel_mixer_info,
3915 .get = msm_pcm_channel_mixer_get,
3916 .put = msm_pcm_channel_mixer_put,
3917 .private_value = (unsigned long)&(mm3_channel_mux)
3918 },
3919 {
3920 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3921 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3922 .name = "MultiMedia4 Channel Mixer",
3923 .info = msm_pcm_channel_mixer_info,
3924 .get = msm_pcm_channel_mixer_get,
3925 .put = msm_pcm_channel_mixer_put,
3926 .private_value = (unsigned long)&(mm4_channel_mux)
3927 },
3928 {
3929 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3930 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303931 .name = "MultiMedia18 Channel Mixer",
3932 .info = msm_pcm_channel_mixer_info,
3933 .get = msm_pcm_channel_mixer_get,
3934 .put = msm_pcm_channel_mixer_put,
3935 .private_value = (unsigned long)&(mm18_channel_mux)
3936 },
3937 {
3938 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3939 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3940 .name = "MultiMedia19 Channel Mixer",
3941 .info = msm_pcm_channel_mixer_info,
3942 .get = msm_pcm_channel_mixer_get,
3943 .put = msm_pcm_channel_mixer_put,
3944 .private_value = (unsigned long)&(mm19_channel_mux)
3945 },
3946 {
3947 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3948 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3949 .name = "MultiMedia28 Channel Mixer",
3950 .info = msm_pcm_channel_mixer_info,
3951 .get = msm_pcm_channel_mixer_get,
3952 .put = msm_pcm_channel_mixer_put,
3953 .private_value = (unsigned long)&(mm28_channel_mux)
3954 },
3955 {
3956 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3957 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3958 .name = "MultiMedia29 Channel Mixer",
3959 .info = msm_pcm_channel_mixer_info,
3960 .get = msm_pcm_channel_mixer_get,
3961 .put = msm_pcm_channel_mixer_put,
3962 .private_value = (unsigned long)&(mm29_channel_mux)
3963 },
3964 {
3965 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3966 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05303967 .name = "MultiMedia30 Channel Mixer",
3968 .info = msm_pcm_channel_mixer_info,
3969 .get = msm_pcm_channel_mixer_get,
3970 .put = msm_pcm_channel_mixer_put,
3971 .private_value = (unsigned long)&(mm30_channel_mux)
3972 },
3973 {
3974 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3975 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303976 .name = "MultiMedia1 Output Channel1",
3977 .info = msm_pcm_channel_weight_info,
3978 .get = msm_pcm_channel_weight_get,
3979 .put = msm_pcm_channel_weight_put,
3980 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3981 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 0,}
3982 },
3983 {
3984 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3985 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3986 .name = "MultiMedia1 Output Channel2",
3987 .info = msm_pcm_channel_weight_info,
3988 .get = msm_pcm_channel_weight_get,
3989 .put = msm_pcm_channel_weight_put,
3990 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3991 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 1, }
3992 },
3993 {
3994 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3995 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3996 .name = "MultiMedia1 Output Channel3",
3997 .info = msm_pcm_channel_weight_info,
3998 .get = msm_pcm_channel_weight_get,
3999 .put = msm_pcm_channel_weight_put,
4000 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4001 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 2,}
4002 },
4003 {
4004 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4005 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4006 .name = "MultiMedia1 Output Channel4",
4007 .info = msm_pcm_channel_weight_info,
4008 .get = msm_pcm_channel_weight_get,
4009 .put = msm_pcm_channel_weight_put,
4010 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4011 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 3,}
4012 },
4013 {
4014 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4015 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4016 .name = "MultiMedia1 Output Channel5",
4017 .info = msm_pcm_channel_weight_info,
4018 .get = msm_pcm_channel_weight_get,
4019 .put = msm_pcm_channel_weight_put,
4020 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4021 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 4,}
4022 },
4023 {
4024 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4025 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4026 .name = "MultiMedia1 Output Channel6",
4027 .info = msm_pcm_channel_weight_info,
4028 .get = msm_pcm_channel_weight_get,
4029 .put = msm_pcm_channel_weight_put,
4030 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4031 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 5,}
4032 },
4033 {
4034 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4035 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4036 .name = "MultiMedia1 Output Channel7",
4037 .info = msm_pcm_channel_weight_info,
4038 .get = msm_pcm_channel_weight_get,
4039 .put = msm_pcm_channel_weight_put,
4040 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4041 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 6,}
4042 },
4043 {
4044 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4045 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4046 .name = "MultiMedia1 Output Channel8",
4047 .info = msm_pcm_channel_weight_info,
4048 .get = msm_pcm_channel_weight_get,
4049 .put = msm_pcm_channel_weight_put,
4050 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4051 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 7,}
4052 },
4053 {
4054 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4055 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05304056 .name = "MultiMedia1 Output Channel9",
4057 .info = msm_pcm_channel_weight_info,
4058 .get = msm_pcm_channel_weight_get,
4059 .put = msm_pcm_channel_weight_put,
4060 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4061 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 8,}
4062 },
4063 {
4064 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4065 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4066 .name = "MultiMedia1 Output Channel10",
4067 .info = msm_pcm_channel_weight_info,
4068 .get = msm_pcm_channel_weight_get,
4069 .put = msm_pcm_channel_weight_put,
4070 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4071 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 9,}
4072 },
4073 {
4074 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4075 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju6790e922019-05-03 13:41:00 +05304076 .name = "MultiMedia1 Output Channel11",
4077 .info = msm_pcm_channel_weight_info,
4078 .get = msm_pcm_channel_weight_get,
4079 .put = msm_pcm_channel_weight_put,
4080 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4081 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 10,}
4082 },
4083 {
4084 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4085 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4086 .name = "MultiMedia1 Output Channel12",
4087 .info = msm_pcm_channel_weight_info,
4088 .get = msm_pcm_channel_weight_get,
4089 .put = msm_pcm_channel_weight_put,
4090 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4091 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 11,}
4092 },
4093 {
4094 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4095 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4096 .name = "MultiMedia1 Output Channel13",
4097 .info = msm_pcm_channel_weight_info,
4098 .get = msm_pcm_channel_weight_get,
4099 .put = msm_pcm_channel_weight_put,
4100 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4101 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 12,}
4102 },
4103 {
4104 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4105 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4106 .name = "MultiMedia1 Output Channel14",
4107 .info = msm_pcm_channel_weight_info,
4108 .get = msm_pcm_channel_weight_get,
4109 .put = msm_pcm_channel_weight_put,
4110 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4111 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 13,}
4112 },
4113 {
4114 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4115 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304116 .name = "MultiMedia2 Output Channel1",
4117 .info = msm_pcm_channel_weight_info,
4118 .get = msm_pcm_channel_weight_get,
4119 .put = msm_pcm_channel_weight_put,
4120 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4121 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 0,}
4122 },
4123 {
4124 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4125 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4126 .name = "MultiMedia2 Output Channel2",
4127 .info = msm_pcm_channel_weight_info,
4128 .get = msm_pcm_channel_weight_get,
4129 .put = msm_pcm_channel_weight_put,
4130 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4131 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 1,}
4132 },
4133 {
4134 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4135 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4136 .name = "MultiMedia2 Output Channel3",
4137 .info = msm_pcm_channel_weight_info,
4138 .get = msm_pcm_channel_weight_get,
4139 .put = msm_pcm_channel_weight_put,
4140 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4141 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 2,}
4142 },
4143 {
4144 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4145 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4146 .name = "MultiMedia3 Output Channel1",
4147 .info = msm_pcm_channel_weight_info,
4148 .get = msm_pcm_channel_weight_get,
4149 .put = msm_pcm_channel_weight_put,
4150 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4151 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 0,}
4152 },
4153 {
4154 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4155 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4156 .name = "MultiMedia3 Output Channel2",
4157 .info = msm_pcm_channel_weight_info,
4158 .get = msm_pcm_channel_weight_get,
4159 .put = msm_pcm_channel_weight_put,
4160 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4161 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 1,}
4162 },
4163 {
4164 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4165 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05304166 .name = "MultiMedia18 Output Channel1",
4167 .info = msm_pcm_channel_weight_info,
4168 .get = msm_pcm_channel_weight_get,
4169 .put = msm_pcm_channel_weight_put,
4170 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4171 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 0,}
4172 },
4173 {
4174 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4175 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4176 .name = "MultiMedia18 Output Channel2",
4177 .info = msm_pcm_channel_weight_info,
4178 .get = msm_pcm_channel_weight_get,
4179 .put = msm_pcm_channel_weight_put,
4180 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4181 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 1, }
4182 },
4183 {
4184 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4185 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4186 .name = "MultiMedia18 Output Channel3",
4187 .info = msm_pcm_channel_weight_info,
4188 .get = msm_pcm_channel_weight_get,
4189 .put = msm_pcm_channel_weight_put,
4190 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4191 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 2,}
4192 },
4193 {
4194 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4195 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4196 .name = "MultiMedia18 Output Channel4",
4197 .info = msm_pcm_channel_weight_info,
4198 .get = msm_pcm_channel_weight_get,
4199 .put = msm_pcm_channel_weight_put,
4200 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4201 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 3,}
4202 },
4203 {
4204 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4205 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4206 .name = "MultiMedia18 Output Channel5",
4207 .info = msm_pcm_channel_weight_info,
4208 .get = msm_pcm_channel_weight_get,
4209 .put = msm_pcm_channel_weight_put,
4210 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4211 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 4,}
4212 },
4213 {
4214 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4215 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4216 .name = "MultiMedia18 Output Channel6",
4217 .info = msm_pcm_channel_weight_info,
4218 .get = msm_pcm_channel_weight_get,
4219 .put = msm_pcm_channel_weight_put,
4220 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4221 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 5,}
4222 },
4223 {
4224 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4225 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4226 .name = "MultiMedia18 Output Channel7",
4227 .info = msm_pcm_channel_weight_info,
4228 .get = msm_pcm_channel_weight_get,
4229 .put = msm_pcm_channel_weight_put,
4230 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4231 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 6,}
4232 },
4233 {
4234 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4235 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4236 .name = "MultiMedia18 Output Channel8",
4237 .info = msm_pcm_channel_weight_info,
4238 .get = msm_pcm_channel_weight_get,
4239 .put = msm_pcm_channel_weight_put,
4240 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4241 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 7,}
4242 },
4243 {
4244 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4245 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4246 .name = "MultiMedia18 Output Channel9",
4247 .info = msm_pcm_channel_weight_info,
4248 .get = msm_pcm_channel_weight_get,
4249 .put = msm_pcm_channel_weight_put,
4250 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4251 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 8,}
4252 },
4253 {
4254 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4255 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4256 .name = "MultiMedia18 Output Channel10",
4257 .info = msm_pcm_channel_weight_info,
4258 .get = msm_pcm_channel_weight_get,
4259 .put = msm_pcm_channel_weight_put,
4260 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4261 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 9,}
4262 },
4263 {
4264 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4265 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4266 .name = "MultiMedia18 Output Channel11",
4267 .info = msm_pcm_channel_weight_info,
4268 .get = msm_pcm_channel_weight_get,
4269 .put = msm_pcm_channel_weight_put,
4270 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4271 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 10,}
4272 },
4273 {
4274 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4275 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4276 .name = "MultiMedia18 Output Channel12",
4277 .info = msm_pcm_channel_weight_info,
4278 .get = msm_pcm_channel_weight_get,
4279 .put = msm_pcm_channel_weight_put,
4280 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4281 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 11,}
4282 },
4283 {
4284 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4285 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4286 .name = "MultiMedia18 Output Channel13",
4287 .info = msm_pcm_channel_weight_info,
4288 .get = msm_pcm_channel_weight_get,
4289 .put = msm_pcm_channel_weight_put,
4290 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4291 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 12,}
4292 },
4293 {
4294 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4295 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4296 .name = "MultiMedia18 Output Channel14",
4297 .info = msm_pcm_channel_weight_info,
4298 .get = msm_pcm_channel_weight_get,
4299 .put = msm_pcm_channel_weight_put,
4300 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4301 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 13,}
4302 },
4303 {
4304 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4305 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4306 .name = "MultiMedia19 Output Channel1",
4307 .info = msm_pcm_channel_weight_info,
4308 .get = msm_pcm_channel_weight_get,
4309 .put = msm_pcm_channel_weight_put,
4310 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4311 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 0,}
4312 },
4313 {
4314 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4315 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4316 .name = "MultiMedia19 Output Channel2",
4317 .info = msm_pcm_channel_weight_info,
4318 .get = msm_pcm_channel_weight_get,
4319 .put = msm_pcm_channel_weight_put,
4320 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4321 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 1, }
4322 },
4323 {
4324 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4325 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4326 .name = "MultiMedia19 Output Channel3",
4327 .info = msm_pcm_channel_weight_info,
4328 .get = msm_pcm_channel_weight_get,
4329 .put = msm_pcm_channel_weight_put,
4330 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4331 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 2,}
4332 },
4333 {
4334 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4335 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4336 .name = "MultiMedia19 Output Channel4",
4337 .info = msm_pcm_channel_weight_info,
4338 .get = msm_pcm_channel_weight_get,
4339 .put = msm_pcm_channel_weight_put,
4340 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4341 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 3,}
4342 },
4343 {
4344 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4345 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4346 .name = "MultiMedia19 Output Channel5",
4347 .info = msm_pcm_channel_weight_info,
4348 .get = msm_pcm_channel_weight_get,
4349 .put = msm_pcm_channel_weight_put,
4350 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4351 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 4,}
4352 },
4353 {
4354 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4355 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4356 .name = "MultiMedia19 Output Channel6",
4357 .info = msm_pcm_channel_weight_info,
4358 .get = msm_pcm_channel_weight_get,
4359 .put = msm_pcm_channel_weight_put,
4360 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4361 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 5,}
4362 },
4363 {
4364 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4365 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4366 .name = "MultiMedia19 Output Channel7",
4367 .info = msm_pcm_channel_weight_info,
4368 .get = msm_pcm_channel_weight_get,
4369 .put = msm_pcm_channel_weight_put,
4370 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4371 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 6,}
4372 },
4373 {
4374 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4375 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4376 .name = "MultiMedia19 Output Channel8",
4377 .info = msm_pcm_channel_weight_info,
4378 .get = msm_pcm_channel_weight_get,
4379 .put = msm_pcm_channel_weight_put,
4380 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4381 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 7,}
4382 },
4383 {
4384 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4385 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4386 .name = "MultiMedia19 Output Channel9",
4387 .info = msm_pcm_channel_weight_info,
4388 .get = msm_pcm_channel_weight_get,
4389 .put = msm_pcm_channel_weight_put,
4390 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4391 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 8,}
4392 },
4393 {
4394 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4395 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4396 .name = "MultiMedia19 Output Channel10",
4397 .info = msm_pcm_channel_weight_info,
4398 .get = msm_pcm_channel_weight_get,
4399 .put = msm_pcm_channel_weight_put,
4400 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4401 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 9,}
4402 },
4403 {
4404 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4405 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4406 .name = "MultiMedia19 Output Channel11",
4407 .info = msm_pcm_channel_weight_info,
4408 .get = msm_pcm_channel_weight_get,
4409 .put = msm_pcm_channel_weight_put,
4410 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4411 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 10,}
4412 },
4413 {
4414 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4415 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4416 .name = "MultiMedia19 Output Channel12",
4417 .info = msm_pcm_channel_weight_info,
4418 .get = msm_pcm_channel_weight_get,
4419 .put = msm_pcm_channel_weight_put,
4420 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4421 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 11,}
4422 },
4423 {
4424 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4425 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4426 .name = "MultiMedia19 Output Channel13",
4427 .info = msm_pcm_channel_weight_info,
4428 .get = msm_pcm_channel_weight_get,
4429 .put = msm_pcm_channel_weight_put,
4430 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4431 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 12,}
4432 },
4433 {
4434 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4435 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4436 .name = "MultiMedia19 Output Channel14",
4437 .info = msm_pcm_channel_weight_info,
4438 .get = msm_pcm_channel_weight_get,
4439 .put = msm_pcm_channel_weight_put,
4440 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4441 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 13,}
4442 },
4443 {
4444 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4445 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4446 .name = "MultiMedia28 Output Channel1",
4447 .info = msm_pcm_channel_weight_info,
4448 .get = msm_pcm_channel_weight_get,
4449 .put = msm_pcm_channel_weight_put,
4450 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4451 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 0,}
4452 },
4453 {
4454 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4455 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4456 .name = "MultiMedia28 Output Channel2",
4457 .info = msm_pcm_channel_weight_info,
4458 .get = msm_pcm_channel_weight_get,
4459 .put = msm_pcm_channel_weight_put,
4460 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4461 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 1, }
4462 },
4463 {
4464 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4465 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4466 .name = "MultiMedia28 Output Channel3",
4467 .info = msm_pcm_channel_weight_info,
4468 .get = msm_pcm_channel_weight_get,
4469 .put = msm_pcm_channel_weight_put,
4470 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4471 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 2,}
4472 },
4473 {
4474 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4475 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4476 .name = "MultiMedia28 Output Channel4",
4477 .info = msm_pcm_channel_weight_info,
4478 .get = msm_pcm_channel_weight_get,
4479 .put = msm_pcm_channel_weight_put,
4480 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4481 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 3,}
4482 },
4483 {
4484 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4485 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4486 .name = "MultiMedia28 Output Channel5",
4487 .info = msm_pcm_channel_weight_info,
4488 .get = msm_pcm_channel_weight_get,
4489 .put = msm_pcm_channel_weight_put,
4490 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4491 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 4,}
4492 },
4493 {
4494 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4495 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4496 .name = "MultiMedia28 Output Channel6",
4497 .info = msm_pcm_channel_weight_info,
4498 .get = msm_pcm_channel_weight_get,
4499 .put = msm_pcm_channel_weight_put,
4500 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4501 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 5,}
4502 },
4503 {
4504 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4505 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4506 .name = "MultiMedia28 Output Channel7",
4507 .info = msm_pcm_channel_weight_info,
4508 .get = msm_pcm_channel_weight_get,
4509 .put = msm_pcm_channel_weight_put,
4510 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4511 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 6,}
4512 },
4513 {
4514 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4515 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4516 .name = "MultiMedia28 Output Channel8",
4517 .info = msm_pcm_channel_weight_info,
4518 .get = msm_pcm_channel_weight_get,
4519 .put = msm_pcm_channel_weight_put,
4520 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4521 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 7,}
4522 },
4523 {
4524 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4525 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4526 .name = "MultiMedia28 Output Channel9",
4527 .info = msm_pcm_channel_weight_info,
4528 .get = msm_pcm_channel_weight_get,
4529 .put = msm_pcm_channel_weight_put,
4530 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4531 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 8,}
4532 },
4533 {
4534 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4535 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4536 .name = "MultiMedia28 Output Channel10",
4537 .info = msm_pcm_channel_weight_info,
4538 .get = msm_pcm_channel_weight_get,
4539 .put = msm_pcm_channel_weight_put,
4540 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4541 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 9,}
4542 },
4543 {
4544 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4545 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4546 .name = "MultiMedia28 Output Channel11",
4547 .info = msm_pcm_channel_weight_info,
4548 .get = msm_pcm_channel_weight_get,
4549 .put = msm_pcm_channel_weight_put,
4550 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4551 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 10,}
4552 },
4553 {
4554 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4555 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4556 .name = "MultiMedia28 Output Channel12",
4557 .info = msm_pcm_channel_weight_info,
4558 .get = msm_pcm_channel_weight_get,
4559 .put = msm_pcm_channel_weight_put,
4560 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4561 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 11,}
4562 },
4563 {
4564 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4565 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4566 .name = "MultiMedia28 Output Channel13",
4567 .info = msm_pcm_channel_weight_info,
4568 .get = msm_pcm_channel_weight_get,
4569 .put = msm_pcm_channel_weight_put,
4570 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4571 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 12,}
4572 },
4573 {
4574 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4575 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4576 .name = "MultiMedia28 Output Channel14",
4577 .info = msm_pcm_channel_weight_info,
4578 .get = msm_pcm_channel_weight_get,
4579 .put = msm_pcm_channel_weight_put,
4580 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4581 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 13,}
4582 },
4583 {
4584 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4585 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4586 .name = "MultiMedia29 Output Channel1",
4587 .info = msm_pcm_channel_weight_info,
4588 .get = msm_pcm_channel_weight_get,
4589 .put = msm_pcm_channel_weight_put,
4590 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4591 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 0,}
4592 },
4593 {
4594 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4595 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4596 .name = "MultiMedia29 Output Channel2",
4597 .info = msm_pcm_channel_weight_info,
4598 .get = msm_pcm_channel_weight_get,
4599 .put = msm_pcm_channel_weight_put,
4600 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4601 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 1, }
4602 },
4603 {
4604 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4605 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4606 .name = "MultiMedia29 Output Channel3",
4607 .info = msm_pcm_channel_weight_info,
4608 .get = msm_pcm_channel_weight_get,
4609 .put = msm_pcm_channel_weight_put,
4610 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4611 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 2,}
4612 },
4613 {
4614 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4615 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4616 .name = "MultiMedia29 Output Channel4",
4617 .info = msm_pcm_channel_weight_info,
4618 .get = msm_pcm_channel_weight_get,
4619 .put = msm_pcm_channel_weight_put,
4620 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4621 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 3,}
4622 },
4623 {
4624 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4625 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4626 .name = "MultiMedia29 Output Channel5",
4627 .info = msm_pcm_channel_weight_info,
4628 .get = msm_pcm_channel_weight_get,
4629 .put = msm_pcm_channel_weight_put,
4630 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4631 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 4,}
4632 },
4633 {
4634 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4635 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4636 .name = "MultiMedia29 Output Channel6",
4637 .info = msm_pcm_channel_weight_info,
4638 .get = msm_pcm_channel_weight_get,
4639 .put = msm_pcm_channel_weight_put,
4640 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4641 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 5,}
4642 },
4643 {
4644 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4645 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4646 .name = "MultiMedia29 Output Channel7",
4647 .info = msm_pcm_channel_weight_info,
4648 .get = msm_pcm_channel_weight_get,
4649 .put = msm_pcm_channel_weight_put,
4650 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4651 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 6,}
4652 },
4653 {
4654 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4655 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4656 .name = "MultiMedia29 Output Channel8",
4657 .info = msm_pcm_channel_weight_info,
4658 .get = msm_pcm_channel_weight_get,
4659 .put = msm_pcm_channel_weight_put,
4660 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4661 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 7,}
4662 },
4663 {
4664 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4665 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4666 .name = "MultiMedia29 Output Channel9",
4667 .info = msm_pcm_channel_weight_info,
4668 .get = msm_pcm_channel_weight_get,
4669 .put = msm_pcm_channel_weight_put,
4670 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4671 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 8,}
4672 },
4673 {
4674 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4675 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4676 .name = "MultiMedia29 Output Channel10",
4677 .info = msm_pcm_channel_weight_info,
4678 .get = msm_pcm_channel_weight_get,
4679 .put = msm_pcm_channel_weight_put,
4680 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4681 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 9,}
4682 },
4683 {
4684 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4685 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4686 .name = "MultiMedia29 Output Channel11",
4687 .info = msm_pcm_channel_weight_info,
4688 .get = msm_pcm_channel_weight_get,
4689 .put = msm_pcm_channel_weight_put,
4690 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4691 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 10,}
4692 },
4693 {
4694 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4695 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4696 .name = "MultiMedia29 Output Channel12",
4697 .info = msm_pcm_channel_weight_info,
4698 .get = msm_pcm_channel_weight_get,
4699 .put = msm_pcm_channel_weight_put,
4700 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4701 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 11,}
4702 },
4703 {
4704 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4705 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4706 .name = "MultiMedia29 Output Channel13",
4707 .info = msm_pcm_channel_weight_info,
4708 .get = msm_pcm_channel_weight_get,
4709 .put = msm_pcm_channel_weight_put,
4710 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4711 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 12,}
4712 },
4713 {
4714 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4715 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4716 .name = "MultiMedia29 Output Channel14",
4717 .info = msm_pcm_channel_weight_info,
4718 .get = msm_pcm_channel_weight_get,
4719 .put = msm_pcm_channel_weight_put,
4720 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4721 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 13,}
4722 },
4723 {
4724 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4725 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05304726 .name = "MultiMedia30 Output Channel1",
4727 .info = msm_pcm_channel_weight_info,
4728 .get = msm_pcm_channel_weight_get,
4729 .put = msm_pcm_channel_weight_put,
4730 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4731 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 0,}
4732 },
4733 {
4734 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4735 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4736 .name = "MultiMedia30 Output Channel2",
4737 .info = msm_pcm_channel_weight_info,
4738 .get = msm_pcm_channel_weight_get,
4739 .put = msm_pcm_channel_weight_put,
4740 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4741 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 1, }
4742 },
4743 {
4744 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4745 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4746 .name = "MultiMedia30 Output Channel3",
4747 .info = msm_pcm_channel_weight_info,
4748 .get = msm_pcm_channel_weight_get,
4749 .put = msm_pcm_channel_weight_put,
4750 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4751 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 2,}
4752 },
4753 {
4754 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4755 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4756 .name = "MultiMedia30 Output Channel4",
4757 .info = msm_pcm_channel_weight_info,
4758 .get = msm_pcm_channel_weight_get,
4759 .put = msm_pcm_channel_weight_put,
4760 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4761 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 3,}
4762 },
4763 {
4764 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4765 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4766 .name = "MultiMedia30 Output Channel5",
4767 .info = msm_pcm_channel_weight_info,
4768 .get = msm_pcm_channel_weight_get,
4769 .put = msm_pcm_channel_weight_put,
4770 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4771 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 4,}
4772 },
4773 {
4774 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4775 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4776 .name = "MultiMedia30 Output Channel6",
4777 .info = msm_pcm_channel_weight_info,
4778 .get = msm_pcm_channel_weight_get,
4779 .put = msm_pcm_channel_weight_put,
4780 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4781 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 5,}
4782 },
4783 {
4784 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4785 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4786 .name = "MultiMedia30 Output Channel7",
4787 .info = msm_pcm_channel_weight_info,
4788 .get = msm_pcm_channel_weight_get,
4789 .put = msm_pcm_channel_weight_put,
4790 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4791 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 6,}
4792 },
4793 {
4794 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4795 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4796 .name = "MultiMedia30 Output Channel8",
4797 .info = msm_pcm_channel_weight_info,
4798 .get = msm_pcm_channel_weight_get,
4799 .put = msm_pcm_channel_weight_put,
4800 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4801 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 7,}
4802 },
4803 {
4804 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4805 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4806 .name = "MultiMedia30 Output Channel9",
4807 .info = msm_pcm_channel_weight_info,
4808 .get = msm_pcm_channel_weight_get,
4809 .put = msm_pcm_channel_weight_put,
4810 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4811 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 8,}
4812 },
4813 {
4814 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4815 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4816 .name = "MultiMedia30 Output Channel10",
4817 .info = msm_pcm_channel_weight_info,
4818 .get = msm_pcm_channel_weight_get,
4819 .put = msm_pcm_channel_weight_put,
4820 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4821 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 9,}
4822 },
4823 {
4824 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4825 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4826 .name = "MultiMedia30 Output Channel11",
4827 .info = msm_pcm_channel_weight_info,
4828 .get = msm_pcm_channel_weight_get,
4829 .put = msm_pcm_channel_weight_put,
4830 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4831 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 10,}
4832 },
4833 {
4834 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4835 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4836 .name = "MultiMedia30 Output Channel12",
4837 .info = msm_pcm_channel_weight_info,
4838 .get = msm_pcm_channel_weight_get,
4839 .put = msm_pcm_channel_weight_put,
4840 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4841 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 11,}
4842 },
4843 {
4844 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4845 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4846 .name = "MultiMedia30 Output Channel13",
4847 .info = msm_pcm_channel_weight_info,
4848 .get = msm_pcm_channel_weight_get,
4849 .put = msm_pcm_channel_weight_put,
4850 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4851 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 12,}
4852 },
4853 {
4854 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4855 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4856 .name = "MultiMedia30 Output Channel14",
4857 .info = msm_pcm_channel_weight_info,
4858 .get = msm_pcm_channel_weight_get,
4859 .put = msm_pcm_channel_weight_put,
4860 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4861 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 13,}
4862 },
4863 {
4864 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4865 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304866 .name = "MultiMedia1 Channel1",
4867 .info = msm_pcm_channel_input_be_info,
4868 .get = msm_pcm_channel_input_be_get,
4869 .put = msm_pcm_channel_input_be_put,
4870 .private_value = (unsigned long)&(mm1_ch1_enum)
4871 },
4872 {
4873 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4874 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4875 .name = "MultiMedia1 Channel2",
4876 .info = msm_pcm_channel_input_be_info,
4877 .get = msm_pcm_channel_input_be_get,
4878 .put = msm_pcm_channel_input_be_put,
4879 .private_value = (unsigned long)&(mm1_ch2_enum)
4880 },
4881 {
4882 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4883 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4884 .name = "MultiMedia1 Channel3",
4885 .info = msm_pcm_channel_input_be_info,
4886 .get = msm_pcm_channel_input_be_get,
4887 .put = msm_pcm_channel_input_be_put,
4888 .private_value = (unsigned long)&(mm1_ch3_enum)
4889 },
4890 {
4891 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4892 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4893 .name = "MultiMedia1 Channel4",
4894 .info = msm_pcm_channel_input_be_info,
4895 .get = msm_pcm_channel_input_be_get,
4896 .put = msm_pcm_channel_input_be_put,
4897 .private_value = (unsigned long)&(mm1_ch4_enum)
4898 },
4899 {
4900 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4901 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4902 .name = "MultiMedia1 Channel5",
4903 .info = msm_pcm_channel_input_be_info,
4904 .get = msm_pcm_channel_input_be_get,
4905 .put = msm_pcm_channel_input_be_put,
4906 .private_value = (unsigned long)&(mm1_ch5_enum)
4907 },
4908 {
4909 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4910 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4911 .name = "MultiMedia1 Channel6",
4912 .info = msm_pcm_channel_input_be_info,
4913 .get = msm_pcm_channel_input_be_get,
4914 .put = msm_pcm_channel_input_be_put,
4915 .private_value = (unsigned long)&(mm1_ch6_enum)
4916 },
4917 {
4918 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4919 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4920 .name = "MultiMedia1 Channel7",
4921 .info = msm_pcm_channel_input_be_info,
4922 .get = msm_pcm_channel_input_be_get,
4923 .put = msm_pcm_channel_input_be_put,
4924 .private_value = (unsigned long)&(mm1_ch7_enum)
4925 },
4926 {
4927 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4928 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4929 .name = "MultiMedia1 Channel8",
4930 .info = msm_pcm_channel_input_be_info,
4931 .get = msm_pcm_channel_input_be_get,
4932 .put = msm_pcm_channel_input_be_put,
4933 .private_value = (unsigned long)&(mm1_ch8_enum)
4934 },
Chaithanya Krishna Bacharajue48fb2b2019-05-08 13:02:08 +05304935 {
4936 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4937 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05304938 .name = "MultiMedia18 Channel1",
4939 .info = msm_pcm_channel_input_be_info,
4940 .get = msm_pcm_channel_input_be_get,
4941 .put = msm_pcm_channel_input_be_put,
4942 .private_value = (unsigned long)&(mm18_ch1_enum)
4943 },
4944 {
4945 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4946 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4947 .name = "MultiMedia18 Channel2",
4948 .info = msm_pcm_channel_input_be_info,
4949 .get = msm_pcm_channel_input_be_get,
4950 .put = msm_pcm_channel_input_be_put,
4951 .private_value = (unsigned long)&(mm18_ch2_enum)
4952 },
4953 {
4954 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4955 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4956 .name = "MultiMedia19 Channel1",
4957 .info = msm_pcm_channel_input_be_info,
4958 .get = msm_pcm_channel_input_be_get,
4959 .put = msm_pcm_channel_input_be_put,
4960 .private_value = (unsigned long)&(mm19_ch1_enum)
4961 },
4962 {
4963 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4964 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4965 .name = "MultiMedia19 Channel2",
4966 .info = msm_pcm_channel_input_be_info,
4967 .get = msm_pcm_channel_input_be_get,
4968 .put = msm_pcm_channel_input_be_put,
4969 .private_value = (unsigned long)&(mm19_ch2_enum)
4970 },
4971 {
4972 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4973 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4974 .name = "MultiMedia28 Channel1",
4975 .info = msm_pcm_channel_input_be_info,
4976 .get = msm_pcm_channel_input_be_get,
4977 .put = msm_pcm_channel_input_be_put,
4978 .private_value = (unsigned long)&(mm28_ch1_enum)
4979 },
4980 {
4981 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4982 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4983 .name = "MultiMedia28 Channel2",
4984 .info = msm_pcm_channel_input_be_info,
4985 .get = msm_pcm_channel_input_be_get,
4986 .put = msm_pcm_channel_input_be_put,
4987 .private_value = (unsigned long)&(mm28_ch2_enum)
4988 },
4989 {
4990 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4991 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4992 .name = "MultiMedia29 Channel1",
4993 .info = msm_pcm_channel_input_be_info,
4994 .get = msm_pcm_channel_input_be_get,
4995 .put = msm_pcm_channel_input_be_put,
4996 .private_value = (unsigned long)&(mm29_ch1_enum)
4997 },
4998 {
4999 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5000 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5001 .name = "MultiMedia29 Channel2",
5002 .info = msm_pcm_channel_input_be_info,
5003 .get = msm_pcm_channel_input_be_get,
5004 .put = msm_pcm_channel_input_be_put,
5005 .private_value = (unsigned long)&(mm29_ch2_enum)
5006 },
5007 {
5008 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5009 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05305010 .name = "MultiMedia30 Channel1",
5011 .info = msm_pcm_channel_input_be_info,
5012 .get = msm_pcm_channel_input_be_get,
5013 .put = msm_pcm_channel_input_be_put,
5014 .private_value = (unsigned long)&(mm30_ch1_enum)
5015 },
5016 {
5017 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5018 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5019 .name = "MultiMedia30 Channel2",
5020 .info = msm_pcm_channel_input_be_info,
5021 .get = msm_pcm_channel_input_be_get,
5022 .put = msm_pcm_channel_input_be_put,
5023 .private_value = (unsigned long)&(mm30_ch2_enum)
5024 },
5025 {
5026 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5027 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharajue48fb2b2019-05-08 13:02:08 +05305028 .name = "MultiMedia1 Output Channel Map",
5029 .info = msm_pcm_channel_output_map_info,
5030 .get = msm_pcm_channel_output_map_get,
5031 .put = msm_pcm_channel_output_map_put,
5032 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5033 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1,}
5034 },
5035 {
5036 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5037 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5038 .name = "MultiMedia2 Output Channel Map",
5039 .info = msm_pcm_channel_output_map_info,
5040 .get = msm_pcm_channel_output_map_get,
5041 .put = msm_pcm_channel_output_map_put,
5042 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5043 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA2,}
5044 },
5045 {
5046 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5047 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5048 .name = "MultiMedia3 Output Channel Map",
5049 .info = msm_pcm_channel_output_map_info,
5050 .get = msm_pcm_channel_output_map_get,
5051 .put = msm_pcm_channel_output_map_put,
5052 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5053 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA3,}
5054 },
5055 {
5056 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5057 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5058 .name = "MultiMedia4 Output Channel Map",
5059 .info = msm_pcm_channel_output_map_info,
5060 .get = msm_pcm_channel_output_map_get,
5061 .put = msm_pcm_channel_output_map_put,
5062 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5063 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA4,}
5064 },
5065 {
5066 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5067 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5068 .name = "MultiMedia5 Output Channel Map",
5069 .info = msm_pcm_channel_output_map_info,
5070 .get = msm_pcm_channel_output_map_get,
5071 .put = msm_pcm_channel_output_map_put,
5072 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5073 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA5,}
5074 },
5075 {
5076 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5077 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5078 .name = "MultiMedia6 Output Channel Map",
5079 .info = msm_pcm_channel_output_map_info,
5080 .get = msm_pcm_channel_output_map_get,
5081 .put = msm_pcm_channel_output_map_put,
5082 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5083 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA6,}
5084 },
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05305085 {
5086 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5087 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5088 .name = "MultiMedia18 Output Channel Map",
5089 .info = msm_pcm_channel_output_map_info,
5090 .get = msm_pcm_channel_output_map_get,
5091 .put = msm_pcm_channel_output_map_put,
5092 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5093 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18,}
5094 },
5095 {
5096 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5097 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5098 .name = "MultiMedia19 Output Channel Map",
5099 .info = msm_pcm_channel_output_map_info,
5100 .get = msm_pcm_channel_output_map_get,
5101 .put = msm_pcm_channel_output_map_put,
5102 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5103 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19,}
5104 },
5105 {
5106 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5107 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5108 .name = "MultiMedia28 Output Channel Map",
5109 .info = msm_pcm_channel_output_map_info,
5110 .get = msm_pcm_channel_output_map_get,
5111 .put = msm_pcm_channel_output_map_put,
5112 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5113 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28,}
5114 },
5115 {
5116 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5117 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5118 .name = "MultiMedia29 Output Channel Map",
5119 .info = msm_pcm_channel_output_map_info,
5120 .get = msm_pcm_channel_output_map_get,
5121 .put = msm_pcm_channel_output_map_put,
5122 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5123 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29,}
5124 },
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05305125 {
5126 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5127 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5128 .name = "MultiMedia30 Output Channel Map",
5129 .info = msm_pcm_channel_output_map_info,
5130 .get = msm_pcm_channel_output_map_get,
5131 .put = msm_pcm_channel_output_map_put,
5132 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5133 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30,}
5134 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305135};
Chaithanya Krishna Bacharajue48fb2b2019-05-08 13:02:08 +05305136
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305137static int msm_ec_ref_ch_get(struct snd_kcontrol *kcontrol,
5138 struct snd_ctl_elem_value *ucontrol)
5139{
5140 ucontrol->value.integer.value[0] = msm_ec_ref_ch;
5141 pr_debug("%s: msm_ec_ref_ch = %ld\n", __func__,
5142 ucontrol->value.integer.value[0]);
5143 return 0;
5144}
5145
5146static int msm_ec_ref_ch_put(struct snd_kcontrol *kcontrol,
5147 struct snd_ctl_elem_value *ucontrol)
5148{
5149 msm_ec_ref_ch = ucontrol->value.integer.value[0];
5150 pr_debug("%s: msm_ec_ref_ch = %d\n", __func__, msm_ec_ref_ch);
5151 adm_num_ec_ref_rx_chans(msm_ec_ref_ch);
5152 return 0;
5153}
5154
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05305155static int msm_ec_ref_ch_downmixed_get(struct snd_kcontrol *kcontrol,
5156 struct snd_ctl_elem_value *ucontrol)
5157{
5158 ucontrol->value.integer.value[0] = msm_ec_ref_ch_downmixed;
5159 pr_debug("%s: msm_ec_ref_downmixed_ch = %ld\n", __func__,
5160 ucontrol->value.integer.value[0]);
5161 return 0;
5162}
5163
5164static int msm_ec_ref_ch_downmixed_put(struct snd_kcontrol *kcontrol,
5165 struct snd_ctl_elem_value *ucontrol)
5166{
5167 msm_ec_ref_ch_downmixed = ucontrol->value.integer.value[0];
5168 pr_debug("%s: msm_ec_ref_downmixed_ch = %d\n",
5169 __func__, msm_ec_ref_ch_downmixed);
5170 adm_num_ec_ref_rx_chans_downmixed(msm_ec_ref_ch_downmixed);
5171 return 0;
5172}
5173
5174static int msm_ec_ref_chmixer_weights_put(struct snd_kcontrol *kcontrol,
5175 struct snd_ctl_elem_value *ucontrol)
5176{
5177 int i = 0, ret = 0;
5178 uint16_t weights[PCM_FORMAT_MAX_NUM_CHANNEL_V8] = {0};
5179 int out_channel_idx = ((struct soc_multi_mixer_control *)
5180 kcontrol->private_value)->shift;
5181
5182 for (; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; i++)
5183 weights[i] = ucontrol->value.integer.value[i];
5184
5185 ret = adm_ec_ref_chmixer_weights(out_channel_idx,
5186 weights, PCM_FORMAT_MAX_NUM_CHANNEL_V8);
5187 pr_debug("%s: ch_index = %d, ret = %d\n", __func__, out_channel_idx, ret);
5188 return ret;
5189}
5190
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305191static const char *const ec_ref_ch_text[] = {"Zero", "One", "Two", "Three",
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05305192 "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven",
5193 "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305194
5195static int msm_ec_ref_bit_format_get(struct snd_kcontrol *kcontrol,
5196 struct snd_ctl_elem_value *ucontrol)
5197{
5198 switch (msm_ec_ref_bit_format) {
5199 case SNDRV_PCM_FORMAT_S24_LE:
5200 ucontrol->value.integer.value[0] = 2;
5201 break;
5202 case SNDRV_PCM_FORMAT_S16_LE:
5203 ucontrol->value.integer.value[0] = 1;
5204 break;
5205 default:
5206 ucontrol->value.integer.value[0] = 0;
5207 break;
5208 }
5209 pr_debug("%s: msm_ec_ref_bit_format = %ld\n",
5210 __func__, ucontrol->value.integer.value[0]);
5211 return 0;
5212}
5213
5214static int msm_ec_ref_bit_format_put(struct snd_kcontrol *kcontrol,
5215 struct snd_ctl_elem_value *ucontrol)
5216{
5217 u16 bit_width = 0;
5218
5219 switch (ucontrol->value.integer.value[0]) {
5220 case 2:
5221 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S24_LE;
5222 break;
5223 case 1:
5224 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
5225 break;
5226 default:
5227 msm_ec_ref_bit_format = 0;
5228 break;
5229 }
5230
5231 if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S16_LE)
5232 bit_width = 16;
5233 else if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S24_LE)
5234 bit_width = 24;
5235
5236 pr_debug("%s: msm_ec_ref_bit_format = %d\n",
5237 __func__, msm_ec_ref_bit_format);
5238 adm_ec_ref_rx_bit_width(bit_width);
5239 return 0;
5240}
5241
5242static char const *ec_ref_bit_format_text[] = {"0", "S16_LE", "S24_LE"};
5243
5244static int msm_ec_ref_rate_get(struct snd_kcontrol *kcontrol,
5245 struct snd_ctl_elem_value *ucontrol)
5246{
5247 ucontrol->value.integer.value[0] = msm_ec_ref_sampling_rate;
5248 pr_debug("%s: msm_ec_ref_sampling_rate = %ld\n",
5249 __func__, ucontrol->value.integer.value[0]);
5250 return 0;
5251}
5252
5253static int msm_ec_ref_rate_put(struct snd_kcontrol *kcontrol,
5254 struct snd_ctl_elem_value *ucontrol)
5255{
5256 switch (ucontrol->value.integer.value[0]) {
5257 case 0:
5258 msm_ec_ref_sampling_rate = 0;
5259 break;
5260 case 1:
5261 msm_ec_ref_sampling_rate = 8000;
5262 break;
5263 case 2:
5264 msm_ec_ref_sampling_rate = 16000;
5265 break;
5266 case 3:
5267 msm_ec_ref_sampling_rate = 32000;
5268 break;
5269 case 4:
5270 msm_ec_ref_sampling_rate = 44100;
5271 break;
5272 case 5:
5273 msm_ec_ref_sampling_rate = 48000;
5274 break;
5275 case 6:
5276 msm_ec_ref_sampling_rate = 96000;
5277 break;
5278 case 7:
5279 msm_ec_ref_sampling_rate = 192000;
5280 break;
5281 case 8:
5282 msm_ec_ref_sampling_rate = 384000;
5283 break;
5284 default:
5285 msm_ec_ref_sampling_rate = 48000;
5286 break;
5287 }
5288 pr_debug("%s: msm_ec_ref_sampling_rate = %d\n",
5289 __func__, msm_ec_ref_sampling_rate);
5290 adm_ec_ref_rx_sampling_rate(msm_ec_ref_sampling_rate);
5291 return 0;
5292}
5293
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05305294static int get_ec_ref_port_id(int value, int *index)
5295{
5296 int port_id;
5297
5298 switch (value) {
5299 case 0:
5300 *index = 0;
5301 port_id = AFE_PORT_INVALID;
5302 break;
5303 case 1:
5304 *index = 1;
5305 port_id = SLIMBUS_0_RX;
5306 break;
5307 case 2:
5308 *index = 2;
5309 port_id = AFE_PORT_ID_PRIMARY_MI2S_RX;
5310 break;
5311 case 3:
5312 *index = 3;
5313 port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
5314 break;
5315 case 4:
5316 *index = 4;
5317 port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
5318 break;
5319 case 5:
5320 *index = 5;
5321 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
5322 break;
5323 case 6:
5324 *index = 6;
5325 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
5326 break;
5327 case 7:
5328 *index = 7;
5329 port_id = AFE_PORT_ID_SECONDARY_MI2S_RX;
5330 break;
5331 case 9:
5332 *index = 9;
5333 port_id = SLIMBUS_5_RX;
5334 break;
5335 case 10:
5336 *index = 10;
5337 port_id = SLIMBUS_1_TX;
5338 break;
5339 case 11:
5340 *index = 11;
5341 port_id = AFE_PORT_ID_QUATERNARY_TDM_TX_1;
5342 break;
5343 case 12:
5344 *index = 12;
5345 port_id = AFE_PORT_ID_QUATERNARY_TDM_RX;
5346 break;
5347 case 13:
5348 *index = 13;
5349 port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_1;
5350 break;
5351 case 14:
5352 *index = 14;
5353 port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_2;
5354 break;
5355 case 15:
5356 *index = 15;
5357 port_id = SLIMBUS_6_RX;
5358 break;
5359 case 16:
5360 *index = 16;
5361 port_id = AFE_PORT_ID_TERTIARY_MI2S_RX;
5362 break;
5363 case 17:
5364 *index = 17;
5365 port_id = AFE_PORT_ID_QUATERNARY_MI2S_RX;
5366 break;
5367 case 18:
5368 *index = 18;
5369 port_id = AFE_PORT_ID_TERTIARY_TDM_TX;
5370 break;
5371 case 19:
5372 *index = 19;
5373 port_id = AFE_PORT_ID_USB_RX;
5374 break;
5375 case 20:
5376 *index = 20;
5377 port_id = AFE_PORT_ID_INT0_MI2S_RX;
5378 break;
5379 case 21:
5380 *index = 21;
5381 port_id = AFE_PORT_ID_INT4_MI2S_RX;
5382 break;
5383 case 22:
5384 *index = 22;
5385 port_id = AFE_PORT_ID_INT3_MI2S_TX;
5386 break;
5387 case 23:
5388 *index = 23;
5389 port_id = AFE_PORT_ID_HDMI_OVER_DP_RX;
5390 break;
5391 case 24:
5392 *index = 24;
5393 port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_0;
5394 break;
5395 case 25:
5396 *index = 25;
5397 port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_1;
5398 break;
5399 case 26:
5400 *index = 26;
5401 port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_0;
5402 break;
5403 case 27:
5404 *index = 27;
5405 port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_1;
5406 break;
5407 case 28:
5408 *index = 28;
5409 port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_2;
5410 break;
5411 case 29:
5412 *index = 29;
5413 port_id = SLIMBUS_7_RX;
5414 break;
5415 case 30:
5416 *index = 30;
5417 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_0;
5418 break;
5419 case 31:
5420 *index = 31;
5421 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_1;
5422 break;
5423 case 32:
5424 *index = 32;
5425 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_2;
5426 break;
5427 case 33:
5428 *index = 33;
5429 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_3;
5430 break;
5431 case 34:
5432 *index = 34;
5433 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_0;
5434 break;
5435 case 35:
5436 *index = 35;
5437 port_id = AFE_PORT_ID_TERTIARY_TDM_RX_2;
5438 break;
5439 case 36:
5440 *index = 36;
5441 port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
5442 break;
Vignesh Kulothungan757b7542019-08-19 15:14:37 -07005443 case 37:
5444 *index = 37;
5445 port_id = AFE_PORT_ID_HDMI_OVER_DP_RX;
5446 break;
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05305447 default:
5448 *index = 0; /* NONE */
5449 pr_err("%s: Invalid value %d\n", __func__, value);
5450 port_id = AFE_PORT_INVALID;
5451 break;
5452 }
5453
5454 return port_id;
5455}
5456
5457static int msm_routing_afe_lb_tx_port_get(struct snd_kcontrol *kcontrol,
5458 struct snd_ctl_elem_value *ucontrol)
5459{
5460 pr_debug("%s: port index = %d", __func__, afe_loopback_tx_port_index);
5461 mutex_lock(&routing_lock);
5462 ucontrol->value.integer.value[0] = afe_loopback_tx_port_index;
5463 mutex_unlock(&routing_lock);
5464
5465 return 0;
5466}
5467
5468static int msm_routing_afe_lb_tx_port_put(struct snd_kcontrol *kcontrol,
5469 struct snd_ctl_elem_value *ucontrol)
5470{
5471 int value = ucontrol->value.integer.value[0];
5472
5473 mutex_lock(&routing_lock);
5474 afe_loopback_tx_port_id = get_ec_ref_port_id(value,
5475 &afe_loopback_tx_port_index);
5476 pr_debug("%s: afe_loopback_tx_port_index = %d\n",
5477 __func__, afe_loopback_tx_port_index);
5478 mutex_unlock(&routing_lock);
5479
5480 return 0;
5481}
5482
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305483static const char *const ec_ref_rate_text[] = {"0", "8000", "16000",
5484 "32000", "44100", "48000", "96000", "192000", "384000"};
5485
5486static const struct soc_enum msm_route_ec_ref_params_enum[] = {
Vignesh Kulothungan757b7542019-08-19 15:14:37 -07005487 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_ch_text), ec_ref_ch_text),
5488 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_bit_format_text),
5489 ec_ref_bit_format_text),
5490 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rate_text), ec_ref_rate_text),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305491};
5492
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305493static const char *const ec_ref_rx[] = { "None", "SLIM_RX", "I2S_RX",
5494 "PRI_MI2S_TX", "SEC_MI2S_TX",
5495 "TERT_MI2S_TX", "QUAT_MI2S_TX", "SEC_I2S_RX", "PROXY_RX",
5496 "SLIM_5_RX", "SLIM_1_TX", "QUAT_TDM_TX_1",
5497 "QUAT_TDM_RX_0", "QUAT_TDM_RX_1", "QUAT_TDM_RX_2", "SLIM_6_RX",
5498 "TERT_MI2S_RX", "QUAT_MI2S_RX", "TERT_TDM_TX_0", "USB_AUDIO_RX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305499 "INT0_MI2S_RX", "INT4_MI2S_RX", "INT3_MI2S_TX", "DISPLAY_PORT",
5500 "WSA_CDC_DMA_RX_0", "WSA_CDC_DMA_RX_1",
Zhou Songb167db12018-07-02 17:14:00 +08005501 "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_2",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05305502 "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 -07005503 "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 -07005504 "DISPLAY_PORT1",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305505};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305506
5507static const struct soc_enum msm_route_ec_ref_rx_enum[] = {
5508 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rx), ec_ref_rx),
5509};
5510
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05305511static const struct snd_kcontrol_new ec_ref_param_controls[] = {
5512 SOC_ENUM_EXT("EC Reference Channels", msm_route_ec_ref_params_enum[0],
5513 msm_ec_ref_ch_get, msm_ec_ref_ch_put),
5514 SOC_ENUM_EXT("EC Reference Bit Format", msm_route_ec_ref_params_enum[1],
5515 msm_ec_ref_bit_format_get, msm_ec_ref_bit_format_put),
5516 SOC_ENUM_EXT("EC Reference SampleRate", msm_route_ec_ref_params_enum[2],
5517 msm_ec_ref_rate_get, msm_ec_ref_rate_put),
5518 SOC_ENUM_EXT("EC Reference Downmixed Channels",
5519 msm_route_ec_ref_params_enum[0],
5520 msm_ec_ref_ch_downmixed_get, msm_ec_ref_ch_downmixed_put),
5521 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch1", SND_SOC_NOPM,
5522 0, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5523 msm_ec_ref_chmixer_weights_put),
5524 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch2", SND_SOC_NOPM,
5525 1, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5526 msm_ec_ref_chmixer_weights_put),
5527 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch3", SND_SOC_NOPM,
5528 2, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5529 msm_ec_ref_chmixer_weights_put),
5530 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch4", SND_SOC_NOPM,
5531 3, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5532 msm_ec_ref_chmixer_weights_put),
5533 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch5", SND_SOC_NOPM,
5534 4, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5535 msm_ec_ref_chmixer_weights_put),
5536 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch6", SND_SOC_NOPM,
5537 5, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5538 msm_ec_ref_chmixer_weights_put),
5539 SOC_ENUM_EXT("AFE_LOOPBACK_TX Port", msm_route_ec_ref_rx_enum[0],
5540 msm_routing_afe_lb_tx_port_get, msm_routing_afe_lb_tx_port_put),
5541};
5542
5543static int msm_routing_ec_ref_rx_get(struct snd_kcontrol *kcontrol,
5544 struct snd_ctl_elem_value *ucontrol)
5545{
5546 pr_debug("%s: ec_ref_rx = %d", __func__, msm_route_ec_ref_rx);
5547 mutex_lock(&routing_lock);
5548 ucontrol->value.integer.value[0] = msm_route_ec_ref_rx;
5549 mutex_unlock(&routing_lock);
5550
5551 return 0;
5552}
5553
5554static int msm_routing_ec_ref_rx_put(struct snd_kcontrol *kcontrol,
5555 struct snd_ctl_elem_value *ucontrol)
5556{
5557 int value = ucontrol->value.integer.value[0];
5558 struct snd_soc_dapm_widget *widget =
5559 snd_soc_dapm_kcontrol_widget(kcontrol);
5560 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
5561 struct snd_soc_dapm_update *update = NULL;
5562
5563 mutex_lock(&routing_lock);
5564 msm_ec_ref_port_id = get_ec_ref_port_id(value, &msm_route_ec_ref_rx);
5565 adm_ec_ref_rx_id(msm_ec_ref_port_id);
5566 pr_debug("%s: msm_route_ec_ref_rx = %d\n",
5567 __func__, msm_route_ec_ref_rx);
5568 mutex_unlock(&routing_lock);
5569
5570 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol,
5571 msm_route_ec_ref_rx, e, update);
5572 return 0;
5573}
5574
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305575static const struct snd_kcontrol_new ext_ec_ref_mux_ul1 =
5576 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL1 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_ul2 =
5581 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL2 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_ul3 =
5586 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL3 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_ul4 =
5591 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL4 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_ul5 =
5596 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL5 MUX Mux",
5597 msm_route_ec_ref_rx_enum[0],
5598 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5599
5600static const struct snd_kcontrol_new ext_ec_ref_mux_ul6 =
5601 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL6 MUX Mux",
5602 msm_route_ec_ref_rx_enum[0],
5603 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5604
5605static const struct snd_kcontrol_new ext_ec_ref_mux_ul8 =
5606 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL8 MUX Mux",
5607 msm_route_ec_ref_rx_enum[0],
5608 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5609
5610static const struct snd_kcontrol_new ext_ec_ref_mux_ul9 =
5611 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL9 MUX Mux",
5612 msm_route_ec_ref_rx_enum[0],
5613 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5614
Asish Bhattacharya34504582017-08-08 12:55:01 +05305615static const struct snd_kcontrol_new ext_ec_ref_mux_ul16 =
5616 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL16 MUX Mux",
5617 msm_route_ec_ref_rx_enum[0],
5618 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5619
Laxminath Kasam38070be2017-08-17 18:21:59 +05305620static const struct snd_kcontrol_new ext_ec_ref_mux_ul10 =
5621 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL10 MUX Mux",
5622 msm_route_ec_ref_rx_enum[0],
5623 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5624
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305625static const struct snd_kcontrol_new ext_ec_ref_mux_ul17 =
5626 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL17 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_ul18 =
5631 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL18 MUX Mux",
5632 msm_route_ec_ref_rx_enum[0],
5633 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5634
5635static const struct snd_kcontrol_new ext_ec_ref_mux_ul19 =
5636 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL19 MUX Mux",
5637 msm_route_ec_ref_rx_enum[0],
5638 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5639
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305640static const struct snd_kcontrol_new ext_ec_ref_mux_ul28 =
5641 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL28 MUX Mux",
5642 msm_route_ec_ref_rx_enum[0],
5643 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5644
5645static const struct snd_kcontrol_new ext_ec_ref_mux_ul29 =
5646 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL29 MUX Mux",
5647 msm_route_ec_ref_rx_enum[0],
5648 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5649
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305650static int msm_routing_ext_ec_get(struct snd_kcontrol *kcontrol,
5651 struct snd_ctl_elem_value *ucontrol)
5652{
5653 pr_debug("%s: ext_ec_ref_rx = %x\n", __func__, msm_route_ext_ec_ref);
5654
5655 mutex_lock(&routing_lock);
5656 ucontrol->value.integer.value[0] = msm_route_ext_ec_ref;
5657 mutex_unlock(&routing_lock);
5658 return 0;
5659}
5660
5661static int msm_routing_ext_ec_put(struct snd_kcontrol *kcontrol,
5662 struct snd_ctl_elem_value *ucontrol)
5663{
Asish Bhattacharya34504582017-08-08 12:55:01 +05305664 struct snd_soc_dapm_widget *widget =
5665 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305666 int mux = ucontrol->value.enumerated.item[0];
5667 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
5668 int ret = 1;
5669 bool state = true;
5670 uint16_t ext_ec_ref_port_id;
5671 struct snd_soc_dapm_update *update = NULL;
5672
5673 if (mux >= e->items) {
5674 pr_err("%s: Invalid mux value %d\n", __func__, mux);
5675 return -EINVAL;
5676 }
5677
5678 mutex_lock(&routing_lock);
5679 msm_route_ext_ec_ref = ucontrol->value.integer.value[0];
5680
5681 switch (msm_route_ext_ec_ref) {
5682 case EXT_EC_REF_PRI_MI2S_TX:
5683 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
5684 break;
5685 case EXT_EC_REF_SEC_MI2S_TX:
5686 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
5687 break;
5688 case EXT_EC_REF_TERT_MI2S_TX:
5689 ext_ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
5690 break;
5691 case EXT_EC_REF_QUAT_MI2S_TX:
5692 ext_ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
5693 break;
5694 case EXT_EC_REF_QUIN_MI2S_TX:
5695 ext_ec_ref_port_id = AFE_PORT_ID_QUINARY_MI2S_TX;
5696 break;
5697 case EXT_EC_REF_SLIM_1_TX:
5698 ext_ec_ref_port_id = SLIMBUS_1_TX;
5699 break;
Karthikeyan Mani925413e2019-09-10 16:57:28 -07005700 case EXT_EC_REF_PRI_TDM_TX:
5701 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_TDM_TX;
5702 break;
Karthikeyan Manibfba0542018-06-20 15:20:28 -07005703 case EXT_EC_REF_SEC_TDM_TX:
5704 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
5705 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305706 case EXT_EC_REF_NONE:
5707 default:
5708 ext_ec_ref_port_id = AFE_PORT_INVALID;
5709 state = false;
5710 break;
5711 }
5712
5713 pr_debug("%s: val = %d ext_ec_ref_port_id = 0x%0x state = %d\n",
5714 __func__, msm_route_ext_ec_ref, ext_ec_ref_port_id, state);
5715
5716 if (!voc_set_ext_ec_ref_port_id(ext_ec_ref_port_id, state)) {
5717 mutex_unlock(&routing_lock);
5718 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol, mux, e,
5719 update);
5720 } else {
5721 ret = -EINVAL;
5722 mutex_unlock(&routing_lock);
5723 }
5724 return ret;
5725}
5726
5727static const char * const ext_ec_ref_rx[] = {"NONE", "PRI_MI2S_TX",
5728 "SEC_MI2S_TX", "TERT_MI2S_TX",
5729 "QUAT_MI2S_TX", "QUIN_MI2S_TX",
Karthikeyan Mani925413e2019-09-10 16:57:28 -07005730 "SLIM_1_TX", "PRI_TDM_TX",
5731 "SEC_TDM_TX"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305732
5733static const struct soc_enum msm_route_ext_ec_ref_rx_enum[] = {
5734 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ext_ec_ref_rx), ext_ec_ref_rx),
5735};
5736
5737static const struct snd_kcontrol_new voc_ext_ec_mux =
5738 SOC_DAPM_ENUM_EXT("VOC_EXT_EC MUX Mux", msm_route_ext_ec_ref_rx_enum[0],
5739 msm_routing_ext_ec_get, msm_routing_ext_ec_put);
5740
5741
5742static const struct snd_kcontrol_new pri_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005743 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5744 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305745 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5746 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005747 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5748 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305749 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5750 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005751 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5752 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305753 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5754 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005755 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5756 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305757 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5758 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005759 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5760 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305761 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5762 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005763 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5764 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305765 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5766 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005767 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5768 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305769 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5770 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005771 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5772 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305773 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005775 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5776 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305777 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005779 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5780 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305781 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005783 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5784 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305785 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005787 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5788 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305789 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005791 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5792 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305793 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005795 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5796 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305797 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005799 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5800 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305801 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005803 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5804 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305805 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005807 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5808 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305809 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005811 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5812 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305813 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005815 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5816 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305817 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5818 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305819 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5820 MSM_BACKEND_DAI_PRI_I2S_RX,
5821 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005823 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5824 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305825 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005827 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5828 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305829 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5830 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05305831 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
5832 MSM_BACKEND_DAI_PRI_I2S_RX,
5833 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
5834 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305835};
5836
5837static const struct snd_kcontrol_new sec_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005838 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5839 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305840 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5841 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005842 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5843 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305844 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5845 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005846 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5847 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305848 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5849 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005850 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5851 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305852 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5853 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005854 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5855 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305856 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5857 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005858 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5859 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305860 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5861 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005862 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5863 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305864 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5865 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005866 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5867 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305868 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5869 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005870 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5871 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305872 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005874 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5875 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305876 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005878 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5879 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305880 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005882 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5883 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305884 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005886 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5887 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305888 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005890 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5891 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305892 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005894 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5895 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305896 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005898 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5899 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305900 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005902 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5903 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305904 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5905 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005906 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5907 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305908 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5909 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005910 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5911 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305912 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5913 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305914 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5915 MSM_BACKEND_DAI_SEC_I2S_RX,
5916 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5917 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005918 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5919 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305920 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5921 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005922 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5923 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305924 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5925 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05305926 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
5927 MSM_BACKEND_DAI_SEC_I2S_RX,
5928 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
5929 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305930};
5931
Ralf Herzc8701f72018-06-20 11:37:35 +02005932static const struct snd_kcontrol_new pri_spdif_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005933 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005934 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305935 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5936 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005937 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005938 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305939 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5940 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005941 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005942 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305943 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5944 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005945 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005946 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305947 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5948 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005949 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005950 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305951 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5952 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005953 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005954 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305955 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5956 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005957 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005958 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305959 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5960 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005961 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005962 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305963 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5964 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005965 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005966 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305967 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005969 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005970 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305971 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5972 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005973 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005974 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305975 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5976 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005977 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005978 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305979 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5980 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005981 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005982 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305983 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5984 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005985 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005986 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305987 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5988 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005989 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005990 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305991 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005993 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005994 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305995 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005997 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005998 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305999 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006001 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02006002 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306003 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6004 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006005 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02006006 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306007 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6008 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306009 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6010 MSM_BACKEND_DAI_PRI_SPDIF_RX,
6011 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006013 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02006014 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306015 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006017 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02006018 MSM_BACKEND_DAI_PRI_SPDIF_RX,
6019 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6020 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306021 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6022 MSM_BACKEND_DAI_PRI_SPDIF_RX,
6023 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6024 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02006025};
6026
6027static const struct snd_kcontrol_new sec_spdif_rx_mixer_controls[] = {
6028 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6029 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6030 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6031 msm_routing_put_audio_mixer),
6032 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6033 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6034 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6035 msm_routing_put_audio_mixer),
6036 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6037 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6038 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6039 msm_routing_put_audio_mixer),
6040 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6041 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6042 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6043 msm_routing_put_audio_mixer),
6044 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6045 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6046 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6047 msm_routing_put_audio_mixer),
6048 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6049 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6050 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6051 msm_routing_put_audio_mixer),
6052 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6053 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6054 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6055 msm_routing_put_audio_mixer),
6056 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6057 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6058 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6059 msm_routing_put_audio_mixer),
6060 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6061 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6062 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6063 msm_routing_put_audio_mixer),
6064 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6065 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6066 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6067 msm_routing_put_audio_mixer),
6068 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6069 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6070 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6071 msm_routing_put_audio_mixer),
6072 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6073 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6074 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6075 msm_routing_put_audio_mixer),
6076 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6077 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6078 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6079 msm_routing_put_audio_mixer),
6080 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6081 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6082 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6083 msm_routing_put_audio_mixer),
6084 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6085 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6086 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6087 msm_routing_put_audio_mixer),
6088 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6089 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6090 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6091 msm_routing_put_audio_mixer),
6092 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6093 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6094 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6095 msm_routing_put_audio_mixer),
6096 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6097 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6098 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6099 msm_routing_put_audio_mixer),
6100 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6101 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6102 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6103 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306104 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6105 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6106 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6107 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02006108 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6109 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6110 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6111 msm_routing_put_audio_mixer),
6112 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6113 MSM_BACKEND_DAI_SEC_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306114 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6115 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306116 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6117 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6118 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6119 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306120};
6121
6122static const struct snd_kcontrol_new slimbus_2_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006123 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6124 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306125 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6126 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006127 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6128 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306129 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006131 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6132 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306133 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006135 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6136 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306137 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006139 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6140 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306141 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006143 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6144 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306145 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006147 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6148 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306149 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006151 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6152 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306153 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006155 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6156 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306157 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006159 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6160 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306161 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006163 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6164 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306165 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006167 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6168 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306169 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006171 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6172 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306173 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006175 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6176 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306177 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006179 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6180 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306181 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006183 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6184 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306185 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6186 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306187 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6188 MSM_BACKEND_DAI_SLIMBUS_2_RX,
6189 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6190 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306191};
6192
6193static const struct snd_kcontrol_new slimbus_5_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006194 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6195 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306196 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006198 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6199 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306200 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006202 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6203 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306204 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006206 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6207 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306208 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6209 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006210 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6211 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306212 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6213 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006214 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6215 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306216 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6217 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006218 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6219 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306220 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6221 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006222 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6223 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306224 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006226 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6227 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306228 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006230 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6231 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306232 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6233 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006234 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6235 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306236 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6237 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006238 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6239 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306240 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6241 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006242 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6243 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306244 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6245 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006246 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6247 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306248 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6249 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006250 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6251 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306252 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006254 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6255 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306256 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6257 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006258 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6259 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306260 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6261 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006262 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6263 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306264 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6265 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006266 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6267 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306268 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6269 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306270 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6271 MSM_BACKEND_DAI_SLIMBUS_5_RX,
6272 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6273 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006274 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6275 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306276 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6277 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006278 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6279 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306280 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6281 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306282 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6283 MSM_BACKEND_DAI_SLIMBUS_5_RX,
6284 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6285 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306286};
6287
6288static const struct snd_kcontrol_new slimbus_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006289 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6290 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306291 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6292 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006293 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6294 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306295 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006297 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6298 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306299 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6300 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006301 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6302 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306303 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6304 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006305 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6306 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306307 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006309 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6310 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306311 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006313 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6314 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306315 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006317 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6318 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306319 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006321 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6322 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306323 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6324 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006325 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6326 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306327 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006329 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6330 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306331 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6332 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006333 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6334 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306335 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006337 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6338 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306339 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6340 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006341 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6342 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306343 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6344 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006345 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6346 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306347 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006349 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6350 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306351 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006353 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6354 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306355 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006357 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6358 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306359 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006361 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6362 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306363 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6364 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306365 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6366 MSM_BACKEND_DAI_SLIMBUS_0_RX,
6367 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006369 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6370 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306371 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006373 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6374 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306375 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6376 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306377 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6378 MSM_BACKEND_DAI_SLIMBUS_0_RX,
6379 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6380 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306381};
6382
6383static const struct snd_kcontrol_new mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006384 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6385 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306386 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6387 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006388 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6389 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306390 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6391 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006392 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6393 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306394 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6395 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006396 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6397 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306398 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6399 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006400 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6401 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306402 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6403 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006404 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6405 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306406 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6407 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006408 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6409 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306410 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6411 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006412 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6413 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306414 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6415 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006416 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6417 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306418 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6419 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006420 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6421 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306422 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006424 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6425 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306426 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006428 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6429 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306430 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6431 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006432 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6433 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306434 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6435 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006436 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6437 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306438 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6439 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006440 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6441 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306442 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6443 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006444 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6445 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306446 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006448 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6449 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306450 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006452 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6453 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306454 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006456 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6457 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306458 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6459 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306460 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6461 MSM_BACKEND_DAI_MI2S_RX,
6462 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6463 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006464 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6465 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306466 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006468 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6469 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306470 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6471 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306472 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6473 MSM_BACKEND_DAI_MI2S_RX,
6474 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6475 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306476};
6477
6478static const struct snd_kcontrol_new quaternary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006479 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6480 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306481 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006483 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6484 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306485 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006487 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6488 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306489 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6490 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006491 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6492 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306493 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006495 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6496 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306497 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006499 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6500 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306501 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006503 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6504 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306505 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006507 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6508 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306509 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006511 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6512 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306513 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006515 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6516 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306517 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006519 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6520 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306521 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006523 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6524 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306525 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006527 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6528 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306529 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006531 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6532 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306533 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006535 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6536 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306537 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006539 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6540 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306541 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006543 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6544 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306545 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006547 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6548 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306549 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006551 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6552 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306553 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6554 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306555 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6556 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
6557 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006559 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6560 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306561 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006563 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6564 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306565 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6566 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306567 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6568 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
6569 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6570 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306571};
6572
6573static const struct snd_kcontrol_new quinary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006574 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6575 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306576 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006578 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6579 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306580 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006582 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6583 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306584 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006586 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6587 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306588 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6589 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006590 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6591 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306592 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006594 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6595 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306596 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006598 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6599 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306600 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006602 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6603 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306604 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6605 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006606 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6607 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306608 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006610 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6611 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306612 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6613 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006614 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6615 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306616 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6617 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006618 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6619 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306620 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006622 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6623 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306624 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006626 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6627 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306628 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006630 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6631 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306632 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006634 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6635 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306636 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006638 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6639 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306640 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006642 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6643 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306644 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006646 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6647 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306648 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6649 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306650 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6651 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
6652 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006654 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6655 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306656 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006658 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6659 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306660 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6661 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306662 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6663 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
6664 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6665 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306666
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306667};
6668
Karthikeyan Manic3700752019-03-11 18:33:53 -07006669static const struct snd_kcontrol_new senary_mi2s_rx_mixer_controls[] = {
6670 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6671 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6672 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6673 msm_routing_put_audio_mixer),
6674 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6675 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6676 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6677 msm_routing_put_audio_mixer),
6678 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6679 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6680 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6681 msm_routing_put_audio_mixer),
6682 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6683 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6684 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6685 msm_routing_put_audio_mixer),
6686 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6687 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6688 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6689 msm_routing_put_audio_mixer),
6690 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6691 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6692 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6693 msm_routing_put_audio_mixer),
6694 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6695 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6696 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6697 msm_routing_put_audio_mixer),
6698 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6699 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6700 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6701 msm_routing_put_audio_mixer),
6702 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6703 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6704 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6705 msm_routing_put_audio_mixer),
6706 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6707 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6708 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6709 msm_routing_put_audio_mixer),
6710 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6711 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6712 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6713 msm_routing_put_audio_mixer),
6714 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6715 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6716 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6717 msm_routing_put_audio_mixer),
6718 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6719 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6720 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6721 msm_routing_put_audio_mixer),
6722 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6723 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6724 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6725 msm_routing_put_audio_mixer),
6726 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6727 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6728 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6729 msm_routing_put_audio_mixer),
6730 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6731 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6732 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6733 msm_routing_put_audio_mixer),
6734 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6735 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6736 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6737 msm_routing_put_audio_mixer),
6738 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6739 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6740 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6741 msm_routing_put_audio_mixer),
6742 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6743 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6744 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6745 msm_routing_put_audio_mixer),
6746 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6747 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6748 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6749 msm_routing_put_audio_mixer),
6750 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6751 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6752 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6753 msm_routing_put_audio_mixer),
6754 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6755 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6756 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6757 msm_routing_put_audio_mixer),
6758
6759};
6760
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306761static const struct snd_kcontrol_new tertiary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006762 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6763 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306764 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006766 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6767 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306768 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006770 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6771 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306772 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006774 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6775 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306776 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006778 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6779 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306780 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006782 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6783 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306784 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6785 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006786 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6787 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306788 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006790 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6791 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306792 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006794 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6795 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306796 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006798 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6799 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306800 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006802 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6803 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306804 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006806 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6807 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306808 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006810 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6811 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306812 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6813 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006814 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6815 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306816 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6817 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006818 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6819 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306820 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6821 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006822 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6823 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306824 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6825 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006826 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6827 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306828 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6829 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306830 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6831 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
6832 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6833 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006834 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6835 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306836 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6837 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006838 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6839 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306840 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6841 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306842 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6843 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
6844 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6845 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306846};
6847
6848static const struct snd_kcontrol_new secondary_mi2s_rx2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006849 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6850 MSM_BACKEND_DAI_SECONDARY_MI2S_RX_SD1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306851 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6852 msm_routing_put_audio_mixer),
6853};
6854
6855static const struct snd_kcontrol_new secondary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006856 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6857 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306858 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006860 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6861 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306862 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006864 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6865 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306866 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006868 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6869 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306870 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006872 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6873 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306874 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006876 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6877 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306878 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006880 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6881 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306882 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006884 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6885 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306886 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006888 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6889 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306890 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006892 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6893 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306894 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006896 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6897 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306898 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006900 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6901 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306902 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006904 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6905 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306906 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006908 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6909 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306910 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006912 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6913 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306914 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006916 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6917 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306918 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006920 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6921 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306922 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006924 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6925 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306926 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006928 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6929 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306930 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6931 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306932 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6933 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
6934 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006936 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6937 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306938 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006940 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6941 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306942 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6943 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306944 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6945 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
6946 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6947 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306948};
6949
6950static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006951 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6952 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306953 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6954 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006955 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6956 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306957 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6958 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006959 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6960 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306961 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6962 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006963 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6964 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306965 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6966 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006967 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6968 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306969 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6970 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006971 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6972 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306973 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6974 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006975 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6976 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306977 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6978 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006979 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6980 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306981 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6982 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006983 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6984 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306985 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6986 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006987 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6988 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306989 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6990 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006991 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6992 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306993 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006995 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6996 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306997 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006999 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7000 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307001 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007003 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7004 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307005 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7006 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007007 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7008 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307009 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7010 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007011 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7012 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307013 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7014 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007015 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7016 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307017 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7018 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007019 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7020 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307021 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7022 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007023 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7024 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307025 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7026 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307027 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7028 MSM_BACKEND_DAI_PRI_MI2S_RX,
7029 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7030 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007031 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7032 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307033 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7034 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007035 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7036 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307037 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7038 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05307039 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
7040 MSM_BACKEND_DAI_PRI_MI2S_RX,
7041 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
7042 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307043
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307044};
7045
7046static const struct snd_kcontrol_new int0_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007047 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7048 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307049 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7050 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007051 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7052 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307053 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7054 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007055 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7056 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307057 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7058 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007059 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7060 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307061 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007063 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7064 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307065 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7066 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007067 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7068 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307069 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7070 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007071 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7072 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307073 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7074 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007075 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7076 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307077 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7078 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007079 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7080 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307081 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007083 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7084 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307085 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007087 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7088 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307089 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007091 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7092 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307093 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007095 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7096 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307097 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007099 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7100 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307101 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007103 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7104 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307105 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007107 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7108 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307109 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7110 msm_routing_put_audio_mixer),
7111};
7112
7113static const struct snd_kcontrol_new int4_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007114 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7115 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307116 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007118 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7119 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307120 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007122 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7123 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307124 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007126 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7127 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307128 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007130 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7131 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307132 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007134 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7135 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307136 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7137 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007138 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7139 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307140 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7141 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007142 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7143 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307144 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7145 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007146 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7147 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307148 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7149 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007150 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7151 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307152 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7153 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007154 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7155 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307156 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007158 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7159 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307160 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007162 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7163 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307164 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007166 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7167 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307168 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007170 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7171 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307172 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007174 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7175 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307176 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7177 msm_routing_put_audio_mixer),
7178};
7179
Ralf Herz29e07132019-07-26 15:15:21 +02007180static const struct snd_kcontrol_new pri_meta_mi2s_rx_mixer_controls[] = {
7181 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7182 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7183 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7184 msm_routing_put_audio_mixer),
7185 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7186 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7187 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7188 msm_routing_put_audio_mixer),
7189 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7190 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7191 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7192 msm_routing_put_audio_mixer),
7193 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7194 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7195 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7196 msm_routing_put_audio_mixer),
7197 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7198 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7199 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7200 msm_routing_put_audio_mixer),
7201 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7202 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7203 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7204 msm_routing_put_audio_mixer),
7205 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7206 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7207 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7208 msm_routing_put_audio_mixer),
7209 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7210 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7211 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7212 msm_routing_put_audio_mixer),
7213 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7214 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7215 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7216 msm_routing_put_audio_mixer),
7217 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7218 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7219 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7220 msm_routing_put_audio_mixer),
7221 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7222 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7223 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7224 msm_routing_put_audio_mixer),
7225 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7226 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7227 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7228 msm_routing_put_audio_mixer),
7229 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7230 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7231 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7232 msm_routing_put_audio_mixer),
7233 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7234 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7235 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7236 msm_routing_put_audio_mixer),
7237 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7238 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7239 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7240 msm_routing_put_audio_mixer),
7241 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7242 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7243 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7244 msm_routing_put_audio_mixer),
7245 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7246 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7247 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7248 msm_routing_put_audio_mixer),
7249 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7250 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7251 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7252 msm_routing_put_audio_mixer),
7253 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7254 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7255 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7256 msm_routing_put_audio_mixer),
7257 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7258 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7259 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7260 msm_routing_put_audio_mixer),
7261 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7262 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7263 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7264 msm_routing_put_audio_mixer),
7265 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7266 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7267 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7268 msm_routing_put_audio_mixer),
7269
7270};
7271
7272static const struct snd_kcontrol_new sec_meta_mi2s_rx_mixer_controls[] = {
7273 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7274 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7275 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7276 msm_routing_put_audio_mixer),
7277 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7278 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7279 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7280 msm_routing_put_audio_mixer),
7281 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7282 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7283 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7284 msm_routing_put_audio_mixer),
7285 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7286 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7287 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7288 msm_routing_put_audio_mixer),
7289 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7290 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7291 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7292 msm_routing_put_audio_mixer),
7293 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7294 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7295 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7296 msm_routing_put_audio_mixer),
7297 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7298 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7299 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7300 msm_routing_put_audio_mixer),
7301 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7302 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7303 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7304 msm_routing_put_audio_mixer),
7305 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7306 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7307 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7308 msm_routing_put_audio_mixer),
7309 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7310 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7311 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7312 msm_routing_put_audio_mixer),
7313 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7314 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7315 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7316 msm_routing_put_audio_mixer),
7317 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7318 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7319 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7320 msm_routing_put_audio_mixer),
7321 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7322 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7323 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7324 msm_routing_put_audio_mixer),
7325 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7326 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7327 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7328 msm_routing_put_audio_mixer),
7329 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7330 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7331 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7332 msm_routing_put_audio_mixer),
7333 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7334 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7335 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7336 msm_routing_put_audio_mixer),
7337 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7338 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7339 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7340 msm_routing_put_audio_mixer),
7341 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7342 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7343 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7344 msm_routing_put_audio_mixer),
7345 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7346 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7347 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7348 msm_routing_put_audio_mixer),
7349 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7350 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7351 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7352 msm_routing_put_audio_mixer),
7353 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7354 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7355 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7356 msm_routing_put_audio_mixer),
7357 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7358 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7359 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7360 msm_routing_put_audio_mixer),
7361};
7362
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307363static const struct snd_kcontrol_new hdmi_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007364 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7365 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307366 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7367 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007368 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7369 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307370 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7371 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007372 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7373 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307374 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7375 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007376 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7377 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307378 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7379 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007380 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7381 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307382 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7383 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007384 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7385 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307386 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7387 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007388 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7389 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307390 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7391 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007392 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7393 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307394 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7395 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007396 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7397 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307398 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7399 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007400 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7401 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307402 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7403 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007404 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7405 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307406 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7407 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007408 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7409 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307410 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7411 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007412 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7413 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307414 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7415 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007416 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7417 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307418 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7419 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007420 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7421 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307422 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007424 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7425 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307426 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007428 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7429 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307430 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7431 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007432 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7433 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307434 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7435 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007436 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7437 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307438 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7439 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307440 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7441 MSM_BACKEND_DAI_HDMI_RX,
7442 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7443 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007444 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7445 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307446 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007448 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7449 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307450 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7451 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05307452 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
7453 MSM_BACKEND_DAI_HDMI_RX,
7454 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
7455 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307456};
7457
7458static const struct snd_kcontrol_new display_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007459 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7460 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307461 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7462 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007463 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7464 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307465 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7466 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007467 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7468 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307469 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7470 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007471 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7472 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307473 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7474 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007475 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7476 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307477 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7478 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007479 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7480 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307481 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007483 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7484 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307485 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007487 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7488 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307489 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7490 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007491 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7492 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307493 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007495 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7496 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307497 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007499 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7500 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307501 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007503 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7504 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307505 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007507 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7508 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307509 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007511 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7512 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307513 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007515 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7516 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307517 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007519 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7520 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307521 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7522 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307523 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7524 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
7525 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7526 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307527};
7528
Karthikeyan Mani57550082018-05-03 18:43:58 -07007529static const struct snd_kcontrol_new display_port1_mixer_controls[] = {
7530 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7531 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7532 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7533 msm_routing_put_audio_mixer),
7534 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7535 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7536 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7537 msm_routing_put_audio_mixer),
7538 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7539 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7540 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7541 msm_routing_put_audio_mixer),
7542 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7543 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7544 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7545 msm_routing_put_audio_mixer),
7546 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7547 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7548 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7549 msm_routing_put_audio_mixer),
7550 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7551 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7552 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7553 msm_routing_put_audio_mixer),
7554 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7555 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7556 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7557 msm_routing_put_audio_mixer),
7558 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7559 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7560 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7561 msm_routing_put_audio_mixer),
7562 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7563 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7564 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7565 msm_routing_put_audio_mixer),
7566 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7567 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7568 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7569 msm_routing_put_audio_mixer),
7570 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7571 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7572 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7573 msm_routing_put_audio_mixer),
7574 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7575 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7576 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7577 msm_routing_put_audio_mixer),
7578 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7579 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7580 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7581 msm_routing_put_audio_mixer),
7582 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7583 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7584 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7585 msm_routing_put_audio_mixer),
7586 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7587 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7588 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7589 msm_routing_put_audio_mixer),
7590 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7591 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7592 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7593 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307594 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7595 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7596 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7597 msm_routing_put_audio_mixer),
Karthikeyan Mani57550082018-05-03 18:43:58 -07007598};
7599
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307600 /* incall music delivery mixer */
7601static const struct snd_kcontrol_new incall_music_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007602 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7603 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307604 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7605 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007606 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7607 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307608 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007610 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7611 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307612 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7613 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007614 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7615 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307616 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7617 msm_routing_put_audio_mixer),
7618};
7619
7620static const struct snd_kcontrol_new incall_music2_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007621 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7622 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307623 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7624 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007625 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7626 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307627 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7628 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007629 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7630 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307631 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007633 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7634 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307635 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7636 msm_routing_put_audio_mixer),
7637};
7638
7639static const struct snd_kcontrol_new slimbus_4_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007640 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7641 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307642 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7643 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007644 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7645 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307646 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7647 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007648 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7649 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307650 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7651 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007652 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7653 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307654 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7655 msm_routing_put_audio_mixer),
7656};
7657
7658static const struct snd_kcontrol_new slimbus_6_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007659 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7660 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307661 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007663 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7664 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307665 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7666 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007667 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7668 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307669 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007671 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7672 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307673 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007675 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7676 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307677 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007679 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7680 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307681 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007683 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7684 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307685 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007687 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7688 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307689 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7690 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007691 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7692 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307693 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007695 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7696 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307697 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007699 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7700 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307701 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007703 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7704 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307705 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007707 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7708 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307709 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007711 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7712 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307713 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007715 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7716 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307717 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007719 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7720 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307721 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7722 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307723 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7724 MSM_BACKEND_DAI_SLIMBUS_6_RX,
7725 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7726 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307727};
7728
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05307729static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_mixer_controls[] = {
7730 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7731 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7732 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7733 msm_routing_put_audio_mixer),
7734 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7735 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7736 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7737 msm_routing_put_audio_mixer),
7738 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7739 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7740 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7741 msm_routing_put_audio_mixer),
7742 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7743 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7744 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7745 msm_routing_put_audio_mixer),
7746 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7747 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7748 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7749 msm_routing_put_audio_mixer),
7750 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7751 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7752 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7753 msm_routing_put_audio_mixer),
7754 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7755 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7756 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7757 msm_routing_put_audio_mixer),
7758 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7759 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7760 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7761 msm_routing_put_audio_mixer),
7762 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7763 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7764 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7765 msm_routing_put_audio_mixer),
7766 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7767 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7768 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7769 msm_routing_put_audio_mixer),
7770 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7771 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7772 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7773 msm_routing_put_audio_mixer),
7774 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7775 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7776 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7777 msm_routing_put_audio_mixer),
7778 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7779 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7780 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7781 msm_routing_put_audio_mixer),
7782 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7783 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7784 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7785 msm_routing_put_audio_mixer),
7786 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7787 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7788 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7789 msm_routing_put_audio_mixer),
7790 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7791 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7792 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7793 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307794 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7795 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7796 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7797 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05307798};
7799
7800static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_mixer_controls[] = {
7801 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7802 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7803 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7804 msm_routing_put_audio_mixer),
7805 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7806 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7807 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7808 msm_routing_put_audio_mixer),
7809 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7810 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7811 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7812 msm_routing_put_audio_mixer),
7813 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7814 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7815 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7816 msm_routing_put_audio_mixer),
7817 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7818 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7819 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7820 msm_routing_put_audio_mixer),
7821 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7822 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7823 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7824 msm_routing_put_audio_mixer),
7825 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7826 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7827 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7828 msm_routing_put_audio_mixer),
7829 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7830 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7831 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7832 msm_routing_put_audio_mixer),
7833 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7834 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7835 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7836 msm_routing_put_audio_mixer),
7837 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7838 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7839 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7840 msm_routing_put_audio_mixer),
7841 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7842 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7843 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7844 msm_routing_put_audio_mixer),
7845 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7846 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7847 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7848 msm_routing_put_audio_mixer),
7849 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7850 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7851 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7852 msm_routing_put_audio_mixer),
7853 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7854 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7855 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7856 msm_routing_put_audio_mixer),
7857 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7858 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7859 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7860 msm_routing_put_audio_mixer),
7861 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7862 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7863 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7864 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307865 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7866 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7867 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7868 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05307869};
7870
Aditya Bavanari1e84a932018-06-18 19:40:08 +05307871static const struct snd_kcontrol_new rx_cdc_dma_rx_0_mixer_controls[] = {
7872 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7873 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7874 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7875 msm_routing_put_audio_mixer),
7876 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7877 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7878 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7879 msm_routing_put_audio_mixer),
7880 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7881 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7882 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7883 msm_routing_put_audio_mixer),
7884 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7885 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7886 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7887 msm_routing_put_audio_mixer),
7888 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7889 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7890 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7891 msm_routing_put_audio_mixer),
7892 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7893 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7894 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7895 msm_routing_put_audio_mixer),
7896 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7897 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7898 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7899 msm_routing_put_audio_mixer),
7900 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7901 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7902 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7903 msm_routing_put_audio_mixer),
7904 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7905 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7906 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7907 msm_routing_put_audio_mixer),
7908 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7909 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7910 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7911 msm_routing_put_audio_mixer),
7912 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7913 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7914 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7915 msm_routing_put_audio_mixer),
7916 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7917 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7918 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7919 msm_routing_put_audio_mixer),
7920 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7921 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7922 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7923 msm_routing_put_audio_mixer),
7924 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7925 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7926 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7927 msm_routing_put_audio_mixer),
7928 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7929 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7930 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7931 msm_routing_put_audio_mixer),
7932 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7933 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7934 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7935 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307936 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7937 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7938 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7939 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05307940};
7941
7942static const struct snd_kcontrol_new rx_cdc_dma_rx_1_mixer_controls[] = {
7943 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7944 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7945 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7946 msm_routing_put_audio_mixer),
7947 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7948 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7949 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7950 msm_routing_put_audio_mixer),
7951 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7952 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7953 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7954 msm_routing_put_audio_mixer),
7955 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7956 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7957 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7958 msm_routing_put_audio_mixer),
7959 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7960 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7961 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7962 msm_routing_put_audio_mixer),
7963 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7964 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7965 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7966 msm_routing_put_audio_mixer),
7967 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7968 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7969 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7970 msm_routing_put_audio_mixer),
7971 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7972 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7973 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7974 msm_routing_put_audio_mixer),
7975 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7976 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7977 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7978 msm_routing_put_audio_mixer),
7979 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7980 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7981 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7982 msm_routing_put_audio_mixer),
7983 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7984 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7985 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7986 msm_routing_put_audio_mixer),
7987 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7988 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7989 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7990 msm_routing_put_audio_mixer),
7991 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7992 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7993 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7994 msm_routing_put_audio_mixer),
7995 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7996 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7997 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7998 msm_routing_put_audio_mixer),
7999 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8000 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
8001 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8002 msm_routing_put_audio_mixer),
8003 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8004 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
8005 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8006 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308007 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8008 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
8009 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8010 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308011};
8012
8013static const struct snd_kcontrol_new rx_cdc_dma_rx_2_mixer_controls[] = {
8014 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8015 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8016 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8017 msm_routing_put_audio_mixer),
8018 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8019 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8020 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8021 msm_routing_put_audio_mixer),
8022 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8023 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8024 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8025 msm_routing_put_audio_mixer),
8026 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8027 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8028 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8029 msm_routing_put_audio_mixer),
8030 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8031 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8032 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8033 msm_routing_put_audio_mixer),
8034 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8035 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8036 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8037 msm_routing_put_audio_mixer),
8038 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8039 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8040 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8041 msm_routing_put_audio_mixer),
8042 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8043 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8044 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8045 msm_routing_put_audio_mixer),
8046 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8047 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8048 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8049 msm_routing_put_audio_mixer),
8050 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8051 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8052 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8053 msm_routing_put_audio_mixer),
8054 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8055 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8056 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8057 msm_routing_put_audio_mixer),
8058 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8059 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8060 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8061 msm_routing_put_audio_mixer),
8062 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8063 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8064 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8065 msm_routing_put_audio_mixer),
8066 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8067 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8068 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8069 msm_routing_put_audio_mixer),
8070 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8071 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8072 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8073 msm_routing_put_audio_mixer),
8074 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8075 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8076 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8077 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308078 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8079 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8080 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8081 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308082};
8083
8084static const struct snd_kcontrol_new rx_cdc_dma_rx_3_mixer_controls[] = {
8085 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8086 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8087 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8088 msm_routing_put_audio_mixer),
8089 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8090 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8091 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8092 msm_routing_put_audio_mixer),
8093 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8094 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8095 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8096 msm_routing_put_audio_mixer),
8097 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8098 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8099 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8100 msm_routing_put_audio_mixer),
8101 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8102 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8103 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8104 msm_routing_put_audio_mixer),
8105 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8106 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8107 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8108 msm_routing_put_audio_mixer),
8109 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8110 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8111 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8112 msm_routing_put_audio_mixer),
8113 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8114 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8115 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8116 msm_routing_put_audio_mixer),
8117 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8118 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8119 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8120 msm_routing_put_audio_mixer),
8121 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8122 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8123 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8124 msm_routing_put_audio_mixer),
8125 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8126 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8127 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8128 msm_routing_put_audio_mixer),
8129 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8130 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8131 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8132 msm_routing_put_audio_mixer),
8133 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8134 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8135 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8136 msm_routing_put_audio_mixer),
8137 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8138 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8139 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8140 msm_routing_put_audio_mixer),
8141 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8142 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8143 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8144 msm_routing_put_audio_mixer),
8145 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8146 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8147 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8148 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308149 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8150 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8151 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8152 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308153};
8154
8155static const struct snd_kcontrol_new rx_cdc_dma_rx_4_mixer_controls[] = {
8156 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8157 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8158 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8159 msm_routing_put_audio_mixer),
8160 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8161 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8162 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8163 msm_routing_put_audio_mixer),
8164 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8165 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8166 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8167 msm_routing_put_audio_mixer),
8168 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8169 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8170 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8171 msm_routing_put_audio_mixer),
8172 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8173 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8174 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8175 msm_routing_put_audio_mixer),
8176 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8177 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8178 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8179 msm_routing_put_audio_mixer),
8180 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8181 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8182 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8183 msm_routing_put_audio_mixer),
8184 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8185 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8186 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8187 msm_routing_put_audio_mixer),
8188 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8189 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8190 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8191 msm_routing_put_audio_mixer),
8192 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8193 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8194 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8195 msm_routing_put_audio_mixer),
8196 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8197 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8198 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8199 msm_routing_put_audio_mixer),
8200 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8201 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8202 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8203 msm_routing_put_audio_mixer),
8204 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8205 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8206 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8207 msm_routing_put_audio_mixer),
8208 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8209 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8210 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8211 msm_routing_put_audio_mixer),
8212 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8213 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8214 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8215 msm_routing_put_audio_mixer),
8216 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8217 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8218 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8219 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308220 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8221 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8222 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8223 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308224};
8225
8226static const struct snd_kcontrol_new rx_cdc_dma_rx_5_mixer_controls[] = {
8227 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8228 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8229 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8230 msm_routing_put_audio_mixer),
8231 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8232 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8233 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8234 msm_routing_put_audio_mixer),
8235 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8236 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8237 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8238 msm_routing_put_audio_mixer),
8239 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8240 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8241 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8242 msm_routing_put_audio_mixer),
8243 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8244 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8245 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8246 msm_routing_put_audio_mixer),
8247 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8248 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8249 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8250 msm_routing_put_audio_mixer),
8251 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8252 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8253 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8254 msm_routing_put_audio_mixer),
8255 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8256 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8257 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8258 msm_routing_put_audio_mixer),
8259 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8260 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8261 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8262 msm_routing_put_audio_mixer),
8263 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8264 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8265 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8266 msm_routing_put_audio_mixer),
8267 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8268 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8269 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8270 msm_routing_put_audio_mixer),
8271 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8272 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8273 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8274 msm_routing_put_audio_mixer),
8275 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8276 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8277 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8278 msm_routing_put_audio_mixer),
8279 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8280 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8281 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8282 msm_routing_put_audio_mixer),
8283 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8284 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8285 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8286 msm_routing_put_audio_mixer),
8287 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8288 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8289 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8290 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308291 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8292 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8293 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8294 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308295};
8296
8297static const struct snd_kcontrol_new rx_cdc_dma_rx_6_mixer_controls[] = {
8298 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8299 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8300 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8301 msm_routing_put_audio_mixer),
8302 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8303 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8304 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8305 msm_routing_put_audio_mixer),
8306 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8307 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8308 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8309 msm_routing_put_audio_mixer),
8310 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8311 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8312 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8313 msm_routing_put_audio_mixer),
8314 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8315 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8316 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8317 msm_routing_put_audio_mixer),
8318 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8319 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8320 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8321 msm_routing_put_audio_mixer),
8322 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8323 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8324 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8325 msm_routing_put_audio_mixer),
8326 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8327 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8328 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8329 msm_routing_put_audio_mixer),
8330 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8331 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8332 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8333 msm_routing_put_audio_mixer),
8334 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8335 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8336 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8337 msm_routing_put_audio_mixer),
8338 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8339 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8340 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8341 msm_routing_put_audio_mixer),
8342 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8343 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8344 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8345 msm_routing_put_audio_mixer),
8346 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8347 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8348 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8349 msm_routing_put_audio_mixer),
8350 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8351 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8352 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8353 msm_routing_put_audio_mixer),
8354 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8355 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8356 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8357 msm_routing_put_audio_mixer),
8358 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8359 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8360 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8361 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308362 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8363 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8364 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8365 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308366};
8367
8368static const struct snd_kcontrol_new rx_cdc_dma_rx_7_mixer_controls[] = {
8369 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8370 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8371 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8372 msm_routing_put_audio_mixer),
8373 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8374 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8375 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8376 msm_routing_put_audio_mixer),
8377 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8378 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8379 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8380 msm_routing_put_audio_mixer),
8381 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8382 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8383 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8384 msm_routing_put_audio_mixer),
8385 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8386 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8387 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8388 msm_routing_put_audio_mixer),
8389 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8390 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8391 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8392 msm_routing_put_audio_mixer),
8393 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8394 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8395 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8396 msm_routing_put_audio_mixer),
8397 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8398 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8399 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8400 msm_routing_put_audio_mixer),
8401 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8402 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8403 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8404 msm_routing_put_audio_mixer),
8405 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8406 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8407 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8408 msm_routing_put_audio_mixer),
8409 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8410 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8411 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8412 msm_routing_put_audio_mixer),
8413 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8414 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8415 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8416 msm_routing_put_audio_mixer),
8417 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8418 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8419 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8420 msm_routing_put_audio_mixer),
8421 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8422 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8423 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8424 msm_routing_put_audio_mixer),
8425 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8426 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8427 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8428 msm_routing_put_audio_mixer),
8429 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8430 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8431 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8432 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308433 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8434 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8435 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8436 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308437};
8438
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308439static const struct snd_kcontrol_new slimbus_7_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008440 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8441 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308442 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8443 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008444 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8445 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308446 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008448 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8449 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308450 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008452 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8453 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308454 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008456 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8457 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308458 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8459 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008460 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8461 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308462 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8463 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008464 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8465 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308466 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008468 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8469 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308470 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008472 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8473 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308474 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8475 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008476 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8477 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308478 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008480 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8481 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308482 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8483 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008484 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8485 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308486 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8487 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008488 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8489 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308490 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8491 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008492 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8493 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308494 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008496 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8497 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308498 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8499 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008500 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8501 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308502 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8503 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308504 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8505 MSM_BACKEND_DAI_SLIMBUS_7_RX,
8506 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8507 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308508};
8509
Surendar Karka3ef3d812018-09-28 18:52:35 +05308510static const struct snd_kcontrol_new slimbus_9_rx_mixer_controls[] = {
8511 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8512 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8513 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8514 msm_routing_put_audio_mixer),
8515 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8516 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8517 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8518 msm_routing_put_audio_mixer),
8519 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8520 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8521 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8522 msm_routing_put_audio_mixer),
8523 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8524 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8525 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8526 msm_routing_put_audio_mixer),
8527 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8528 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8529 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8530 msm_routing_put_audio_mixer),
8531 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8532 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8533 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8534 msm_routing_put_audio_mixer),
8535 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8536 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8537 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8538 msm_routing_put_audio_mixer),
8539 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8540 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8541 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8542 msm_routing_put_audio_mixer),
8543 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8544 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8545 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8546 msm_routing_put_audio_mixer),
8547 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8548 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8549 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8550 msm_routing_put_audio_mixer),
8551 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8552 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8553 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8554 msm_routing_put_audio_mixer),
8555 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8556 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8557 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8558 msm_routing_put_audio_mixer),
8559 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8560 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8561 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8562 msm_routing_put_audio_mixer),
8563 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8564 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8565 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8566 msm_routing_put_audio_mixer),
8567 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8568 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8569 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8570 msm_routing_put_audio_mixer),
8571 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8572 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8573 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8574 msm_routing_put_audio_mixer),
8575 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8576 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8577 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8578 msm_routing_put_audio_mixer),
8579};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308580static const struct snd_kcontrol_new usb_audio_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008581 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8582 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308583 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008585 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8586 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308587 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8588 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008589 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8590 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308591 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8592 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008593 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8594 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308595 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8596 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008597 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8598 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308599 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8600 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008601 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8602 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308603 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8604 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008605 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8606 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308607 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8608 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008609 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8610 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308611 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8612 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008613 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8614 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308615 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8616 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008617 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8618 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308619 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8620 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008621 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8622 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308623 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8624 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008625 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8626 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308627 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8628 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008629 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8630 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308631 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008633 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8634 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308635 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008637 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8638 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308639 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008641 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8642 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308643 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8644 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308645 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8646 MSM_BACKEND_DAI_USB_RX,
8647 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8648 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308649};
8650
8651static const struct snd_kcontrol_new int_bt_sco_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008652 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8653 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308654 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8655 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008656 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8657 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308658 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8659 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008660 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8661 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308662 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8663 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008664 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8665 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308666 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8667 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008668 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8669 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308670 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8671 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008672 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8673 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308674 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8675 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008676 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8677 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308678 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8679 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008680 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8681 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308682 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8683 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008684 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8685 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308686 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8687 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008688 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8689 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308690 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8691 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008692 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8693 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308694 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8695 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008696 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8697 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308698 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8699 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008700 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8701 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308702 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8703 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008704 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8705 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308706 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8707 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008708 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8709 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308710 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8711 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008712 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8713 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308714 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8715 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008716 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
8717 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308718 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
8719 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008720 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
8721 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308722 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
8723 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008724 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
8725 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308726 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
8727 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308728 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8729 MSM_BACKEND_DAI_INT_BT_SCO_RX,
8730 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8731 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008732 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
8733 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308734 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
8735 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008736 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
8737 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308738 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
8739 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05308740 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
8741 MSM_BACKEND_DAI_INT_BT_SCO_RX,
8742 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
8743 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308744};
8745
8746static const struct snd_kcontrol_new int_bt_a2dp_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008747 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8748 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308749 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8750 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008751 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8752 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308753 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8754 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008755 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8756 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308757 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8758 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008759 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8760 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308761 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8762 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008763 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8764 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308765 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8766 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008767 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8768 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308769 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8770 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008771 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8772 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308773 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008775 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8776 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308777 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008779 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8780 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308781 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008783 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8784 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308785 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008787 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8788 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308789 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008791 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8792 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308793 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008795 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8796 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308797 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008799 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8800 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308801 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008803 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8804 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308805 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008807 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8808 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308809 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8810 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308811 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8812 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
8813 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8814 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308815};
8816
8817static const struct snd_kcontrol_new int_fm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008818 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8819 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308820 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8821 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008822 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8823 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308824 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8825 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008826 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8827 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308828 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8829 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008830 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8831 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308832 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8833 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008834 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8835 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308836 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8837 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008838 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8839 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308840 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8841 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008842 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8843 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308844 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8845 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008846 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8847 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308848 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8849 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008850 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8851 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308852 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8853 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008854 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8855 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308856 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8857 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008858 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8859 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308860 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8861 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008862 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8863 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308864 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8865 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008866 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8867 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308868 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8869 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008870 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8871 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308872 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008874 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8875 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308876 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008878 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8879 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308880 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008882 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
8883 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308884 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
8885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008886 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
8887 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308888 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
8889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008890 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
8891 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308892 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
8893 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308894 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8895 MSM_BACKEND_DAI_INT_FM_RX,
8896 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008898 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
8899 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308900 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
8901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008902 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
8903 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308904 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
8905 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05308906 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
8907 MSM_BACKEND_DAI_INT_FM_RX,
8908 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
8909 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308910};
8911
8912static const struct snd_kcontrol_new afe_pcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008913 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8914 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308915 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8916 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008917 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8918 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308919 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008921 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8922 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308923 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8924 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008925 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8926 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308927 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8928 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008929 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8930 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308931 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8932 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008933 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8934 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308935 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8936 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008937 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8938 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308939 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8940 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008941 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8942 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308943 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8944 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008945 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8946 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308947 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8948 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008949 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8950 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308951 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8952 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008953 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8954 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308955 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8956 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008957 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8958 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308959 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8960 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008961 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8962 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308963 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8964 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008965 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8966 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308967 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008969 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8970 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308971 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8972 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008973 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8974 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308975 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8976 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008977 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
8978 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308979 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
8980 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008981 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
8982 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308983 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
8984 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008985 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
8986 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308987 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
8988 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308989 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8990 MSM_BACKEND_DAI_AFE_PCM_RX,
8991 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008993 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
8994 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308995 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
8996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008997 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
8998 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308999 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9000 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05309001 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
9002 MSM_BACKEND_DAI_AFE_PCM_RX,
9003 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
9004 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309005};
9006
9007static const struct snd_kcontrol_new auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009008 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9009 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309010 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009012 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9013 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309014 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009016 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9017 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309018 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009020 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9021 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309022 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009024 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9025 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309026 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009028 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9029 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309030 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009032 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9033 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309034 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009036 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9037 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309038 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009040 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9041 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309042 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9043 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009044 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9045 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309046 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9047 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009048 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9049 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309050 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009052 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9053 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309054 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009056 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9057 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309058 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009060 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9061 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309062 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009064 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9065 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309066 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009068 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9069 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309070 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009072 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
9073 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309074 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9075 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009076 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
9077 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309078 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009080 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
9081 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309082 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9083 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009084 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9085 MSM_BACKEND_DAI_AUXPCM_RX,
9086 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9087 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309088 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9089 MSM_BACKEND_DAI_AUXPCM_RX,
9090 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009092 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
9093 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05309094 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009096 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
9097 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05309098 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9099 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05309100 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
9101 MSM_BACKEND_DAI_AUXPCM_RX,
9102 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
9103 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309104};
9105
9106static const struct snd_kcontrol_new sec_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009107 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9108 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309109 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9110 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009111 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9112 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309113 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9114 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009115 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9116 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309117 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9118 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009119 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9120 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309121 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9122 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009123 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9124 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309125 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9126 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009127 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9128 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309129 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009131 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9132 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309133 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009135 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9136 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309137 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009139 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9140 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309141 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009143 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9144 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309145 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009147 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9148 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309149 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009151 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9152 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309153 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009155 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9156 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309157 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009159 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9160 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309161 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009163 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9164 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309165 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009167 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9168 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309169 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009171 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
9172 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309173 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009175 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
9176 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309177 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009179 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
9180 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309181 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9182 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009183 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9184 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
9185 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9186 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309187 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9188 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
9189 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009191 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
9192 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05309193 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009195 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
9196 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05309197 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9198 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05309199 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
9200 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
9201 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
9202 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309203};
9204
9205static const struct snd_kcontrol_new tert_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009206 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9207 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309208 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9209 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009210 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9211 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309212 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9213 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009214 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9215 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309216 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9217 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009218 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9219 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309220 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9221 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009222 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9223 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309224 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009226 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9227 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309228 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009230 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9231 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309232 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9233 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009234 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9235 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309236 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9237 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009238 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9239 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309240 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9241 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009242 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9243 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309244 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9245 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009246 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9247 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309248 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9249 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009250 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9251 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309252 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009254 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9255 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309256 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9257 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009258 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9259 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309260 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9261 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009262 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9263 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309264 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9265 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009266 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9267 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309268 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9269 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309270 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9271 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
9272 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9273 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309274};
9275
9276static const struct snd_kcontrol_new quat_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009277 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9278 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309279 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009281 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9282 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309283 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9284 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009285 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9286 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309287 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9288 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009289 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9290 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309291 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9292 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009293 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9294 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309295 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009297 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9298 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309299 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9300 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009301 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9302 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309303 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9304 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009305 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9306 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309307 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009309 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9310 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309311 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009313 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9314 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309315 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009317 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9318 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309319 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009321 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9322 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309323 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9324 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009325 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9326 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309327 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009329 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9330 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309331 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9332 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009333 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9334 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309335 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009337 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9338 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309339 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9340 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309341 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9342 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
9343 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9344 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309345};
9346
Rohit Kumara5077932017-09-10 22:05:05 +05309347static const struct snd_kcontrol_new quin_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009348 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9349 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309350 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9351 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009352 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9353 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309354 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9355 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009356 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9357 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309358 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9359 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009360 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9361 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309362 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9363 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009364 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9365 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309366 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9367 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009368 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9369 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309370 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9371 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009372 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9373 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309374 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9375 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009376 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9377 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309378 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9379 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009380 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9381 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309382 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9383 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009384 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9385 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309386 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9387 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009388 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9389 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309390 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9391 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009392 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9393 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309394 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9395 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009396 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9397 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309398 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9399 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009400 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9401 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309402 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9403 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009404 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9405 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309406 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9407 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009408 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9409 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309410 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9411 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309412 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9413 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
9414 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9415 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309416};
Karthikeyan Manic3700752019-03-11 18:33:53 -07009417
9418static const struct snd_kcontrol_new sen_auxpcm_rx_mixer_controls[] = {
9419 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9420 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9421 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9422 msm_routing_put_audio_mixer),
9423 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9424 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9425 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9426 msm_routing_put_audio_mixer),
9427 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9428 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9429 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9430 msm_routing_put_audio_mixer),
9431 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9432 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9433 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9434 msm_routing_put_audio_mixer),
9435 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9436 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9437 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9438 msm_routing_put_audio_mixer),
9439 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9440 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9441 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9442 msm_routing_put_audio_mixer),
9443 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9444 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9445 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9446 msm_routing_put_audio_mixer),
9447 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9448 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9449 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9450 msm_routing_put_audio_mixer),
9451 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9452 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9453 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9454 msm_routing_put_audio_mixer),
9455 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9456 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9457 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9458 msm_routing_put_audio_mixer),
9459 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9460 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9461 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9462 msm_routing_put_audio_mixer),
9463 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9464 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9465 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9466 msm_routing_put_audio_mixer),
9467 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9468 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9469 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9470 msm_routing_put_audio_mixer),
9471 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9472 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9473 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9474 msm_routing_put_audio_mixer),
9475 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9476 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9477 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9478 msm_routing_put_audio_mixer),
9479 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9480 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9481 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9482 msm_routing_put_audio_mixer),
9483 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9484 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9485 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9486 msm_routing_put_audio_mixer),
9487};
9488
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309489static const struct snd_kcontrol_new pri_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009490 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9491 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309492 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009494 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9495 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309496 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9497 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009498 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9499 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309500 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9501 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009502 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9503 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309504 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9505 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009506 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9507 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309508 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9509 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009510 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9511 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309512 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9513 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009514 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9515 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309516 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9517 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009518 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9519 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309520 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9521 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009522 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9523 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309524 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9525 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009526 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9527 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309528 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009530 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9531 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309532 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9533 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009534 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9535 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309536 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9537 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009538 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9539 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309540 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9541 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009542 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9543 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309544 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9545 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009546 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9547 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309548 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9549 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009550 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9551 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309552 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9553 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009554 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9555 MSM_BACKEND_DAI_PRI_TDM_RX_0,
9556 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9557 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009558 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9559 MSM_BACKEND_DAI_PRI_TDM_RX_0,
9560 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9561 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309562};
9563
9564static const struct snd_kcontrol_new pri_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009565 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9566 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309567 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009569 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9570 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309571 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009573 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9574 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309575 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009577 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9578 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309579 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009581 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9582 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309583 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009585 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9586 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309587 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9588 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009589 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9590 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309591 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9592 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009593 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9594 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309595 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9596 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009597 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9598 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309599 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9600 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009601 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9602 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309603 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9604 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009605 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9606 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309607 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9608 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009609 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9610 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309611 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9612 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009613 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9614 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309615 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9616 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009617 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9618 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309619 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9620 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009621 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9622 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309623 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9624 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009625 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9626 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309627 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9628 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009629 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9630 MSM_BACKEND_DAI_PRI_TDM_RX_1,
9631 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9632 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009633 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9634 MSM_BACKEND_DAI_PRI_TDM_RX_1,
9635 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9636 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309637};
9638
9639static const struct snd_kcontrol_new pri_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009640 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9641 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309642 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9643 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009644 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9645 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309646 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9647 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009648 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9649 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309650 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9651 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009652 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9653 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309654 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9655 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009656 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9657 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309658 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9659 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009660 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9661 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309662 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9663 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009664 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9665 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309666 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9667 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009668 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9669 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309670 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9671 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009672 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9673 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309674 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9675 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009676 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9677 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309678 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9679 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009680 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9681 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309682 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9683 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009684 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9685 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309686 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9687 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009688 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9689 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309690 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9691 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009692 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9693 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309694 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9695 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009696 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9697 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309698 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9699 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009700 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9701 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309702 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9703 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009704 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9705 MSM_BACKEND_DAI_PRI_TDM_RX_2,
9706 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9707 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009708 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9709 MSM_BACKEND_DAI_PRI_TDM_RX_2,
9710 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9711 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309712};
9713
9714static const struct snd_kcontrol_new pri_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009715 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9716 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309717 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009719 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9720 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309721 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9722 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009723 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9724 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309725 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9726 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009727 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9728 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309729 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009731 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9732 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309733 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9734 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009735 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9736 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309737 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9738 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009739 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9740 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309741 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9742 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009743 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9744 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309745 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9746 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009747 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9748 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309749 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9750 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009751 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9752 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309753 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9754 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009755 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9756 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309757 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9758 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009759 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9760 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309761 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9762 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009763 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9764 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309765 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9766 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009767 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9768 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309769 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9770 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009771 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9772 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309773 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009775 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9776 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309777 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9778 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009779 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9780 MSM_BACKEND_DAI_PRI_TDM_RX_3,
9781 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9782 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009783 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9784 MSM_BACKEND_DAI_PRI_TDM_RX_3,
9785 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9786 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309787};
9788
9789static const struct snd_kcontrol_new pri_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009790 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9791 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309792 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009794 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9795 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309796 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009798 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9799 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309800 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009802 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9803 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309804 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009806 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9807 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309808 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009810 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9811 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309812 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9813 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009814 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9815 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309816 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9817 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009818 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9819 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309820 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9821 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009822 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9823 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309824 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9825 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009826 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9827 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309828 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9829 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009830 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9831 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309832 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9833 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009834 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9835 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309836 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9837 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009838 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9839 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309840 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9841 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009842 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9843 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309844 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9845 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009846 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9847 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309848 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9849 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009850 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9851 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309852 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9853 msm_routing_put_audio_mixer),
9854};
9855
9856static const struct snd_kcontrol_new sec_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009857 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9858 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309859 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009861 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9862 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309863 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009865 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9866 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309867 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9868 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009869 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9870 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309871 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009873 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9874 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309875 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009877 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9878 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309879 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009881 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9882 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309883 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9884 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009885 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9886 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309887 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9888 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009889 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9890 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309891 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9892 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009893 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9894 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309895 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9896 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009897 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9898 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309899 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9900 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009901 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9902 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309903 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9904 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009905 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9906 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309907 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9908 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009909 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9910 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309911 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9912 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009913 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9914 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309915 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9916 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009917 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9918 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309919 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9920 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009921 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9922 MSM_BACKEND_DAI_SEC_TDM_RX_0,
9923 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9924 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009925 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9926 MSM_BACKEND_DAI_SEC_TDM_RX_0,
9927 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9928 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309929};
9930
9931static const struct snd_kcontrol_new sec_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009932 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9933 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309934 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009936 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9937 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309938 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009940 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9941 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309942 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009944 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9945 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309946 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9947 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009948 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9949 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309950 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9951 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009952 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9953 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309954 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009956 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9957 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309958 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009960 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9961 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309962 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9963 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009964 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9965 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309966 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9967 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009968 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9969 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309970 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9971 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009972 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9973 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309974 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009976 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9977 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309978 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009980 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9981 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309982 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009984 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9985 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309986 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009988 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9989 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309990 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009992 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9993 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309994 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9995 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009996 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9997 MSM_BACKEND_DAI_SEC_TDM_RX_1,
9998 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9999 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010000 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10001 MSM_BACKEND_DAI_SEC_TDM_RX_1,
10002 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10003 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010004};
10005
10006static const struct snd_kcontrol_new sec_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010007 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10008 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010009 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10010 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010011 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10012 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010013 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10014 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010015 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10016 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010017 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10018 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010019 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10020 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010021 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10022 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010023 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10024 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010025 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10026 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010027 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10028 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010029 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10030 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010031 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10032 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010033 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10034 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010035 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10036 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010037 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10038 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010039 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10040 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010041 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10042 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010043 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10044 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010045 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10046 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010047 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10048 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010049 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10050 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010051 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10052 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010053 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10054 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010055 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10056 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010057 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10058 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010059 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10060 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010061 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010063 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10064 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010065 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10066 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010067 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10068 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010069 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10070 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010071 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10072 MSM_BACKEND_DAI_SEC_TDM_RX_2,
10073 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10074 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010075 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10076 MSM_BACKEND_DAI_SEC_TDM_RX_2,
10077 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10078 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010079};
10080
10081static const struct snd_kcontrol_new sec_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010082 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10083 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010084 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10085 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010086 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10087 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010088 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10089 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010090 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10091 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010092 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010094 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10095 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010096 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10097 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010098 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10099 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010100 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10101 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010102 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10103 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010104 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10105 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010106 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10107 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010108 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10109 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010110 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10111 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010112 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10113 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010114 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10115 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010116 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010118 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10119 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010120 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010122 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10123 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010124 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010126 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10127 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010128 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010130 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10131 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010132 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010134 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10135 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010136 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10137 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010138 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10139 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010140 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10141 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010142 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10143 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010144 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10145 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010146 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10147 MSM_BACKEND_DAI_SEC_TDM_RX_3,
10148 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10149 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010150 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10151 MSM_BACKEND_DAI_SEC_TDM_RX_3,
10152 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10153 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010154};
10155
10156static const struct snd_kcontrol_new sec_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010157 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10158 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010159 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010161 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10162 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010163 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010165 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10166 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010167 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010169 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10170 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010171 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010173 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10174 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010175 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010177 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10178 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010179 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010181 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10182 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010183 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010185 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10186 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010187 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010189 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10190 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010191 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010193 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10194 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010195 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010197 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10198 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010199 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010201 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10202 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010203 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010205 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10206 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010207 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010209 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10210 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010211 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010213 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10214 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010215 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010217 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10218 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010219 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10220 msm_routing_put_audio_mixer),
10221};
10222
10223static const struct snd_kcontrol_new tert_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010224 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10225 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010226 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10227 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010228 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10229 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010230 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10231 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010232 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10233 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010234 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10235 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010236 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10237 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010238 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10239 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010240 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10241 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010242 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10243 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010244 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10245 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010246 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10247 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010248 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10249 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010250 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10251 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010252 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10253 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010254 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10255 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010256 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10257 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010258 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10259 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010260 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10261 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010262 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010264 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10265 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010266 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010268 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10269 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010270 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10271 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010272 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10273 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010274 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10275 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010276 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10277 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010278 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10279 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010280 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10281 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010282 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010284 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10285 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010286 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10287 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010288 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10289 MSM_BACKEND_DAI_TERT_TDM_RX_0,
10290 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10291 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010292 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10293 MSM_BACKEND_DAI_TERT_TDM_RX_0,
10294 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10295 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010296};
10297
10298static const struct snd_kcontrol_new tert_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010299 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10300 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010301 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10302 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010303 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10304 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010305 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10306 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010307 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10308 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010309 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10310 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010311 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10312 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010313 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10314 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010315 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10316 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010317 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10318 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010319 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10320 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010321 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10322 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010323 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10324 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010325 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10326 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010327 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10328 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010329 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10330 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010331 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10332 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010333 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10334 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010335 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10336 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010337 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10338 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010339 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10340 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010341 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010343 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10344 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010345 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010347 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10348 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010349 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010351 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10352 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010353 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010355 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10356 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010357 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10358 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010359 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10360 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010361 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10362 msm_routing_put_audio_mixer),
10363};
10364
10365static const struct snd_kcontrol_new tert_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010366 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10367 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010368 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010370 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10371 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010372 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010374 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10375 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010376 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10377 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010378 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10379 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010380 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10381 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010382 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10383 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010384 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10385 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010386 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10387 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010388 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10389 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010390 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10391 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010392 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10393 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010394 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10395 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010396 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010398 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10399 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010400 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10401 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010402 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10403 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010404 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10405 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010406 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10407 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010408 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010410 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10411 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010412 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010414 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10415 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010416 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10417 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010418 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10419 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010420 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010422 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10423 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010424 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10425 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010426 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10427 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010428 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10429 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010430 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10431 MSM_BACKEND_DAI_TERT_TDM_RX_1,
10432 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10433 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010434 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10435 MSM_BACKEND_DAI_TERT_TDM_RX_1,
10436 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10437 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010438};
10439
10440static const struct snd_kcontrol_new tert_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010441 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10442 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010443 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10444 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010445 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10446 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010447 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10448 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010449 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10450 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010451 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10452 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010453 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10454 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010455 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10456 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010457 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10458 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010459 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10460 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010461 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10462 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010463 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10464 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010465 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10466 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010467 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10468 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010469 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10470 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010471 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010473 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10474 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010475 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010477 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10478 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010479 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010481 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10482 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010483 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010485 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10486 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010487 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010489 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10490 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010491 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010493 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10494 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010495 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010497 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10498 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010499 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010501 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10502 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010503 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10504 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010505 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10506 MSM_BACKEND_DAI_TERT_TDM_RX_2,
10507 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10508 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010509 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10510 MSM_BACKEND_DAI_TERT_TDM_RX_2,
10511 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10512 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010513};
10514
10515static const struct snd_kcontrol_new tert_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010516 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10517 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010518 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10519 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010520 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10521 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010522 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10523 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010524 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10525 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010526 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10527 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010528 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10529 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010530 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10531 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010532 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10533 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010534 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10535 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010536 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10537 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010538 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10539 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010540 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10541 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010542 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010544 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10545 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010546 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010548 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10549 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010550 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010552 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10553 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010554 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010556 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10557 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010558 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010560 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10561 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010562 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010564 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10565 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010566 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010568 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10569 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010570 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010572 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10573 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010574 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010576 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10577 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010578 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10579 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010580 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10581 MSM_BACKEND_DAI_TERT_TDM_RX_3,
10582 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10583 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010584 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10585 MSM_BACKEND_DAI_TERT_TDM_RX_3,
10586 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10587 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010588};
10589
10590static const struct snd_kcontrol_new tert_tdm_rx_4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010591 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10592 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010593 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010595 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10596 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010597 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010599 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10600 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010601 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10602 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010603 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10604 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010605 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010607 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10608 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010609 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010611 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10612 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010613 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010615 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10616 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010617 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010619 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10620 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010621 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10622 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010623 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10624 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010625 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010627 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10628 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010629 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10630 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010631 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10632 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010633 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10634 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010635 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10636 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010637 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010639 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10640 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010641 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010643 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10644 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010645 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010647 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10648 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010649 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010651 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10652 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010653 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10654 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010655 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10656 MSM_BACKEND_DAI_TERT_TDM_RX_4,
10657 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10658 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010659 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10660 MSM_BACKEND_DAI_TERT_TDM_RX_4,
10661 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10662 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010663};
10664
10665static const struct snd_kcontrol_new quat_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010666 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10667 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010668 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010670 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10671 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010672 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010674 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10675 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010676 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010678 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10679 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010680 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010682 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10683 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010684 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010686 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10687 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010688 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010690 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10691 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010692 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010694 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10695 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010696 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010698 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10699 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010700 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010702 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10703 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010704 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10705 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010706 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10707 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010708 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10709 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010710 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10711 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010712 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010714 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10715 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010716 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010718 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10719 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010720 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010722 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10723 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010724 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010726 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10727 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010728 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10729 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010730 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10731 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010732 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10733 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010734 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10735 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
10736 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10737 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010738 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10739 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
10740 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10741 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010742};
10743
10744static const struct snd_kcontrol_new quat_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010745 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10746 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010747 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010749 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10750 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010751 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10752 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010753 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10754 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010755 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10756 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010757 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10758 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010759 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10760 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010761 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10762 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010763 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10764 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010765 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10766 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010767 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10768 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010769 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10770 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010771 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10772 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010773 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10774 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010775 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010777 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10778 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010779 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010781 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10782 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010783 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010785 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10786 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010787 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010789 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10790 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010791 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010793 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10794 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010795 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010797 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10798 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010799 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010801 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10802 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010803 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010805 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10806 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010807 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10808 msm_routing_put_audio_mixer),
10809};
10810
10811static const struct snd_kcontrol_new quat_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010812 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10813 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010814 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010816 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10817 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010818 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10819 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010820 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10821 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010822 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10823 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010824 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10825 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010826 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010828 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10829 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010830 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010832 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10833 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010834 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10835 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010836 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10837 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010838 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10839 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010840 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10841 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010842 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10843 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010844 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10845 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010846 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10847 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010848 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10849 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010850 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10851 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010852 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10853 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010854 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010856 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10857 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010858 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010860 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10861 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010862 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010864 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10865 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010866 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010868 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10869 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010870 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010872 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10873 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010874 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010876 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10877 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010878 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10879 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010880 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10881 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
10882 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10883 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010884 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10885 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
10886 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10887 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010888};
10889
10890static const struct snd_kcontrol_new quat_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010891 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10892 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010893 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010895 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10896 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010897 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10898 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010899 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10900 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010901 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10902 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010903 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10904 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010905 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10906 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010907 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10908 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010909 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010911 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10912 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010913 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010915 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10916 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010917 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10918 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010919 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10920 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010921 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10922 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010923 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10924 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010925 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10926 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010927 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10928 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010929 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10930 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010931 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10932 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010933 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10934 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010935 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10936 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010937 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10938 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010939 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10940 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010941 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10942 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010943 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10944 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010945 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10946 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010947 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10948 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010949 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10950 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010951 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10952 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010953 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10954 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010955 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10956 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010957 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10958 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010959 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10960 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
10961 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10962 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010963 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10964 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
10965 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10966 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010967};
10968
10969static const struct snd_kcontrol_new quat_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010970 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10971 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010972 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010974 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10975 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010976 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010978 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10979 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010980 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010982 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10983 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010984 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10985 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010986 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10987 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010988 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010990 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10991 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010992 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010994 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10995 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010996 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10997 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010998 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10999 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011000 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11001 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011002 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11003 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011004 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011006 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11007 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011008 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11009 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011010 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11011 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011012 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11013 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011014 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11015 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011016 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11017 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011018 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11019 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011020 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11021 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011022 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11023 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011024 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11025 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011026 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11027 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011028 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11029 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011030 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11031 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011032 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11033 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011034 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11035 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011036 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11037 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011038 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11039 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
11040 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11041 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070011042 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
11043 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
11044 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
11045 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011046};
11047
Rohit Kumara5077932017-09-10 22:05:05 +053011048static const struct snd_kcontrol_new quin_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011049 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11050 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011051 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11052 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011053 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11054 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011055 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11056 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011057 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11058 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011059 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11060 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011061 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11062 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011063 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11064 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011065 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11066 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011067 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11068 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011069 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11070 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011071 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11072 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011073 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11074 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011075 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11076 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011077 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11078 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011079 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011081 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11082 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011083 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011085 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11086 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011087 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011089 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11090 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011091 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011093 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11094 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011095 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011097 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11098 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011099 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11100 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011101 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11102 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011103 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011105 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11106 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011107 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11108 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011109 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11110 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011111 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11112 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011113 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11114 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011115 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11116 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011117 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11118 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
11119 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11120 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070011121 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
11122 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
11123 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
11124 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053011125};
11126
11127static const struct snd_kcontrol_new quin_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011128 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11129 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011130 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11131 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011132 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11133 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011134 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11135 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011136 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11137 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011138 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11139 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011140 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11141 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011142 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11143 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011144 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11145 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011146 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11147 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011148 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11149 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011150 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11151 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011152 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11153 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011154 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11155 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011156 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11157 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011158 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11159 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011160 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11161 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011162 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011164 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11165 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011166 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11167 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011168 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11169 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011170 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11171 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011172 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11173 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011174 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11175 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011176 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11177 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011178 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11179 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011180 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11181 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011182 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011184 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11185 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011186 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011188 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11189 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011190 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11191 msm_routing_put_audio_mixer),
11192};
11193
11194static const struct snd_kcontrol_new quin_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011195 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11196 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011197 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011199 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11200 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011201 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11202 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011203 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11204 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011205 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011207 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11208 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011209 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11210 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011211 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11212 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011213 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11214 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011215 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11216 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011217 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11218 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011219 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11220 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011221 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011223 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11224 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011225 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011227 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11228 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011229 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011231 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11232 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011233 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011235 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11236 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011237 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011239 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11240 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011241 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011243 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11244 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011245 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011247 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11248 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011249 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11250 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011251 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11252 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011253 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11254 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011255 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11256 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011257 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11258 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011259 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11260 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011261 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11262 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011263 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11264 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
11265 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11266 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070011267 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
11268 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
11269 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
11270 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053011271};
11272
11273static const struct snd_kcontrol_new quin_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011274 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11275 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011276 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11277 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011278 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11279 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011280 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11281 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011282 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11283 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011284 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011286 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11287 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011288 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11289 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011290 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11291 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011292 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011294 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11295 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011296 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011298 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11299 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011300 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011302 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11303 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011304 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011306 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11307 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011308 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011310 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11311 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011312 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011314 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11315 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011316 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011318 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11319 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011320 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011322 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11323 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011324 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011326 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11327 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011328 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011330 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11331 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011332 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011334 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11335 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011336 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011338 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11339 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011340 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11341 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011342 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11343 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
11344 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11345 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070011346 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
11347 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
11348 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
11349 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053011350};
11351
11352static const struct snd_kcontrol_new quin_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011353 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11354 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011355 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011357 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11358 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011359 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011361 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11362 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011363 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011365 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11366 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011367 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011369 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11370 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011371 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011373 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11374 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011375 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011377 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11378 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011379 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011381 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11382 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011383 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011385 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11386 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011387 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011389 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11390 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011391 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011393 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11394 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011395 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011397 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11398 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011399 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011401 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11402 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011403 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011405 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11406 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011407 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011409 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11410 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011411 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11412 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011413 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11414 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011415 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11416 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011417 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11418 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011419 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11420 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011421 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11422 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
11423 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11424 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070011425 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
11426 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
11427 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
11428 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053011429};
11430
Karthikeyan Manic3700752019-03-11 18:33:53 -070011431static const struct snd_kcontrol_new sen_tdm_rx_0_mixer_controls[] = {
11432 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11433 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11434 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11435 msm_routing_put_audio_mixer),
11436 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11437 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11438 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11439 msm_routing_put_audio_mixer),
11440 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11441 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11442 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11443 msm_routing_put_audio_mixer),
11444 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11445 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11446 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11447 msm_routing_put_audio_mixer),
11448 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11449 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11450 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11451 msm_routing_put_audio_mixer),
11452 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11453 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11454 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11455 msm_routing_put_audio_mixer),
11456 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11457 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11458 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11459 msm_routing_put_audio_mixer),
11460 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11461 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11462 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11463 msm_routing_put_audio_mixer),
11464 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11465 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11466 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11467 msm_routing_put_audio_mixer),
11468 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11469 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11470 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11471 msm_routing_put_audio_mixer),
11472 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11473 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11474 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11475 msm_routing_put_audio_mixer),
11476 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11477 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11478 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11479 msm_routing_put_audio_mixer),
11480 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11481 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11482 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11483 msm_routing_put_audio_mixer),
11484 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11485 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11486 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11487 msm_routing_put_audio_mixer),
11488 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11489 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11490 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11491 msm_routing_put_audio_mixer),
11492 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11493 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11494 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11495 msm_routing_put_audio_mixer),
11496 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11497 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11498 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11499 msm_routing_put_audio_mixer),
11500 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11501 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11502 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11503 msm_routing_put_audio_mixer),
11504};
11505
11506static const struct snd_kcontrol_new sen_tdm_tx_0_mixer_controls[] = {
11507 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11508 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11509 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11510 msm_routing_put_audio_mixer),
11511 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11512 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11513 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11514 msm_routing_put_audio_mixer),
11515 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11516 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11517 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11518 msm_routing_put_audio_mixer),
11519 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11520 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11521 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11522 msm_routing_put_audio_mixer),
11523 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11524 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11525 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11526 msm_routing_put_audio_mixer),
11527 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11528 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11529 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11530 msm_routing_put_audio_mixer),
11531 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11532 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11533 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11534 msm_routing_put_audio_mixer),
11535 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11536 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11537 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11538 msm_routing_put_audio_mixer),
11539 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11540 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11541 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11542 msm_routing_put_audio_mixer),
11543 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11544 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11545 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11546 msm_routing_put_audio_mixer),
11547 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11548 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11549 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11550 msm_routing_put_audio_mixer),
11551 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11552 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11553 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11554 msm_routing_put_audio_mixer),
11555 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11556 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11557 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11558 msm_routing_put_audio_mixer),
11559 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11560 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11561 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11562 msm_routing_put_audio_mixer),
11563 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11564 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11565 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11566 msm_routing_put_audio_mixer),
11567 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11568 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11569 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11570 msm_routing_put_audio_mixer),
11571};
11572
11573static const struct snd_kcontrol_new sen_tdm_rx_1_mixer_controls[] = {
11574 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11575 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11576 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11577 msm_routing_put_audio_mixer),
11578 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11579 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11580 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11581 msm_routing_put_audio_mixer),
11582 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11583 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11584 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11585 msm_routing_put_audio_mixer),
11586 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11587 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11588 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11589 msm_routing_put_audio_mixer),
11590 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11591 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11592 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11593 msm_routing_put_audio_mixer),
11594 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11595 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11596 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11597 msm_routing_put_audio_mixer),
11598 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11599 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11600 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11601 msm_routing_put_audio_mixer),
11602 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11603 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11604 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11605 msm_routing_put_audio_mixer),
11606 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11607 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11608 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11609 msm_routing_put_audio_mixer),
11610 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11611 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11612 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11613 msm_routing_put_audio_mixer),
11614 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11615 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11616 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11617 msm_routing_put_audio_mixer),
11618 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11619 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11620 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11621 msm_routing_put_audio_mixer),
11622 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11623 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11624 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11625 msm_routing_put_audio_mixer),
11626 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11627 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11628 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11629 msm_routing_put_audio_mixer),
11630 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11631 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11632 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11633 msm_routing_put_audio_mixer),
11634 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11635 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11636 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11637 msm_routing_put_audio_mixer),
11638 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11639 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11640 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11641 msm_routing_put_audio_mixer),
11642 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11643 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11644 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11645 msm_routing_put_audio_mixer),
11646};
11647
11648static const struct snd_kcontrol_new sen_tdm_rx_2_mixer_controls[] = {
11649 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11650 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11651 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11652 msm_routing_put_audio_mixer),
11653 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11654 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11655 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11656 msm_routing_put_audio_mixer),
11657 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11658 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11659 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11660 msm_routing_put_audio_mixer),
11661 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11662 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11663 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11664 msm_routing_put_audio_mixer),
11665 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11666 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11667 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11668 msm_routing_put_audio_mixer),
11669 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11670 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11671 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11672 msm_routing_put_audio_mixer),
11673 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11674 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11675 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11676 msm_routing_put_audio_mixer),
11677 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11678 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11679 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11680 msm_routing_put_audio_mixer),
11681 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11682 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11683 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11684 msm_routing_put_audio_mixer),
11685 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11686 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11687 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11688 msm_routing_put_audio_mixer),
11689 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11690 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11691 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11692 msm_routing_put_audio_mixer),
11693 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11694 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11695 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11696 msm_routing_put_audio_mixer),
11697 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11698 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11699 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11700 msm_routing_put_audio_mixer),
11701 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11702 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11703 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11704 msm_routing_put_audio_mixer),
11705 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11706 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11707 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11708 msm_routing_put_audio_mixer),
11709 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11710 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11711 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11712 msm_routing_put_audio_mixer),
11713 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11714 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11715 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11716 msm_routing_put_audio_mixer),
11717 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11718 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11719 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11720 msm_routing_put_audio_mixer),
11721};
11722
11723static const struct snd_kcontrol_new sen_tdm_rx_3_mixer_controls[] = {
11724 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11725 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11726 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11727 msm_routing_put_audio_mixer),
11728 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11729 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11730 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11731 msm_routing_put_audio_mixer),
11732 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11733 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11734 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11735 msm_routing_put_audio_mixer),
11736 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11737 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11738 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11739 msm_routing_put_audio_mixer),
11740 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11741 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11742 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11743 msm_routing_put_audio_mixer),
11744 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11745 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11746 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11747 msm_routing_put_audio_mixer),
11748 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11749 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11750 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11751 msm_routing_put_audio_mixer),
11752 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11753 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11754 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11755 msm_routing_put_audio_mixer),
11756 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11757 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11758 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11759 msm_routing_put_audio_mixer),
11760 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11761 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11762 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11763 msm_routing_put_audio_mixer),
11764 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11765 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11766 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11767 msm_routing_put_audio_mixer),
11768 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11769 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11770 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11771 msm_routing_put_audio_mixer),
11772 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11773 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11774 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11775 msm_routing_put_audio_mixer),
11776 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11777 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11778 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11779 msm_routing_put_audio_mixer),
11780 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11781 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11782 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11783 msm_routing_put_audio_mixer),
11784 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11785 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11786 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11787 msm_routing_put_audio_mixer),
11788 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11789 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11790 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11791 msm_routing_put_audio_mixer),
11792 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11793 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11794 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11795 msm_routing_put_audio_mixer),
11796};
11797
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011798static const struct snd_kcontrol_new mmul1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011799 SOC_DOUBLE_EXT("PRI_TX", SND_SOC_NOPM,
11800 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011801 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011803 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11804 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011805 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011807 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11808 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011809 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011811 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11812 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011813 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011815 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11816 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011817 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011819 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
11820 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011821 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011823 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11824 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011825 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011827 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11828 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011829 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011831 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11832 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011833 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11834 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053011835 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11836 MSM_BACKEND_DAI_SLIMBUS_1_TX,
11837 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011839 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11840 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011841 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011843 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11844 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011845 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011847 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
11848 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011849 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011851 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
11852 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011853 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011855 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
11856 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053011857 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11858 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070011859 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
11860 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
11861 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011863 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11864 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011865 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11866 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011867 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11868 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011869 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011871 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11872 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011873 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011875 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11876 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011877 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011879 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11880 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011881 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011883 SOC_DOUBLE_EXT("SLIM_4_TX", SND_SOC_NOPM,
11884 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011885 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011887 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11888 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011889 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11890 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011891 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11892 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011893 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11894 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070011895 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
11896 MSM_BACKEND_DAI_SENARY_MI2S_TX,
11897 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11898 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011899 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11900 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011901 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11902 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011903 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11904 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011905 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11906 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011907 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11908 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011909 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011911 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11912 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011913 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011915 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11916 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011917 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11918 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011919 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11920 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011921 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11922 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011923 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11924 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011925 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11926 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011927 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11928 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011929 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11930 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011931 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11932 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011933 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11934 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011935 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11936 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011937 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11938 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011939 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11940 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011941 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11942 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011943 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11944 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011945 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11946 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011947 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11948 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011949 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11950 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011951 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11952 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011953 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11954 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011955 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11956 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011957 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11958 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011959 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11960 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011961 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11962 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011963 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11964 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011965 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11966 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011967 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11968 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011969 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11970 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011971 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11972 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011973 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11974 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011975 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11976 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011977 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11978 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070011979 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
11980 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11981 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11982 msm_routing_put_audio_mixer),
11983 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
11984 MSM_BACKEND_DAI_SEN_TDM_TX_1,
11985 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11986 msm_routing_put_audio_mixer),
11987 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
11988 MSM_BACKEND_DAI_SEN_TDM_TX_2,
11989 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11990 msm_routing_put_audio_mixer),
11991 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
11992 MSM_BACKEND_DAI_SEN_TDM_TX_3,
11993 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011995 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11996 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011997 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011999 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
12000 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012001 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012003 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
12004 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012005 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12006 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012007 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12008 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12009 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12010 msm_routing_put_audio_mixer),
12011 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12012 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12013 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12014 msm_routing_put_audio_mixer),
12015 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12016 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12017 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12018 msm_routing_put_audio_mixer),
12019 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12020 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12021 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12022 msm_routing_put_audio_mixer),
12023 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12024 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12025 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12026 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012027 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12028 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12029 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12030 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012031 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12032 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12033 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12034 msm_routing_put_audio_mixer),
12035 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12036 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12037 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12038 msm_routing_put_audio_mixer),
12039 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12040 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12041 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12042 msm_routing_put_audio_mixer),
12043 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12044 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12045 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12046 msm_routing_put_audio_mixer),
12047 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12048 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12049 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12050 msm_routing_put_audio_mixer),
12051 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12052 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12053 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12054 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012055 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12056 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12057 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12058 msm_routing_put_audio_mixer),
12059 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12060 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12061 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12062 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053012063 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
12064 MSM_BACKEND_DAI_SLIMBUS_9_TX,
12065 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12066 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012067 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12068 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12069 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12070 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012071};
12072
12073static const struct snd_kcontrol_new mmul2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012074 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12075 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012076 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12077 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012078 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
12079 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012080 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12081 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012082 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12083 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012084 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12085 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012086 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12087 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012088 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12089 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012090 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12091 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012092 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012094 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12095 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012096 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12097 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012098 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12099 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012100 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12101 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012102 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12103 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012104 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12105 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012106 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12107 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012108 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12109 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012110 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
12111 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012112 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12113 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012114 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12115 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012116 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012118 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
12119 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012120 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12121 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012122 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
12123 MSM_BACKEND_DAI_SENARY_MI2S_TX,
12124 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012126 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12127 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012128 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012130 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12131 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012132 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012134 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12135 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012136 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12137 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012138 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12139 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012140 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12141 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012142 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12143 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012144 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12145 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012146 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12147 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012148 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12149 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012150 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12151 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012152 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12153 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012154 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12155 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012156 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012158 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12159 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012160 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012162 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12163 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012164 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012166 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12167 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012168 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012170 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12171 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012172 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012174 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12175 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012176 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012178 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12179 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012180 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012182 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12183 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012184 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012186 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12187 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012188 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012190 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12191 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012192 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012194 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12195 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012196 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012198 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12199 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012200 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012202 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12203 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012204 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12205 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012206 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12207 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12208 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12209 msm_routing_put_audio_mixer),
12210 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12211 MSM_BACKEND_DAI_SEN_TDM_TX_1,
12212 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12213 msm_routing_put_audio_mixer),
12214 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
12215 MSM_BACKEND_DAI_SEN_TDM_TX_2,
12216 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12217 msm_routing_put_audio_mixer),
12218 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
12219 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12220 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12221 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012222 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
12223 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012224 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012226 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
12227 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012228 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12229 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012230 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12231 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12232 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12233 msm_routing_put_audio_mixer),
12234 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12235 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12236 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12237 msm_routing_put_audio_mixer),
12238 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12239 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12240 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12241 msm_routing_put_audio_mixer),
12242 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12243 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12244 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12245 msm_routing_put_audio_mixer),
12246 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12247 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12248 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12249 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012250 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12251 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12252 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12253 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012254 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12255 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12256 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12257 msm_routing_put_audio_mixer),
12258 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12259 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12260 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12261 msm_routing_put_audio_mixer),
12262 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12263 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12264 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12265 msm_routing_put_audio_mixer),
12266 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12267 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12268 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12269 msm_routing_put_audio_mixer),
12270 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12271 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12272 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12273 msm_routing_put_audio_mixer),
12274 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12275 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12276 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12277 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012278 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12279 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12280 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12281 msm_routing_put_audio_mixer),
12282 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12283 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12284 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12285 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053012286 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
12287 MSM_BACKEND_DAI_SLIMBUS_9_TX,
12288 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12289 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012290 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12291 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12292 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12293 msm_routing_put_audio_mixer),
Asish Bhattacharyaf4d24122019-07-30 12:39:15 +053012294 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
12295 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
12296 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12297 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012298};
12299
12300static const struct snd_kcontrol_new mmul3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012301 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12302 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012303 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12304 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012305 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12306 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12307 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012309 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12310 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012311 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012313 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
12314 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012315 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012317 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12318 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012319 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012321 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12322 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012323 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12324 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012325 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
12326 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012327 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012329 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
12330 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012331 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12332 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012333 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
12334 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012335 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012337 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
12338 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012339 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12340 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012341 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
12342 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053012343 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12344 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012345 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX", SND_SOC_NOPM,
12346 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
12347 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012349 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12350 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012351 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012353 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12354 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012355 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012357 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12358 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012359 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012361 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12362 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012363 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012365 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12366 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012367 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012369 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12370 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012371 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012373 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12374 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012375 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012377 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12378 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012379 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012381 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12382 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012383 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012385 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12386 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012387 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012389 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12390 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012391 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012393 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12394 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012395 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012397 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12398 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012399 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012401 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12402 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012403 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012405 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12406 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012407 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012409 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12410 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012411 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12412 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012413 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12414 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012415 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12416 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012417 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12418 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012419 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12420 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012421 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12422 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012423 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12424 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012425 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12426 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012427 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12428 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012429 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12430 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012431 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12432 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012433 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12434 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012435 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12436 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012437 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12438 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012439 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12440 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012441 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12442 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012443 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12444 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012445 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12446 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12447 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12448 msm_routing_put_audio_mixer),
12449 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12450 MSM_BACKEND_DAI_SEN_TDM_TX_1,
12451 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12452 msm_routing_put_audio_mixer),
12453 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
12454 MSM_BACKEND_DAI_SEN_TDM_TX_2,
12455 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12456 msm_routing_put_audio_mixer),
12457 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
12458 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12459 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12460 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012461 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12462 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12463 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12464 msm_routing_put_audio_mixer),
12465 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12466 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12467 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12468 msm_routing_put_audio_mixer),
12469 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12470 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12471 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12472 msm_routing_put_audio_mixer),
12473 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12474 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12475 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12476 msm_routing_put_audio_mixer),
12477 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12478 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12479 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12480 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012481 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12482 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12483 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12484 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012485 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12486 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12487 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12488 msm_routing_put_audio_mixer),
12489 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12490 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12491 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12492 msm_routing_put_audio_mixer),
12493 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12494 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12495 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12496 msm_routing_put_audio_mixer),
12497 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12498 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12499 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12500 msm_routing_put_audio_mixer),
12501 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12502 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12503 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12504 msm_routing_put_audio_mixer),
12505 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12506 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12507 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12508 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012509 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12510 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12511 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12512 msm_routing_put_audio_mixer),
12513 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12514 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12515 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12516 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012517 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12518 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12519 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12520 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012521};
12522
12523static const struct snd_kcontrol_new mmul4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012524 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12525 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012526 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12527 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012528 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12529 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12530 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12531 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012532 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12533 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012534 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12535 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012536 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12537 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012538 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12539 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012540 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12541 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012542 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012544 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12545 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012546 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012548 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12549 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012550 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012552 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12553 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012554 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012556 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12557 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012558 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012560 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12561 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012562 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012564 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12565 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012566 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012568 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12569 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012570 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012572 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12573 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012574 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012576 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12577 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012578 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012580 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12581 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012582 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012584 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12585 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012586 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012588 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12589 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012590 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012592 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12593 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012594 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012596 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12597 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012598 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012600 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12601 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012602 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012604 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12605 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012606 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012608 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12609 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012610 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012612 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12613 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012614 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12615 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012616 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12617 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012618 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12619 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012620 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12621 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012622 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12623 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012624 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12625 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012626 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12627 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012628 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12629 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012630 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12631 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012632 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12633 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012634 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12635 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012636 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12637 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12638 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12639 msm_routing_put_audio_mixer),
12640 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12641 MSM_BACKEND_DAI_SEN_TDM_TX_1,
12642 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12643 msm_routing_put_audio_mixer),
12644 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
12645 MSM_BACKEND_DAI_SEN_TDM_TX_2,
12646 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12647 msm_routing_put_audio_mixer),
12648 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
12649 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12650 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12651 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012652 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12653 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012654 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12655 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012656 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12657 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012658 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12659 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012660 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12661 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012662 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12663 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012664 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12665 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012666 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12667 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012668 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12669 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012670 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12671 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012672 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
12673 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012674 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12675 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012676 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12677 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12678 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12679 msm_routing_put_audio_mixer),
12680 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12681 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12682 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12683 msm_routing_put_audio_mixer),
12684 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12685 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12686 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12687 msm_routing_put_audio_mixer),
12688 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12689 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12690 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12691 msm_routing_put_audio_mixer),
12692 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12693 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12694 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12695 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012696 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12697 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12698 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12699 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012700 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12701 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12702 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12703 msm_routing_put_audio_mixer),
12704 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12705 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12706 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12707 msm_routing_put_audio_mixer),
12708 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12709 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12710 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12711 msm_routing_put_audio_mixer),
12712 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12713 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12714 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12715 msm_routing_put_audio_mixer),
12716 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12717 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12718 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12719 msm_routing_put_audio_mixer),
12720 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12721 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12722 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12723 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012724 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12725 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12726 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12727 msm_routing_put_audio_mixer),
12728 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12729 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12730 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12731 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012732 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12733 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12734 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12735 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012736};
12737
12738static const struct snd_kcontrol_new mmul5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012739 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12740 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012741 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12742 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012743 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12744 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12745 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12746 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012747 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12748 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012749 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12750 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012751 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
12752 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012753 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12754 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012755 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12756 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012757 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12758 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012759 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12760 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012761 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12762 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012763 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12764 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012765 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12766 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012767 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
12768 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012769 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12770 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012771 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
12772 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012773 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012775 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
12776 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012777 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012779 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
12780 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053012781 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12782 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012783 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX", SND_SOC_NOPM,
12784 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
12785 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012787 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12788 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012789 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012791 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12792 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012793 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012795 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12796 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012797 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012799 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12800 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012801 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012803 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12804 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012805 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012807 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12808 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012809 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012811 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12812 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012813 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012815 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12816 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012817 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012819 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12820 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012821 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012823 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12824 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012825 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012827 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12828 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012829 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012831 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12832 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012833 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12834 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012835 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12836 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012837 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012839 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12840 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012841 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012843 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12844 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012845 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012847 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12848 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012849 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012851 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12852 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012853 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012855 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12856 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012857 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012859 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12860 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012861 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012863 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12864 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012865 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12866 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012867 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12868 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012869 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012871 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12872 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012873 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012875 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12876 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012877 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012879 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12880 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012881 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12882 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012883 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12884 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12885 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12886 msm_routing_put_audio_mixer),
12887 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12888 MSM_BACKEND_DAI_SEN_TDM_TX_1,
12889 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12890 msm_routing_put_audio_mixer),
12891 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
12892 MSM_BACKEND_DAI_SEN_TDM_TX_2,
12893 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12894 msm_routing_put_audio_mixer),
12895 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
12896 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12897 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12898 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012899 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12900 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012901 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12902 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012903 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12904 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012905 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12906 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012907 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
12908 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012909 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012911 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
12912 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012913 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012915 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
12916 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012917 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12918 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012919 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12920 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12921 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12922 msm_routing_put_audio_mixer),
12923 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12924 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12925 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12926 msm_routing_put_audio_mixer),
12927 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12928 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12929 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12930 msm_routing_put_audio_mixer),
12931 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12932 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12933 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12934 msm_routing_put_audio_mixer),
12935 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12936 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12937 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12938 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012939 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12940 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12941 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12942 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012943 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12944 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12945 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12946 msm_routing_put_audio_mixer),
12947 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12948 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12949 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12950 msm_routing_put_audio_mixer),
12951 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12952 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12953 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12954 msm_routing_put_audio_mixer),
12955 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12956 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12957 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12958 msm_routing_put_audio_mixer),
12959 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12960 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12961 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12962 msm_routing_put_audio_mixer),
12963 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12964 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12965 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12966 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012967 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12968 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12969 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12970 msm_routing_put_audio_mixer),
12971 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12972 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12973 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12974 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053012975 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
12976 MSM_BACKEND_DAI_SLIMBUS_9_TX,
12977 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12978 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012979 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12980 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12981 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12982 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012983};
12984
12985static const struct snd_kcontrol_new mmul6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012986 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12987 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012988 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012990 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12991 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012992 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12993 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012994 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12995 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12996 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
12997 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012998 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12999 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013000 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13001 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013002 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13003 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013004 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013006 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13007 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013008 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13009 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013010 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
13011 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013012 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13013 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013014 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13015 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013016 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13017 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013018 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13019 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013020 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13021 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013022 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13023 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013024 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13025 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013026 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
13027 MSM_BACKEND_DAI_SENARY_MI2S_TX,
13028 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13029 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013030 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13031 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013032 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13033 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013034 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13035 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013036 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13037 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013038 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13039 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013040 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13041 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013042 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13043 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013044 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13045 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013046 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
13047 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013048 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13049 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013050 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
13051 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013052 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13053 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013054 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13055 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013056 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13057 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013058 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13059 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013060 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13061 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013062 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
13063 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013064 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13065 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013066 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
13067 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013068 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13069 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013070 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
13071 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013072 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13073 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013074 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
13075 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013076 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13077 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013078 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13079 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013080 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13081 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013082 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13083 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013084 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13085 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013086 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13087 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013088 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13089 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013090 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13091 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013092 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013094 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13095 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013096 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13097 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013098 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13099 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013100 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13101 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013102 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13103 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013104 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13105 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013106 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13107 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013108 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13109 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013110 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13111 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013112 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13113 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013114 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13115 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013116 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013118 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13119 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013120 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013122 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13123 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013124 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13125 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013126 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
13127 MSM_BACKEND_DAI_SEN_TDM_TX_0,
13128 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13129 msm_routing_put_audio_mixer),
13130 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
13131 MSM_BACKEND_DAI_SEN_TDM_TX_1,
13132 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13133 msm_routing_put_audio_mixer),
13134 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
13135 MSM_BACKEND_DAI_SEN_TDM_TX_2,
13136 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13137 msm_routing_put_audio_mixer),
13138 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
13139 MSM_BACKEND_DAI_SEN_TDM_TX_3,
13140 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13141 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013142 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
13143 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013144 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13145 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013146 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13147 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13148 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13149 msm_routing_put_audio_mixer),
13150 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13151 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13152 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13153 msm_routing_put_audio_mixer),
13154 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13155 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13156 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13157 msm_routing_put_audio_mixer),
13158 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13159 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13160 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13161 msm_routing_put_audio_mixer),
13162 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13163 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13164 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13165 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013166 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13167 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13168 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13169 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013170 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13171 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13172 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13173 msm_routing_put_audio_mixer),
13174 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13175 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13176 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13177 msm_routing_put_audio_mixer),
13178 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13179 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13180 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13181 msm_routing_put_audio_mixer),
13182 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13183 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13184 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13185 msm_routing_put_audio_mixer),
13186 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13187 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13188 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13189 msm_routing_put_audio_mixer),
13190 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13191 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13192 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13193 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013194 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13195 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13196 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13197 msm_routing_put_audio_mixer),
13198 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13199 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13200 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13201 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013202 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13203 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13204 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13205 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013206};
13207
13208static const struct snd_kcontrol_new mmul8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013209 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13210 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013211 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13212 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013213 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13214 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13215 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013217 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13218 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013219 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013221 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13222 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013223 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013225 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13226 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013227 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013229 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
13230 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013231 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013233 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13234 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013235 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013237 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13238 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013239 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013241 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13242 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013243 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13244 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013245 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13246 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013247 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13248 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013249 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13250 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013251 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13252 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013253 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
13254 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013255 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13256 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013257 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
13258 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013259 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013261 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
13262 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013263 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013265 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
13266 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013267 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013269 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
13270 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013271 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13272 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013273 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13274 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013275 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13276 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013277 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13278 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013279 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013281 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
13282 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013283 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13284 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013285 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
13286 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013287 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13288 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013289 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
13290 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013291 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13292 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013293 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
13294 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013295 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013297 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13298 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013299 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13300 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013301 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13302 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013303 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13304 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013305 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13306 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013307 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013309 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13310 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013311 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013313 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13314 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013315 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013317 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13318 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013319 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013321 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13322 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013323 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13324 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013325 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13326 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013327 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013329 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13330 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013331 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13332 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013333 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13334 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013335 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013337 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13338 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013339 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13340 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013341 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13342 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013343 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13344 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013345 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
13346 MSM_BACKEND_DAI_SEN_TDM_TX_0,
13347 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13348 msm_routing_put_audio_mixer),
13349 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
13350 MSM_BACKEND_DAI_SEN_TDM_TX_1,
13351 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13352 msm_routing_put_audio_mixer),
13353 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
13354 MSM_BACKEND_DAI_SEN_TDM_TX_2,
13355 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13356 msm_routing_put_audio_mixer),
13357 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
13358 MSM_BACKEND_DAI_SEN_TDM_TX_3,
13359 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013361 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13362 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013363 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013365 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
13366 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013367 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13368 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013369 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13370 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13371 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13372 msm_routing_put_audio_mixer),
13373 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13374 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13375 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13376 msm_routing_put_audio_mixer),
13377 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13378 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13379 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13380 msm_routing_put_audio_mixer),
13381 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13382 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13383 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13384 msm_routing_put_audio_mixer),
13385 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13386 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13387 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13388 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013389 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13390 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13391 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13392 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013393 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13394 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13395 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13396 msm_routing_put_audio_mixer),
13397 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13398 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13399 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13400 msm_routing_put_audio_mixer),
13401 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13402 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13403 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13404 msm_routing_put_audio_mixer),
13405 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13406 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13407 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13408 msm_routing_put_audio_mixer),
13409 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13410 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13411 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13412 msm_routing_put_audio_mixer),
13413 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13414 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13415 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13416 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013417 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13418 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13419 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13420 msm_routing_put_audio_mixer),
13421 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13422 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13423 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13424 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013425 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13426 MSM_BACKEND_DAI_SLIMBUS_9_TX,
13427 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13428 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013429 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13430 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13431 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13432 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013433};
13434
Asish Bhattacharya34504582017-08-08 12:55:01 +053013435static const struct snd_kcontrol_new mmul16_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013436 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13437 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013438 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13439 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013440 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13441 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13442 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13443 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013444 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13445 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013446 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013448 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13449 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013450 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013452 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13453 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013454 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013456 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
13457 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013458 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13459 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013460 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13461 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013462 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13463 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013464 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13465 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013466 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013468 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13469 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013470 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013472 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13473 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013474 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13475 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013476 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13477 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013478 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013480 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
13481 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013482 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13483 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013484 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
13485 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013486 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13487 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013488 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
13489 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013490 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13491 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013492 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
13493 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013494 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013496 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
13497 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013498 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13499 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013500 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13501 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013502 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13503 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013504 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13505 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013506 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13507 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013508 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
13509 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013510 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13511 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013512 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
13513 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013514 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13515 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013516 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
13517 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013518 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13519 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013520 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
13521 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013522 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13523 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013524 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13525 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013526 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13527 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013528 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13529 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013530 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13531 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013532 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13533 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013534 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13535 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013536 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13537 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013538 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13539 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013540 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13541 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013542 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013544 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13545 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013546 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013548 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13549 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013550 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013552 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13553 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013554 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013556 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13557 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013558 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013560 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
13561 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013562 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013564 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13565 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013566 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013568 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
13569 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013570 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013572 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
13573 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013574 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013576 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
13577 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013578 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13579 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013580 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13581 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13582 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13583 msm_routing_put_audio_mixer),
13584 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13585 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13586 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13587 msm_routing_put_audio_mixer),
13588 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13589 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13590 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13591 msm_routing_put_audio_mixer),
13592 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13593 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13594 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13595 msm_routing_put_audio_mixer),
13596 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13597 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13598 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13599 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013600 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13601 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13602 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13603 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013604 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13605 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
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_1", SND_SOC_NOPM,
13610 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
13615 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13616 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13617 msm_routing_get_audio_mixer,
13618 msm_routing_put_audio_mixer),
13619 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13620 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13621 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13622 msm_routing_get_audio_mixer,
13623 msm_routing_put_audio_mixer),
13624 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13625 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13626 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13627 msm_routing_get_audio_mixer,
13628 msm_routing_put_audio_mixer),
13629 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13630 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13631 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13632 msm_routing_get_audio_mixer,
13633 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013634 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13635 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13636 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13637 msm_routing_put_audio_mixer),
13638 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13639 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13640 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13641 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013642 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13643 MSM_BACKEND_DAI_SLIMBUS_9_TX,
13644 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13645 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013646 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13647 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13648 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13649 msm_routing_put_audio_mixer),
Asish Bhattacharya34504582017-08-08 12:55:01 +053013650};
13651
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013652static const struct snd_kcontrol_new mmul9_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013653 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13654 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013655 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13656 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013657 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13658 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13659 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013661 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13662 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013663 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13664 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013665 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13666 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013667 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13668 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013669 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13670 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013671 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013673 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13674 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013675 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013677 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
13678 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013679 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013681 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
13682 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013683 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013685 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
13686 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013687 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013689 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13690 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013691 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013693 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13694 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013695 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013697 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13698 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013699 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013701 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13702 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013703 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013705 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13706 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013707 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013709 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13710 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013711 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013713 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13714 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013715 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013717 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13718 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013719 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013721 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13722 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013723 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13724 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013725 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13726 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013727 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013729 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13730 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013731 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013733 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13734 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013735 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13736 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013737 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
13738 MSM_BACKEND_DAI_SEN_TDM_TX_0,
13739 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13740 msm_routing_put_audio_mixer),
13741 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
13742 MSM_BACKEND_DAI_SEN_TDM_TX_1,
13743 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13744 msm_routing_put_audio_mixer),
13745 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
13746 MSM_BACKEND_DAI_SEN_TDM_TX_2,
13747 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13748 msm_routing_put_audio_mixer),
13749 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
13750 MSM_BACKEND_DAI_SEN_TDM_TX_3,
13751 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13752 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013753 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13754 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13755 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13756 msm_routing_put_audio_mixer),
13757 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13758 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13759 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13760 msm_routing_put_audio_mixer),
13761 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13762 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13763 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13764 msm_routing_put_audio_mixer),
13765 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13766 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13767 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13768 msm_routing_put_audio_mixer),
13769 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13770 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13771 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13772 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013773 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13774 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13775 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13776 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013777 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13778 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13779 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13780 msm_routing_put_audio_mixer),
13781 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13782 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13783 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13784 msm_routing_put_audio_mixer),
13785 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13786 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13787 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13788 msm_routing_put_audio_mixer),
13789 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13790 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13791 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13792 msm_routing_put_audio_mixer),
13793 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13794 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13795 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13796 msm_routing_put_audio_mixer),
13797 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13798 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13799 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13800 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013801 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13802 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13803 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13804 msm_routing_put_audio_mixer),
13805 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13806 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13807 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13808 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013809 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13810 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13811 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13812 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013813};
13814
Laxminath Kasam38070be2017-08-17 18:21:59 +053013815static const struct snd_kcontrol_new mmul10_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013816 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13817 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013818 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13819 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013820 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13821 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13822 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13823 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013824 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13825 MSM_BACKEND_DAI_PRI_MI2S_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013826 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013828 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13829 MSM_BACKEND_DAI_INT_FM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013830 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013832 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13833 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013834 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13835 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013836 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13837 MSM_BACKEND_DAI_AFE_PCM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013838 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13839 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013840 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
13841 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013842 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13843 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013844 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
13845 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013846 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13847 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013848 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
13849 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013850 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13851 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013852 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13853 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Vikram Panduranga72863152017-09-06 15:47:35 -070013854 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013856 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13857 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013858 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013860 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13861 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013862 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013864 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13865 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013866 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013868 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13869 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013870 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013872 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13873 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013874 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013876 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13877 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013878 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013880 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13881 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013882 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013884 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13885 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013886 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013888 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
13889 MSM_BACKEND_DAI_USB_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053013890 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013892 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13893 MSM_BACKEND_DAI_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013894 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013896 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
13897 MSM_BACKEND_DAI_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013898 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013900 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
13901 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013902 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013904 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
13905 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013906 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013908 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
13909 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013910 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013912 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13913 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013914 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013916 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
13917 MSM_BACKEND_DAI_INT2_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013918 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013920 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13921 MSM_BACKEND_DAI_INT3_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070013922 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13923 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013924 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13925 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13926 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13927 msm_routing_put_audio_mixer),
13928 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13929 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13930 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13931 msm_routing_put_audio_mixer),
13932 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13933 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13934 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13935 msm_routing_put_audio_mixer),
13936 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13937 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13938 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13939 msm_routing_put_audio_mixer),
13940 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13941 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13942 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13943 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013944 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13945 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13946 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13947 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013948 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13949 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
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_1", SND_SOC_NOPM,
13954 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
13959 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13960 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
13961 msm_routing_get_audio_mixer,
13962 msm_routing_put_audio_mixer),
13963 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13964 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13965 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
13966 msm_routing_get_audio_mixer,
13967 msm_routing_put_audio_mixer),
13968 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13969 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13970 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
13971 msm_routing_get_audio_mixer,
13972 msm_routing_put_audio_mixer),
13973 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13974 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13975 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
13976 msm_routing_get_audio_mixer,
13977 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013978 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13979 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13980 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13981 msm_routing_put_audio_mixer),
13982 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13983 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13984 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13985 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013986 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13987 MSM_BACKEND_DAI_SLIMBUS_9_TX,
13988 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13989 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013990 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13991 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13992 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
13993 msm_routing_put_audio_mixer),
Laxminath Kasam38070be2017-08-17 18:21:59 +053013994};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013995static const struct snd_kcontrol_new mmul17_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013996 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13997 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013998 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
13999 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014000 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14001 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14002 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014004 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14005 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014006 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014008 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14009 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014010 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014012 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14013 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014014 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014016 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14017 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014018 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014020 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14021 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014022 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014024 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
14025 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014026 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014028 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
14029 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014030 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14031 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080014032 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14033 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14034 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14035 msm_routing_put_audio_mixer),
14036 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14037 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
14038 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14039 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014040 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14041 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14042 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14043 msm_routing_put_audio_mixer),
14044 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14045 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14046 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14047 msm_routing_put_audio_mixer),
14048 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14049 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14050 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14051 msm_routing_put_audio_mixer),
14052 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14053 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14054 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14055 msm_routing_put_audio_mixer),
14056 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14057 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14058 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14059 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014060 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14061 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14062 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14063 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014064 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14065 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
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_1", SND_SOC_NOPM,
14070 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
14075 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14076 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
14077 msm_routing_get_audio_mixer,
14078 msm_routing_put_audio_mixer),
14079 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14080 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14081 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
14082 msm_routing_get_audio_mixer,
14083 msm_routing_put_audio_mixer),
14084 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14085 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14086 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
14087 msm_routing_get_audio_mixer,
14088 msm_routing_put_audio_mixer),
14089 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14090 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14091 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
14092 msm_routing_get_audio_mixer,
14093 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014094 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14095 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14096 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14097 msm_routing_put_audio_mixer),
14098 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14099 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14100 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14101 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014102 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14103 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14104 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14105 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014106};
14107
14108static const struct snd_kcontrol_new mmul18_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014109 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14110 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014111 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14112 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014113 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14114 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14115 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14116 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014117 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14118 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014119 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014121 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14122 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014123 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14124 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014125 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14126 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
14127 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14128 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080014129 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14130 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14131 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014133 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14134 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014135 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014137 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14138 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014139 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014141 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14142 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014143 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014145 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14146 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014147 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014149 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
14150 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014151 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014153 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
14154 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014155 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14156 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014157 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14158 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14159 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14160 msm_routing_put_audio_mixer),
14161 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14162 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14163 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14164 msm_routing_put_audio_mixer),
14165 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14166 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14167 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14168 msm_routing_put_audio_mixer),
14169 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14170 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14171 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14172 msm_routing_put_audio_mixer),
14173 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14174 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14175 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14176 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014177 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14178 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14179 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14180 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014181 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14182 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
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_1", SND_SOC_NOPM,
14187 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
14192 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14193 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14194 msm_routing_get_audio_mixer,
14195 msm_routing_put_audio_mixer),
14196 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14197 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14198 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14199 msm_routing_get_audio_mixer,
14200 msm_routing_put_audio_mixer),
14201 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14202 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14203 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14204 msm_routing_get_audio_mixer,
14205 msm_routing_put_audio_mixer),
14206 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14207 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14208 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14209 msm_routing_get_audio_mixer,
14210 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014211 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14212 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14213 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14214 msm_routing_put_audio_mixer),
14215 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14216 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14217 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14218 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014219 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14220 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14221 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14222 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014223};
14224
14225static const struct snd_kcontrol_new mmul19_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014226 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14227 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014228 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14229 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014230 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14231 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14232 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14233 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014234 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14235 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014236 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14237 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014238 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14239 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014240 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14241 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014242 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14243 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014244 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14245 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014246 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14247 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014248 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14249 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014250 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14251 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014252 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014254 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
14255 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014256 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14257 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014258 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
14259 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014260 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14261 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010014262 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14263 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
14264 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14265 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080014266 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14267 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14268 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14269 msm_routing_put_audio_mixer),
14270 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14271 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
14272 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14273 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014274 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14275 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14276 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14277 msm_routing_put_audio_mixer),
14278 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14279 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14280 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14281 msm_routing_put_audio_mixer),
14282 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14283 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14284 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14285 msm_routing_put_audio_mixer),
14286 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14287 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14288 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14289 msm_routing_put_audio_mixer),
14290 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14291 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14292 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14293 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014294 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14295 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14296 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14297 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014298 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14299 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
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_1", SND_SOC_NOPM,
14304 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
14309 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14310 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14311 msm_routing_get_audio_mixer,
14312 msm_routing_put_audio_mixer),
14313 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14314 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14315 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14316 msm_routing_get_audio_mixer,
14317 msm_routing_put_audio_mixer),
14318 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14319 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14320 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14321 msm_routing_get_audio_mixer,
14322 msm_routing_put_audio_mixer),
14323 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14324 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14325 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14326 msm_routing_get_audio_mixer,
14327 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014328 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14329 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14330 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14331 msm_routing_put_audio_mixer),
14332 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14333 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14334 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14335 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014336 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14337 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14338 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14339 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014340};
14341
14342static const struct snd_kcontrol_new mmul20_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014343 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14344 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014345 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014347 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14348 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014349 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014351 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14352 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014353 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014355 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14356 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014357 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14358 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014359 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14360 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053014361 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14362 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014363 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
14364 MSM_BACKEND_DAI_SENARY_MI2S_TX,
14365 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014367 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14368 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014369 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014371 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14372 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014373 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014375 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14376 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014377 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014379 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14380 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014381 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014383 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14384 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014385 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014387 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14388 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014389 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014391 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14392 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014393 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014395 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14396 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014397 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014399 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14400 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014401 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014403 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14404 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014405 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014407 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14408 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014409 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014411 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14412 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014413 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14414 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014415 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14416 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014417 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14418 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014419 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14420 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014421 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14422 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014423 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14424 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014425 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14426 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014427 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14428 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014429 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14430 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014431 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14432 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014433 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14434 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014435 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14436 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014437 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14438 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014439 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14440 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014441 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14442 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014443 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14444 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014445 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14446 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014447 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
14448 MSM_BACKEND_DAI_SEN_TDM_TX_0,
14449 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14450 msm_routing_put_audio_mixer),
14451 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
14452 MSM_BACKEND_DAI_SEN_TDM_TX_1,
14453 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14454 msm_routing_put_audio_mixer),
14455 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
14456 MSM_BACKEND_DAI_SEN_TDM_TX_2,
14457 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14458 msm_routing_put_audio_mixer),
14459 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
14460 MSM_BACKEND_DAI_SEN_TDM_TX_3,
14461 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14462 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014463 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14464 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14465 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14466 msm_routing_put_audio_mixer),
14467 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14468 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14469 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14470 msm_routing_put_audio_mixer),
14471 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14472 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14473 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14474 msm_routing_put_audio_mixer),
14475 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14476 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14477 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14478 msm_routing_put_audio_mixer),
14479 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14480 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14481 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14482 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014483 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14484 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14485 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14486 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014487 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14488 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14489 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14490 msm_routing_put_audio_mixer),
14491 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14492 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14493 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14494 msm_routing_put_audio_mixer),
14495 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14496 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14497 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14498 msm_routing_put_audio_mixer),
14499 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14500 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14501 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14502 msm_routing_put_audio_mixer),
14503 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14504 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14505 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14506 msm_routing_put_audio_mixer),
14507 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14508 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14509 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14510 msm_routing_put_audio_mixer),
14511 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14512 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14513 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14514 msm_routing_put_audio_mixer),
14515 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14516 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14517 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14518 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014519 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14520 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14521 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14522 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070014523};
14524
14525static const struct snd_kcontrol_new mmul21_mixer_controls[] = {
14526 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14527 MSM_BACKEND_DAI_AUXPCM_TX,
14528 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14529 msm_routing_put_audio_mixer),
14530 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14531 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
14532 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14533 msm_routing_put_audio_mixer),
14534 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14535 MSM_BACKEND_DAI_PRI_TDM_TX_0,
14536 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14537 msm_routing_put_audio_mixer),
14538 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14539 MSM_BACKEND_DAI_PRI_TDM_TX_1,
14540 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14541 msm_routing_put_audio_mixer),
14542 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14543 MSM_BACKEND_DAI_PRI_TDM_TX_2,
14544 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14545 msm_routing_put_audio_mixer),
14546 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14547 MSM_BACKEND_DAI_PRI_TDM_TX_3,
14548 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14549 msm_routing_put_audio_mixer),
14550 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14551 MSM_BACKEND_DAI_SEC_TDM_TX_0,
14552 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14553 msm_routing_put_audio_mixer),
14554 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14555 MSM_BACKEND_DAI_SEC_TDM_TX_1,
14556 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14557 msm_routing_put_audio_mixer),
14558 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14559 MSM_BACKEND_DAI_SEC_TDM_TX_2,
14560 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14561 msm_routing_put_audio_mixer),
14562 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14563 MSM_BACKEND_DAI_SEC_TDM_TX_3,
14564 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14565 msm_routing_put_audio_mixer),
14566 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14567 MSM_BACKEND_DAI_TERT_TDM_TX_0,
14568 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14569 msm_routing_put_audio_mixer),
14570 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14571 MSM_BACKEND_DAI_TERT_TDM_TX_1,
14572 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14573 msm_routing_put_audio_mixer),
14574 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14575 MSM_BACKEND_DAI_TERT_TDM_TX_2,
14576 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14577 msm_routing_put_audio_mixer),
14578 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14579 MSM_BACKEND_DAI_TERT_TDM_TX_3,
14580 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14581 msm_routing_put_audio_mixer),
14582 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14583 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
14584 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14585 msm_routing_put_audio_mixer),
14586 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14587 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
14588 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14589 msm_routing_put_audio_mixer),
14590 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14591 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
14592 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14593 msm_routing_put_audio_mixer),
14594 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14595 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
14596 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14597 msm_routing_put_audio_mixer),
14598 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14599 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
14600 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14601 msm_routing_put_audio_mixer),
14602 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14603 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
14604 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14605 msm_routing_put_audio_mixer),
14606 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14607 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
14608 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14609 msm_routing_put_audio_mixer),
14610 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14611 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
14612 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14613 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014614 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
14615 MSM_BACKEND_DAI_SEN_TDM_TX_0,
14616 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14617 msm_routing_put_audio_mixer),
14618 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
14619 MSM_BACKEND_DAI_SEN_TDM_TX_1,
14620 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14621 msm_routing_put_audio_mixer),
14622 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
14623 MSM_BACKEND_DAI_SEN_TDM_TX_2,
14624 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14625 msm_routing_put_audio_mixer),
14626 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
14627 MSM_BACKEND_DAI_SEN_TDM_TX_3,
14628 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14629 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014630 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014631 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14632 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014633 msm_routing_put_audio_mixer),
14634 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014635 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14636 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014637 msm_routing_put_audio_mixer),
14638 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014639 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14640 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014641 msm_routing_put_audio_mixer),
14642 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014643 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14644 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014645 msm_routing_put_audio_mixer),
14646 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014647 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14648 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014649 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014650 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14651 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14652 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14653 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014654 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014655 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14656 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14657 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014658 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014659 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14660 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14661 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014662 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014663 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14664 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14665 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014666 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014667 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14668 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14669 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014670 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014671 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14672 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14673 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014674 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014675 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14676 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14677 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014678 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14679 MSM_BACKEND_DAI_PRI_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014680 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020014681 msm_routing_put_audio_mixer),
14682 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14683 MSM_BACKEND_DAI_SEC_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014684 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020014685 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014686 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14687 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14688 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14689 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014690};
14691
Derek Chenb097d922019-07-31 17:28:02 -070014692static const struct snd_kcontrol_new mmul22_mixer_controls[] = {
14693 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14694 MSM_BACKEND_DAI_PRI_TDM_TX_0,
14695 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14696 msm_routing_put_audio_mixer),
14697 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14698 MSM_BACKEND_DAI_PRI_TDM_TX_1,
14699 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14700 msm_routing_put_audio_mixer),
14701 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14702 MSM_BACKEND_DAI_PRI_TDM_TX_2,
14703 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14704 msm_routing_put_audio_mixer),
14705 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14706 MSM_BACKEND_DAI_PRI_TDM_TX_3,
14707 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14708 msm_routing_put_audio_mixer),
14709 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14710 MSM_BACKEND_DAI_SEC_TDM_TX_0,
14711 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14712 msm_routing_put_audio_mixer),
14713 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14714 MSM_BACKEND_DAI_SEC_TDM_TX_1,
14715 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14716 msm_routing_put_audio_mixer),
14717 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14718 MSM_BACKEND_DAI_SEC_TDM_TX_2,
14719 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14720 msm_routing_put_audio_mixer),
14721 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14722 MSM_BACKEND_DAI_SEC_TDM_TX_3,
14723 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14724 msm_routing_put_audio_mixer),
14725 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14726 MSM_BACKEND_DAI_TERT_TDM_TX_0,
14727 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14728 msm_routing_put_audio_mixer),
14729 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14730 MSM_BACKEND_DAI_TERT_TDM_TX_1,
14731 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14732 msm_routing_put_audio_mixer),
14733 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14734 MSM_BACKEND_DAI_TERT_TDM_TX_2,
14735 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14736 msm_routing_put_audio_mixer),
14737 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14738 MSM_BACKEND_DAI_TERT_TDM_TX_3,
14739 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14740 msm_routing_put_audio_mixer),
14741 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14742 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
14743 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14744 msm_routing_put_audio_mixer),
14745 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14746 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
14747 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14748 msm_routing_put_audio_mixer),
14749 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14750 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
14751 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14752 msm_routing_put_audio_mixer),
14753 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14754 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
14755 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14756 msm_routing_put_audio_mixer),
14757 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14758 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
14759 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14760 msm_routing_put_audio_mixer),
14761 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14762 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
14763 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14764 msm_routing_put_audio_mixer),
14765 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14766 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
14767 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14768 msm_routing_put_audio_mixer),
14769 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14770 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
14771 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14772 msm_routing_put_audio_mixer),
14773};
14774
Surendar Karkac1cde372018-08-14 18:56:24 +053014775static const struct snd_kcontrol_new mmul27_mixer_controls[] = {
14776 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14777 MSM_BACKEND_DAI_SLIMBUS_0_TX,
14778 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14779 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014780 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14781 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14782 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14783 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053014784 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
14785 MSM_BACKEND_DAI_SLIMBUS_6_TX,
14786 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14787 msm_routing_put_audio_mixer),
14788 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14789 MSM_BACKEND_DAI_SLIMBUS_7_TX,
14790 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14791 msm_routing_put_audio_mixer),
14792 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14793 MSM_BACKEND_DAI_PRI_MI2S_TX,
14794 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14795 msm_routing_put_audio_mixer),
14796 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14797 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
14798 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14799 msm_routing_put_audio_mixer),
14800 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14801 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14802 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14803 msm_routing_put_audio_mixer),
14804 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14805 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
14806 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14807 msm_routing_put_audio_mixer),
14808 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14809 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
14810 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14811 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014812 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
14813 MSM_BACKEND_DAI_SENARY_MI2S_TX,
14814 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14815 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053014816 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14817 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14818 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14819 msm_routing_put_audio_mixer),
14820 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14821 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14822 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14823 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053014824 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14825 MSM_BACKEND_DAI_SLIMBUS_9_TX,
14826 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14827 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014828 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14829 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14830 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14831 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053014832};
14833
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014834static const struct snd_kcontrol_new mmul28_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014835 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14836 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014837 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14838 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014839 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14840 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14841 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014843 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14844 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014845 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014847 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14848 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014849 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014851 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14852 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014853 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014855 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14856 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014857 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014859 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14860 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014861 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014863 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
14864 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014865 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14866 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014867 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
14868 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014869 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14870 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010014871 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14872 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
14873 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14874 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080014875 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14876 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14877 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14878 msm_routing_put_audio_mixer),
14879 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14880 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053014881 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
Meng Wang5c4bab72018-04-25 10:40:01 +080014882 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014883 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14884 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14885 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14886 msm_routing_put_audio_mixer),
14887 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14888 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14889 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14890 msm_routing_put_audio_mixer),
14891 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14892 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14893 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14894 msm_routing_put_audio_mixer),
14895 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14896 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14897 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14898 msm_routing_put_audio_mixer),
14899 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14900 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14901 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14902 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014903 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14904 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14905 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14906 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014907 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14908 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
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_1", SND_SOC_NOPM,
14913 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
14918 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14919 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
14920 msm_routing_get_audio_mixer,
14921 msm_routing_put_audio_mixer),
14922 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14923 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14924 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
14925 msm_routing_get_audio_mixer,
14926 msm_routing_put_audio_mixer),
14927 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14928 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14929 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
14930 msm_routing_get_audio_mixer,
14931 msm_routing_put_audio_mixer),
14932 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14933 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14934 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
14935 msm_routing_get_audio_mixer,
14936 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014937 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14938 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14939 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14940 msm_routing_put_audio_mixer),
14941 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14942 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14943 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14944 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014945 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14946 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14947 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
14948 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014949};
14950
14951static const struct snd_kcontrol_new mmul29_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014952 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14953 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014954 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14955 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014956 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14957 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14958 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014960 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14961 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014962 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14963 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014964 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14965 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014966 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14967 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014968 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14969 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014970 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14971 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014972 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14973 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014974 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014976 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14977 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014978 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014980 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
14981 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014982 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014984 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
14985 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014986 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14987 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010014988 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14989 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
14990 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14991 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080014992 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14993 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14994 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14995 msm_routing_put_audio_mixer),
14996 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14997 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
14998 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
14999 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053015000 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
15001 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
15002 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15003 msm_routing_put_audio_mixer),
15004 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
15005 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
15006 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15007 msm_routing_put_audio_mixer),
15008 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
15009 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
15010 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15011 msm_routing_put_audio_mixer),
15012 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
15013 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
15014 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15015 msm_routing_put_audio_mixer),
15016 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
15017 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
15018 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15019 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080015020 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
15021 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
15022 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15023 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053015024 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
15025 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
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_1", SND_SOC_NOPM,
15030 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
15035 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
15036 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15037 msm_routing_get_audio_mixer,
15038 msm_routing_put_audio_mixer),
15039 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
15040 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
15041 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15042 msm_routing_get_audio_mixer,
15043 msm_routing_put_audio_mixer),
15044 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
15045 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
15046 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15047 msm_routing_get_audio_mixer,
15048 msm_routing_put_audio_mixer),
15049 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
15050 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
15051 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15052 msm_routing_get_audio_mixer,
15053 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020015054 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
15055 MSM_BACKEND_DAI_PRI_SPDIF_TX,
15056 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15057 msm_routing_put_audio_mixer),
15058 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
15059 MSM_BACKEND_DAI_SEC_SPDIF_TX,
15060 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15061 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053015062 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
15063 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
15064 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15065 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015066};
15067
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053015068static const struct snd_kcontrol_new mmul30_mixer_controls[] = {
15069 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15070 MSM_BACKEND_DAI_SLIMBUS_0_TX,
15071 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15072 msm_routing_put_audio_mixer),
15073 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
15074 MSM_BACKEND_DAI_SLIMBUS_1_TX,
15075 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15076 msm_routing_put_audio_mixer),
15077 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15078 MSM_BACKEND_DAI_PRI_MI2S_TX,
15079 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15080 msm_routing_put_audio_mixer),
15081 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
15082 MSM_BACKEND_DAI_INT3_MI2S_TX,
15083 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15084 msm_routing_put_audio_mixer),
15085 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15086 MSM_BACKEND_DAI_INT_FM_TX,
15087 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15088 msm_routing_put_audio_mixer),
15089 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15090 MSM_BACKEND_DAI_INT_BT_SCO_TX,
15091 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15092 msm_routing_put_audio_mixer),
15093 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15094 MSM_BACKEND_DAI_AFE_PCM_TX,
15095 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15096 msm_routing_put_audio_mixer),
15097 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
15098 MSM_BACKEND_DAI_INCALL_RECORD_RX,
15099 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15100 msm_routing_put_audio_mixer),
15101 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
15102 MSM_BACKEND_DAI_INCALL_RECORD_TX,
15103 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15104 msm_routing_put_audio_mixer),
15105 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15106 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
15107 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15108 msm_routing_put_audio_mixer),
15109 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15110 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
15111 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15112 msm_routing_put_audio_mixer),
15113 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15114 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
15115 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15116 msm_routing_put_audio_mixer),
15117 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
15118 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
15119 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15120 msm_routing_put_audio_mixer),
15121 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
15122 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
15123 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15124 msm_routing_put_audio_mixer),
15125 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
15126 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
15127 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15128 msm_routing_put_audio_mixer),
15129 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
15130 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
15131 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15132 msm_routing_put_audio_mixer),
15133 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
15134 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
15135 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15136 msm_routing_put_audio_mixer),
15137 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
15138 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
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_1", SND_SOC_NOPM,
15143 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
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_2", SND_SOC_NOPM,
15148 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
15149 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15150 msm_routing_get_audio_mixer,
15151 msm_routing_put_audio_mixer),
15152 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
15153 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
15154 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15155 msm_routing_get_audio_mixer,
15156 msm_routing_put_audio_mixer),
15157 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
15158 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
15159 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15160 msm_routing_get_audio_mixer,
15161 msm_routing_put_audio_mixer),
15162 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
15163 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
15164 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15165 msm_routing_get_audio_mixer,
15166 msm_routing_put_audio_mixer),
15167 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
15168 MSM_BACKEND_DAI_PRI_SPDIF_TX,
15169 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15170 msm_routing_put_audio_mixer),
15171 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
15172 MSM_BACKEND_DAI_SEC_SPDIF_TX,
15173 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15174 msm_routing_put_audio_mixer),
15175 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
15176 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
15177 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15178 msm_routing_put_audio_mixer),
15179};
15180
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015181static const struct snd_kcontrol_new pri_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015182 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15183 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015184 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15185 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015186 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15187 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015188 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15189 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015190 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15191 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015192 MSM_FRONTEND_DAI_VOICEMMODE2, 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_PRI_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_PRI_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_i2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015205 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15206 MSM_BACKEND_DAI_SEC_I2S_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),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015209 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15210 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015211 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15212 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015213 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15214 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015215 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15216 msm_routing_put_voice_mixer),
15217};
15218
15219static const struct snd_kcontrol_new sec_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015220 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15221 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015222 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15223 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015224 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15225 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
15226 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15227 msm_routing_put_voice_mixer),
15228 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15229 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
15230 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15231 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015232 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15233 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015234 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15235 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015236 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15237 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015238 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15239 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015240 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15241 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015242 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15243 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015244 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15245 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015246 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15247 msm_routing_put_voice_mixer),
15248};
15249
15250static const struct snd_kcontrol_new slimbus_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015251 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15252 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015253 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15254 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015255 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15256 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015257 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15258 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015259 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15260 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015261 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15262 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015263 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15264 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015265 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15266 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015267 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15268 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015269 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15270 msm_routing_put_voice_mixer),
15271};
15272
15273static const struct snd_kcontrol_new slimbus_6_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015274 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15275MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015276 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15277 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015278 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15279MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015280 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15281 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015282 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15283MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015284 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15285 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015286 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15287MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015288 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15289 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015290 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15291MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015292 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15293 msm_routing_put_voice_mixer),
15294};
15295
15296static const struct snd_kcontrol_new usb_audio_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015297 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15298 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015299 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15300 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015301 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15302 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015303 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15304 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015305 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15306 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015307 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15308 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015309 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15310 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015311 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15312 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015313 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15314 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015315 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15316 msm_routing_put_voice_mixer),
15317};
15318
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015319static const struct snd_kcontrol_new display_port_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015320 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15321MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015322 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15323 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015324 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15325MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015326 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15327 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015328 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15329MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015330 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15331 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015332 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15333MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015334 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15335 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015336 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15337MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015338 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15339 msm_routing_put_voice_mixer),
15340};
15341
Karthikeyan Mani57550082018-05-03 18:43:58 -070015342static const struct snd_kcontrol_new display_port_rx1_voice_mixer_controls[] = {
15343 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15344 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15345 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15346 msm_routing_put_voice_mixer),
15347 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15348 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15349 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15350 msm_routing_put_voice_mixer),
15351 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15352 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15353 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15354 msm_routing_put_voice_mixer),
15355 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15356 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15357 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15358 msm_routing_put_voice_mixer),
15359 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15360 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15361 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15362 msm_routing_put_voice_mixer),
15363};
15364
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015365static const struct snd_kcontrol_new bt_sco_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015366 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15367 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015368 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15369 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015370 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15371 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015372 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15373 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015374 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15375 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015376 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15377 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015378 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15379 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015380 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15381 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015382 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15383 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015384 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15385 msm_routing_put_voice_mixer),
15386};
15387
15388static const struct snd_kcontrol_new mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015389 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15390 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015391 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15392 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015393 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15394 MSM_BACKEND_DAI_MI2S_RX,
15395 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15396 msm_routing_put_voice_mixer),
15397 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15398 MSM_BACKEND_DAI_MI2S_RX,
15399 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15400 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015401 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15402 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015403 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15404 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015405 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15406 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015407 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15408 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015409 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15410 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015411 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15412 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015413 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15414 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015415 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15416 msm_routing_put_voice_mixer),
15417};
15418
15419static const struct snd_kcontrol_new pri_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015420 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015421 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015422 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15423 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015424 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15425 MSM_BACKEND_DAI_PRI_MI2S_RX,
15426 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15427 msm_routing_put_voice_mixer),
15428 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15429 MSM_BACKEND_DAI_PRI_MI2S_RX,
15430 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15431 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015432 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015433 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015434 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15435 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015436 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015437 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015438 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15439 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015440 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015441 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015442 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15443 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015444 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015445 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015446 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15447 msm_routing_put_voice_mixer),
15448};
15449
15450static const struct snd_kcontrol_new int0_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015451 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15452MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015453 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15454 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015455 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15456MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015457 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15458 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015459 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15460MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015461 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15462 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015463 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15464MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015465 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15466 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015467 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15468MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015469 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15470 msm_routing_put_voice_mixer),
15471};
15472
15473static const struct snd_kcontrol_new int4_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015474 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15475 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015476 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15477 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015478 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15479 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015480 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15481 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015482 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15483 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015484 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15485 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015486 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15487 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015488 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15489 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015490 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15491 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015492 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15493 msm_routing_put_voice_mixer),
15494};
15495
15496static const struct snd_kcontrol_new tert_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015497 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15498 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015499 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15500 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015501 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15502 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
15503 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15504 msm_routing_put_voice_mixer),
15505 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15506 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
15507 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15508 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015509 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15510 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015511 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15512 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015513 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15514 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015515 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15516 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015517 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15518 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015519 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15520 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015521 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15522 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015523 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15524 msm_routing_put_voice_mixer),
15525};
15526
15527static const struct snd_kcontrol_new quat_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015528 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15529 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015530 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15531 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015532 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15533 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
15534 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15535 msm_routing_put_voice_mixer),
15536 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15537 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
15538 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15539 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015540 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15541 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015542 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15543 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015544 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15545 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015546 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15547 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015548 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15549 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015550 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15551 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015552 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15553 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015554 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15555 msm_routing_put_voice_mixer),
15556};
15557
15558static const struct snd_kcontrol_new quin_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015559 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15560 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015561 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15562 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015563 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15564 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
15565 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15566 msm_routing_put_voice_stub_mixer),
15567 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15568 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
15569 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15570 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015571 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15572 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015573 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15574 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015575 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15576 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015577 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15578 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015579 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15580 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015581 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15582 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015583 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15584 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015585 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15586 msm_routing_put_voice_mixer),
15587};
15588
Karthikeyan Manic3700752019-03-11 18:33:53 -070015589static const struct snd_kcontrol_new sen_mi2s_rx_voice_mixer_controls[] = {
15590 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15591 MSM_BACKEND_DAI_SENARY_MI2S_RX,
15592 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15593 msm_routing_put_voice_mixer),
15594 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15595 MSM_BACKEND_DAI_SENARY_MI2S_RX,
15596 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15597 msm_routing_put_voice_mixer),
15598 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15599 MSM_BACKEND_DAI_SENARY_MI2S_RX,
15600 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15601 msm_routing_put_voice_mixer),
15602 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15603 MSM_BACKEND_DAI_SENARY_MI2S_RX,
15604 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15605 msm_routing_put_voice_mixer),
15606 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15607 MSM_BACKEND_DAI_SENARY_MI2S_RX,
15608 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15609 msm_routing_put_voice_mixer),
15610};
15611
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015612static const struct snd_kcontrol_new afe_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015613 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15614 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015615 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15616 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015617 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15618 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015619 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15620 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015621 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15622 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015623 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15624 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015625 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15626 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015627 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15628 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015629 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15630 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015631 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15632 msm_routing_put_voice_mixer),
15633};
15634
15635static const struct snd_kcontrol_new aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015636 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15637 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015638 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15639 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015640 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15641 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015642 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15643 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015644 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15645 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015646 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15647 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015648 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15649 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015650 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15651 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015652 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15653 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015654 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15655 msm_routing_put_voice_mixer),
15656};
15657
15658static const struct snd_kcontrol_new sec_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015659 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15660MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015661 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15662 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015663 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15664MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015665 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15666 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015667 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15668MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015669 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15670 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015671 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15672MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015673 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15674 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015675 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15676MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015677 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15678 msm_routing_put_voice_mixer),
15679};
15680
15681static const struct snd_kcontrol_new tert_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015682 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15683MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015684 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15685 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015686 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15687MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015688 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15689 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015690 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15691MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015692 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15693 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015694 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15695MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015696 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15697 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015698 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15699MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015700 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15701 msm_routing_put_voice_mixer),
15702};
15703
15704static const struct snd_kcontrol_new quat_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015705 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15706MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015707 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15708 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015709 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15710MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015711 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15712 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015713 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15714MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015715 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15716 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015717 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15718MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015719 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15720 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015721 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15722MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015723 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15724 msm_routing_put_voice_mixer),
15725};
15726
Rohit Kumara5077932017-09-10 22:05:05 +053015727static const struct snd_kcontrol_new quin_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015728 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15729MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015730 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15731 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015732 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15733MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015734 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15735 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015736 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15737MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015738 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15739 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015740 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15741MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015742 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15743 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015744 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15745MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015746 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15747 msm_routing_put_voice_mixer),
15748};
15749
Karthikeyan Manic3700752019-03-11 18:33:53 -070015750static const struct snd_kcontrol_new sen_aux_pcm_rx_voice_mixer_controls[] = {
15751 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM, MSM_BACKEND_DAI_SEN_AUXPCM_RX,
15752 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15753 msm_routing_put_voice_mixer),
15754 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM, MSM_BACKEND_DAI_SEN_AUXPCM_RX,
15755 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15756 msm_routing_put_voice_mixer),
15757 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM, MSM_BACKEND_DAI_SEN_AUXPCM_RX,
15758 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15759 msm_routing_put_voice_mixer),
15760 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15761 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
15762 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15763 msm_routing_put_voice_mixer),
15764 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15765 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
15766 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15767 msm_routing_put_voice_mixer),
15768};
15769
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015770static const struct snd_kcontrol_new hdmi_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015771 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15772 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015773 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15774 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015775 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15776 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015777 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15778 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015779 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15780 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015781 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15782 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015783 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15784 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015785 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15786 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015787 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15788 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015789 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15790 msm_routing_put_voice_mixer),
15791};
15792
15793static const struct snd_kcontrol_new slimbus_7_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015794 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15795MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015796 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15797 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015798 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15799MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015800 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15801 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015802 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15803MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015804 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15805 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015806 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15807MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015808 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15809 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015810 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15811MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015812 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15813 msm_routing_put_voice_mixer),
15814};
15815
15816static const struct snd_kcontrol_new slimbus_8_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015817 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15818 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015819 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15820 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015821 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15822 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015823 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15824 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015825 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15826 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015827 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15828 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015829 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15830 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015831 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15832 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015833 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15834 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015835 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15836 msm_routing_put_voice_mixer),
15837};
15838
15839static const struct snd_kcontrol_new quat_tdm_rx_2_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015840 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15841 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015842 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15843 msm_routing_put_voice_mixer),
15844};
15845
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053015846static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_voice_mixer_controls[] = {
15847 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15848 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
15849 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15850 msm_routing_put_voice_mixer),
15851 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15852 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
15853 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15854 msm_routing_put_voice_mixer),
15855 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15856 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
15857 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15858 msm_routing_put_voice_mixer),
15859 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15860 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
15861 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15862 msm_routing_put_voice_mixer),
15863 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15864 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
15865 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15866 msm_routing_put_voice_mixer),
15867};
15868
15869static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_voice_mixer_controls[] = {
15870 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15871 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
15872 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15873 msm_routing_put_voice_mixer),
15874 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15875 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
15876 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15877 msm_routing_put_voice_mixer),
15878 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15879 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
15880 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15881 msm_routing_put_voice_mixer),
15882 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15883 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
15884 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15885 msm_routing_put_voice_mixer),
15886 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15887 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
15888 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15889 msm_routing_put_voice_mixer),
15890};
15891
Aditya Bavanari1e84a932018-06-18 19:40:08 +053015892static const struct snd_kcontrol_new rx_cdc_dma_rx_0_voice_mixer_controls[] = {
15893 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15894 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
15895 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15896 msm_routing_put_voice_mixer),
15897 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15898 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
15899 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15900 msm_routing_put_voice_mixer),
15901 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15902 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
15903 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15904 msm_routing_put_voice_mixer),
15905 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15906 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
15907 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15908 msm_routing_put_voice_mixer),
15909 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15910 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
15911 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15912 msm_routing_put_voice_mixer),
15913};
15914
15915static const struct snd_kcontrol_new rx_cdc_dma_rx_1_voice_mixer_controls[] = {
15916 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15917 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
15918 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15919 msm_routing_put_voice_mixer),
15920 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15921 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
15922 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15923 msm_routing_put_voice_mixer),
15924 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15925 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
15926 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15927 msm_routing_put_voice_mixer),
15928 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15929 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
15930 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15931 msm_routing_put_voice_mixer),
15932 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15933 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
15934 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15935 msm_routing_put_voice_mixer),
15936};
15937
15938static const struct snd_kcontrol_new rx_cdc_dma_rx_2_voice_mixer_controls[] = {
15939 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15940 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
15941 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15942 msm_routing_put_voice_mixer),
15943 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15944 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
15945 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15946 msm_routing_put_voice_mixer),
15947 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15948 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
15949 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15950 msm_routing_put_voice_mixer),
15951 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15952 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
15953 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15954 msm_routing_put_voice_mixer),
15955 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15956 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
15957 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15958 msm_routing_put_voice_mixer),
15959};
15960
15961static const struct snd_kcontrol_new rx_cdc_dma_rx_3_voice_mixer_controls[] = {
15962 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15963 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
15964 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15965 msm_routing_put_voice_mixer),
15966 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15967 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
15968 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15969 msm_routing_put_voice_mixer),
15970 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15971 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
15972 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15973 msm_routing_put_voice_mixer),
15974 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15975 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
15976 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15977 msm_routing_put_voice_mixer),
15978 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15979 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
15980 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15981 msm_routing_put_voice_mixer),
15982};
15983
15984static const struct snd_kcontrol_new rx_cdc_dma_rx_4_voice_mixer_controls[] = {
15985 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15986 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
15987 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15988 msm_routing_put_voice_mixer),
15989 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15990 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
15991 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15992 msm_routing_put_voice_mixer),
15993 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15994 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
15995 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15996 msm_routing_put_voice_mixer),
15997 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15998 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
15999 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16000 msm_routing_put_voice_mixer),
16001 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16002 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
16003 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16004 msm_routing_put_voice_mixer),
16005};
16006
16007static const struct snd_kcontrol_new rx_cdc_dma_rx_5_voice_mixer_controls[] = {
16008 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16009 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
16010 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16011 msm_routing_put_voice_mixer),
16012 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16013 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
16014 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16015 msm_routing_put_voice_mixer),
16016 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16017 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
16018 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16019 msm_routing_put_voice_mixer),
16020 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16021 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
16022 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16023 msm_routing_put_voice_mixer),
16024 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16025 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
16026 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16027 msm_routing_put_voice_mixer),
16028};
16029
16030static const struct snd_kcontrol_new rx_cdc_dma_rx_6_voice_mixer_controls[] = {
16031 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16032 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
16033 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16034 msm_routing_put_voice_mixer),
16035 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16036 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
16037 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16038 msm_routing_put_voice_mixer),
16039 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16040 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
16041 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16042 msm_routing_put_voice_mixer),
16043 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16044 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
16045 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16046 msm_routing_put_voice_mixer),
16047 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16048 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
16049 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16050 msm_routing_put_voice_mixer),
16051};
16052
16053static const struct snd_kcontrol_new rx_cdc_dma_rx_7_voice_mixer_controls[] = {
16054 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16055 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
16056 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16057 msm_routing_put_voice_mixer),
16058 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16059 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
16060 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16061 msm_routing_put_voice_mixer),
16062 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16063 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
16064 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16065 msm_routing_put_voice_mixer),
16066 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16067 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
16068 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16069 msm_routing_put_voice_mixer),
16070 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16071 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
16072 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16073 msm_routing_put_voice_mixer),
16074};
16075
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053016076static const struct snd_kcontrol_new pri_tdm_rx_0_voice_mixer_controls[] = {
16077 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16078 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16079 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16080 msm_routing_put_voice_mixer),
16081 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
16082 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16083 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16084 msm_routing_put_voice_stub_mixer),
16085 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
16086 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16087 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16088 msm_routing_put_voice_stub_mixer),
16089 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
16090 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16091 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
16092 msm_routing_put_voice_mixer),
16093 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16094 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16095 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16096 msm_routing_put_voice_mixer),
16097 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16098 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16099 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16100 msm_routing_put_voice_mixer),
16101 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16102 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16103 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16104 msm_routing_put_voice_mixer),
16105 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16106 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16107 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16108 msm_routing_put_voice_mixer),
16109};
16110
16111static const struct snd_kcontrol_new pri_tdm_rx_1_voice_mixer_controls[] = {
16112 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16113 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16114 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16115 msm_routing_put_voice_mixer),
16116 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
16117 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16118 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16119 msm_routing_put_voice_stub_mixer),
16120 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
16121 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16122 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16123 msm_routing_put_voice_stub_mixer),
16124 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
16125 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16126 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
16127 msm_routing_put_voice_mixer),
16128 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16129 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16130 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16131 msm_routing_put_voice_mixer),
16132 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16133 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16134 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16135 msm_routing_put_voice_mixer),
16136 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16137 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16138 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16139 msm_routing_put_voice_mixer),
16140 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16141 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16142 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16143 msm_routing_put_voice_mixer),
16144};
16145
16146static const struct snd_kcontrol_new pri_tdm_rx_2_voice_mixer_controls[] = {
16147 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16148 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16149 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16150 msm_routing_put_voice_mixer),
16151 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
16152 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16153 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16154 msm_routing_put_voice_stub_mixer),
16155 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
16156 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16157 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16158 msm_routing_put_voice_stub_mixer),
16159 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
16160 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16161 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
16162 msm_routing_put_voice_mixer),
16163 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16164 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16165 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16166 msm_routing_put_voice_mixer),
16167 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16168 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16169 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16170 msm_routing_put_voice_mixer),
16171 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16172 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16173 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16174 msm_routing_put_voice_mixer),
16175 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16176 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16177 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16178 msm_routing_put_voice_mixer),
16179};
16180
16181static const struct snd_kcontrol_new pri_tdm_rx_3_voice_mixer_controls[] = {
16182 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16183 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16184 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16185 msm_routing_put_voice_mixer),
16186 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
16187 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16188 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16189 msm_routing_put_voice_stub_mixer),
16190 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
16191 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16192 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16193 msm_routing_put_voice_stub_mixer),
16194 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
16195 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16196 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
16197 msm_routing_put_voice_mixer),
16198 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16199 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16200 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16201 msm_routing_put_voice_mixer),
16202 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16203 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16204 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16205 msm_routing_put_voice_mixer),
16206 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16207 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16208 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16209 msm_routing_put_voice_mixer),
16210 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16211 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16212 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16213 msm_routing_put_voice_mixer),
16214};
16215
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016216static const struct snd_kcontrol_new stub_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016217 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16218 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016219 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16220 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016221 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16222 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016223 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16224 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016225};
16226
16227static const struct snd_kcontrol_new slimbus_1_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016228 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16229 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016230 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16231 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016232 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16233 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016234 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16235 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016236};
16237
16238static const struct snd_kcontrol_new slimbus_3_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016239 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16240 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016241 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("VoiceMMode2", SND_SOC_NOPM,
16244 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016245 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16246 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016247};
16248
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016249static const struct snd_kcontrol_new tx_voicemmode1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016250 SOC_DOUBLE_EXT("PRI_TX_MMode1", SND_SOC_NOPM,
16251 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016252 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16253 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016254 SOC_DOUBLE_EXT("MI2S_TX_MMode1", SND_SOC_NOPM,
16255 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016256 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16257 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016258 SOC_DOUBLE_EXT("SLIM_0_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016259 MSM_BACKEND_DAI_SLIMBUS_0_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("INT_BT_SCO_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016262 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016265 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
16266 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016267 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016268 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
16269 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016270 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016271 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16272 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016273 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016274 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16275 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016276 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016277 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16278 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016279 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053016280 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16281 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016282 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
16283 MSM_BACKEND_DAI_SEN_AUXPCM_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("PRI_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016286 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
16287 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang93b92622019-07-24 14:45:19 +080016288 SOC_DOUBLE_EXT("SEC_MI2S_TX_MMode1", SND_SOC_NOPM,
16289 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
16290 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016291 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016292 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
16293 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016294 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016295 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
16296 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016297 SOC_DOUBLE_EXT("SLIM_7_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016298 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16299 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016300 SOC_DOUBLE_EXT("SLIM_8_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016301 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16302 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016303 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode1", SND_SOC_NOPM,
16304 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016305 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16306 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016307 SOC_DOUBLE_EXT("QUAT_TDM_TX_0_MMode1", SND_SOC_NOPM,
Meng Wang93b92622019-07-24 14:45:19 +080016308 MSM_BACKEND_DAI_QUAT_TDM_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016309 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016310 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
16311 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
16312 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16313 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
16314 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
16315 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016316 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
16317 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
16318 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016319 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
16320 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
16321 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16322 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
16323 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
16324 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16325 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
16326 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
16327 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16328 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode1", SND_SOC_NOPM,
16329 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
16330 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16331 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode1", SND_SOC_NOPM,
16332 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE1,
16333 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16334 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode1", SND_SOC_NOPM,
16335 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE1,
16336 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e349b82018-02-23 16:34:40 +053016337 SOC_DOUBLE_EXT("QUAT_MI2S_TX_MMode1", SND_SOC_NOPM,
16338 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
16339 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16340 SOC_DOUBLE_EXT("QUIN_MI2S_TX_MMode1", SND_SOC_NOPM,
16341 MSM_BACKEND_DAI_QUINARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
16342 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Vignesh Kulothungan1572b9f2019-05-16 14:56:31 -070016343 SOC_DOUBLE_EXT("PRI_TDM_TX_3_MMode1", SND_SOC_NOPM,
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053016344 MSM_BACKEND_DAI_PRI_TDM_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
16345 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016346};
16347
16348static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016349 SOC_DOUBLE_EXT("PRI_TX_MMode2", SND_SOC_NOPM,
16350 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016351 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16352 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016353 SOC_DOUBLE_EXT("MI2S_TX_MMode2", SND_SOC_NOPM,
16354 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016355 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16356 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016357 SOC_DOUBLE_EXT("SLIM_0_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016358 MSM_BACKEND_DAI_SLIMBUS_0_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("INT_BT_SCO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016361 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016364 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
16365 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016366 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016367 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
16368 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016369 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016370 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16371 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016372 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016373 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16374 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016375 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016376 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16377 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016378 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053016379 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16380 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016381 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
16382 MSM_BACKEND_DAI_SEN_AUXPCM_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("PRI_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016385 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
16386 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang93b92622019-07-24 14:45:19 +080016387 SOC_DOUBLE_EXT("SEC_MI2S_TX_MMode2", SND_SOC_NOPM,
16388 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
16389 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016390 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016391 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
16392 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016393 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016394 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
16395 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016396 SOC_DOUBLE_EXT("SLIM_7_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016397 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16398 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016399 SOC_DOUBLE_EXT("SLIM_8_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016400 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16401 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016402 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016403 MSM_BACKEND_DAI_USB_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16404 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016405 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
16406 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
16407 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16408 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
16409 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
16410 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016411 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
16412 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
16413 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016414 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
16415 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
16416 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16417 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
16418 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
16419 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16420 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
16421 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
16422 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16423 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode2", SND_SOC_NOPM,
16424 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
16425 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16426 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode2", SND_SOC_NOPM,
16427 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE2,
16428 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16429 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode2", SND_SOC_NOPM,
16430 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE2,
16431 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e349b82018-02-23 16:34:40 +053016432 SOC_DOUBLE_EXT("QUAT_MI2S_TX_MMode2", SND_SOC_NOPM,
16433 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
16434 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16435 SOC_DOUBLE_EXT("QUIN_MI2S_TX_MMode2", SND_SOC_NOPM,
16436 MSM_BACKEND_DAI_QUINARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
16437 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Vignesh Kulothungan1572b9f2019-05-16 14:56:31 -070016438 SOC_DOUBLE_EXT("PRI_TDM_TX_3_MMode2", SND_SOC_NOPM,
16439 MSM_BACKEND_DAI_PRI_TDM_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053016440 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016441};
16442
16443static const struct snd_kcontrol_new tx_voip_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016444 SOC_DOUBLE_EXT("PRI_TX_Voip", SND_SOC_NOPM,
16445 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016446 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16447 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016448 SOC_DOUBLE_EXT("MI2S_TX_Voip", SND_SOC_NOPM,
16449 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016450 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16451 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016452 SOC_DOUBLE_EXT("SLIM_0_TX_Voip", SND_SOC_NOPM,
16453 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016454 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16455 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016456 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_Voip", SND_SOC_NOPM,
16457 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016458 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16459 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016460 SOC_DOUBLE_EXT("AFE_PCM_TX_Voip", SND_SOC_NOPM,
16461 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016462 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16463 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016464 SOC_DOUBLE_EXT("AUX_PCM_TX_Voip", SND_SOC_NOPM,
16465 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016466 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16467 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016468 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16469 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016470 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16471 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016472 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16473 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016474 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16475 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016476 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16477 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016478 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16479 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016480 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16481 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053016482 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16483 msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016484 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16485 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
16486 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16487 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016488 SOC_DOUBLE_EXT("PRI_MI2S_TX_Voip", SND_SOC_NOPM,
16489 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016490 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16491 msm_routing_put_voice_mixer),
Meng Wang93b92622019-07-24 14:45:19 +080016492 SOC_DOUBLE_EXT("SEC_MI2S_TX_Voip", SND_SOC_NOPM,
16493 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
16494 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16495 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016496 SOC_DOUBLE_EXT("TERT_MI2S_TX_Voip", SND_SOC_NOPM,
16497 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016498 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16499 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016500 SOC_DOUBLE_EXT("INT3_MI2S_TX_Voip", SND_SOC_NOPM,
16501 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016502 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16503 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016504 SOC_DOUBLE_EXT("SLIM_7_TX_Voip", SND_SOC_NOPM,
16505 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016506 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16507 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016508 SOC_DOUBLE_EXT("SLIM_8_TX_Voip", SND_SOC_NOPM,
16509 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016510 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16511 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016512 SOC_DOUBLE_EXT("USB_AUDIO_TX_Voip", SND_SOC_NOPM,
16513 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016514 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16515 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016516 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
16517 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
16518 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16519 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
16520 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
16521 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016522 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
16523 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
16524 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016525 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
16526 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
16527 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16528 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
16529 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
16530 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16531 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
16532 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
16533 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16534 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_Voip", SND_SOC_NOPM,
16535 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOIP,
16536 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16537 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_Voip", SND_SOC_NOPM,
16538 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOIP,
16539 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16540 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_Voip", SND_SOC_NOPM,
16541 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOIP,
16542 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Bala Kishore Patibdc425e2018-06-15 17:38:40 +053016543 SOC_SINGLE_EXT("PRI_TDM_TX_3_Voip", MSM_BACKEND_DAI_PRI_TDM_TX_3,
16544 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16545 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016546};
16547
16548static const struct snd_kcontrol_new tx_voice_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016549 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
16550 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016551 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16552 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016553 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16554 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016555 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16556 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016557 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
16558 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016559 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16560 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016561 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
16562 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016563 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16564 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016565 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
16566 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016567 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16568 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016569 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16570 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016571 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16572 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016573 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16574 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016575 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16576 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016577 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16578 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016579 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16580 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016581 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16582 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016583 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16584 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016585 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16586 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016587 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16588 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016589 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16590 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016591 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16592 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016593 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
16594 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016595 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16596 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016597 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
16598 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016599 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16600 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016601 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
16602 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053016603 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16604 msm_routing_put_voice_stub_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016605 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
16606 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
16607 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16608 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016609 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16610 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016611 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16612 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016613 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
16614 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016615 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16616 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016617 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16618 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016619 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16620 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016621 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
16622 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016623 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16624 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016625 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16626 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016627 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16628 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016629 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16630 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
16631 1, 0, msm_routing_get_voice_stub_mixer,
16632 msm_routing_put_voice_stub_mixer),
16633 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16634 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
16635 1, 0, msm_routing_get_voice_stub_mixer,
16636 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016637 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16638 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
16639 1, 0, msm_routing_get_voice_stub_mixer,
16640 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016641 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
16642 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
16643 1, 0, msm_routing_get_voice_stub_mixer,
16644 msm_routing_put_voice_stub_mixer),
16645 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
16646 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
16647 1, 0, msm_routing_get_voice_stub_mixer,
16648 msm_routing_put_voice_stub_mixer),
16649 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
16650 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
16651 1, 0, msm_routing_get_voice_stub_mixer,
16652 msm_routing_put_voice_stub_mixer),
16653 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16654 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE_STUB,
16655 1, 0, msm_routing_get_voice_stub_mixer,
16656 msm_routing_put_voice_stub_mixer),
16657 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
16658 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE_STUB,
16659 1, 0, msm_routing_get_voice_stub_mixer,
16660 msm_routing_put_voice_stub_mixer),
16661 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
16662 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE_STUB,
16663 1, 0, msm_routing_get_voice_stub_mixer,
16664 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016665};
16666
16667static const struct snd_kcontrol_new tx_voice2_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016668 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
16669 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016670 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16671 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016672 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
16673 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016674 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16675 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016676 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
16677 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016678 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16679 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016680 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16681 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016682 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16683 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016684 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16685 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016686 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16687 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016688 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
16689 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016690 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16691 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016692 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
16693 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016694 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16695 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016696 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
16697 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053016698 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16699 msm_routing_put_voice_stub_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016700 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
16701 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
16702 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16703 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016704 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16705 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016706 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16707 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016708 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
16709 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016710 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16711 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016712 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16713 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016714 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16715 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016716 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16717 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016718 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16719 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016720 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16721 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016722 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16723 msm_routing_put_voice_stub_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070016724 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16725 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
16726 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16727 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016728 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
16729 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016730 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16731 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016732 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16733 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016734 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16735 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016736 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16737 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
16738 1, 0, msm_routing_get_voice_stub_mixer,
16739 msm_routing_put_voice_stub_mixer),
16740 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16741 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
16742 1, 0, msm_routing_get_voice_stub_mixer,
16743 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016744 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16745 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
16746 1, 0, msm_routing_get_voice_stub_mixer,
16747 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016748 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
16749 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
16750 1, 0, msm_routing_get_voice_stub_mixer,
16751 msm_routing_put_voice_stub_mixer),
16752 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
16753 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
16754 1, 0, msm_routing_get_voice_stub_mixer,
16755 msm_routing_put_voice_stub_mixer),
16756 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
16757 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
16758 1, 0, msm_routing_get_voice_stub_mixer,
16759 msm_routing_put_voice_stub_mixer),
16760 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16761 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE2_STUB,
16762 1, 0, msm_routing_get_voice_stub_mixer,
16763 msm_routing_put_voice_stub_mixer),
16764 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
16765 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE2_STUB,
16766 1, 0, msm_routing_get_voice_stub_mixer,
16767 msm_routing_put_voice_stub_mixer),
16768 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
16769 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE2_STUB,
16770 1, 0, msm_routing_get_voice_stub_mixer,
16771 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016772};
16773
16774static const struct snd_kcontrol_new tx_volte_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016775 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
16776 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016777 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16778 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016779 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
16780 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016781 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16782 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016783 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
16784 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016785 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16786 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016787 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16788 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016789 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16790 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016791 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16792 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016793 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16794 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016795 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
16796 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016797 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16798 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016799 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
16800 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016801 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16802 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016803 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
16804 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053016805 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16806 msm_routing_put_voice_stub_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016807 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
16808 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
16809 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16810 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016811 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16812 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016813 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16814 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016815 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
16816 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016817 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16818 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016819 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16820 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016821 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16822 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016823 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16824 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016825 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16826 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016827 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16828 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016829 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16830 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016831 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
16832 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016833 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16834 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016835 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16836 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016837 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16838 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016839 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16840 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
16841 1, 0, msm_routing_get_voice_stub_mixer,
16842 msm_routing_put_voice_stub_mixer),
16843 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16844 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
16845 1, 0, msm_routing_get_voice_stub_mixer,
16846 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016847 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16848 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
16849 1, 0, msm_routing_get_voice_stub_mixer,
16850 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016851 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
16852 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
16853 1, 0, msm_routing_get_voice_stub_mixer,
16854 msm_routing_put_voice_stub_mixer),
16855 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
16856 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
16857 1, 0, msm_routing_get_voice_stub_mixer,
16858 msm_routing_put_voice_stub_mixer),
16859 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
16860 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
16861 1, 0, msm_routing_get_voice_stub_mixer,
16862 msm_routing_put_voice_stub_mixer),
16863 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16864 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOLTE_STUB,
16865 1, 0, msm_routing_get_voice_stub_mixer,
16866 msm_routing_put_voice_stub_mixer),
16867 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
16868 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOLTE_STUB,
16869 1, 0, msm_routing_get_voice_stub_mixer,
16870 msm_routing_put_voice_stub_mixer),
16871 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
16872 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOLTE_STUB,
16873 1, 0, msm_routing_get_voice_stub_mixer,
16874 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016875};
16876
16877static const struct snd_kcontrol_new tx_qchat_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016878 SOC_DOUBLE_EXT("PRI_TX_QCHAT", SND_SOC_NOPM,
16879 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016880 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16881 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016882 SOC_DOUBLE_EXT("SLIM_0_TX_QCHAT", SND_SOC_NOPM,
16883 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016884 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16885 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016886 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_QCHAT", SND_SOC_NOPM,
16887 MSM_BACKEND_DAI_INT_BT_SCO_TX,
16888 MSM_FRONTEND_DAI_QCHAT, 1, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016889 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016890 SOC_DOUBLE_EXT("AFE_PCM_TX_QCHAT", SND_SOC_NOPM,
16891 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016892 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16893 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016894 SOC_DOUBLE_EXT("AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
16895 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016896 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16897 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016898 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
16899 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016900 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16901 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016902 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
16903 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016904 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16905 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016906 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
16907 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016908 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16909 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016910 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
16911 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053016912 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16913 msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016914 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
16915 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
16916 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16917 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016918 SOC_DOUBLE_EXT("MI2S_TX_QCHAT", SND_SOC_NOPM,
16919 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016920 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16921 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016922 SOC_DOUBLE_EXT("PRI_MI2S_TX_QCHAT", SND_SOC_NOPM,
16923 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016924 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16925 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016926 SOC_DOUBLE_EXT("TERT_MI2S_TX_QCHAT", SND_SOC_NOPM,
16927 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016928 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16929 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016930 SOC_DOUBLE_EXT("INT3_MI2S_TX_QCHAT", SND_SOC_NOPM,
16931 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016932 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16933 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016934 SOC_DOUBLE_EXT("SLIM_7_TX_QCHAT", SND_SOC_NOPM,
16935 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016936 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16937 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016938 SOC_DOUBLE_EXT("SLIM_8_TX_QCHAT", SND_SOC_NOPM,
16939 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016940 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16941 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016942 SOC_DOUBLE_EXT("USB_AUDIO_TX_QCHAT", SND_SOC_NOPM,
16943 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016944 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16945 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016946 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
16947 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
16948 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16949 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
16950 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
16951 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016952 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
16953 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
16954 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016955 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
16956 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
16957 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16958 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
16959 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
16960 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16961 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
16962 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
16963 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16964 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_QCHAT", SND_SOC_NOPM,
16965 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_QCHAT,
16966 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16967 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_QCHAT", SND_SOC_NOPM,
16968 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_QCHAT,
16969 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16970 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_QCHAT", SND_SOC_NOPM,
16971 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_QCHAT,
16972 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016973};
16974
16975static const struct snd_kcontrol_new int0_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016976 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16977 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016978 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16979 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016980 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16981 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016982 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16983 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016984 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16985 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016986 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16987 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016988 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16989 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016990 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16991 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016992 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16993 MSM_BACKEND_DAI_INT0_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016994 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16995 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016996 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
16997 MSM_BACKEND_DAI_INT0_MI2S_RX,
16998 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16999 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017000 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17001 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017002 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17003 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017004 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17005 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017006 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17007 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017008 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17009 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017010 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17011 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017012 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
17013 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017014 MSM_BACKEND_DAI_SLIMBUS_7_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("SLIM_8_TX", SND_SOC_NOPM,
17017 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017018 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17019 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017020 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
17021 MSM_BACKEND_DAI_INT0_MI2S_RX,
17022 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
17023 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017024};
17025
17026static const struct snd_kcontrol_new int4_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017027 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17028 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017029 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17030 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017031 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17032 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017033 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17034 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017035 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17036 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017037 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17038 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017039 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17040 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017041 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17042 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017043 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17044 MSM_BACKEND_DAI_INT4_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017045 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17046 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017047 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17048 MSM_BACKEND_DAI_INT4_MI2S_RX,
17049 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17050 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017051 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17052 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017053 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17054 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017055 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17056 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017057 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17058 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017059 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17060 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017061 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17062 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017063 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
17064 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017065 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
17066 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017067 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17068 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017069 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17070 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017071 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
17072 MSM_BACKEND_DAI_INT4_MI2S_RX,
17073 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
17074 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017075};
17076
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053017077static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_port_mixer_controls[] = {
17078 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17079 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
17080 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, 1, 0, msm_routing_get_port_mixer,
17081 msm_routing_put_port_mixer),
17082 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17083 MSM_BACKEND_DAI_WSA_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_WSA_CDC_DMA_RX_0,
17088 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17089 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080017090 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17091 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
17092 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17093 msm_routing_put_port_mixer),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053017094};
17095
17096static const struct snd_kcontrol_new rx_cdc_dma_rx_0_port_mixer_controls[] = {
17097 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17098 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
17099 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
17100 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080017101 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17102 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
17103 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17104 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017105 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
Meng Wang3f8ba542018-12-10 14:17:10 +080017106 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
Surendar Karka3ef3d812018-09-28 18:52:35 +053017107 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
17108 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080017109 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17110 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
17111 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17112 msm_routing_put_port_mixer),
17113
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053017114};
17115
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017116static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017117 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17118 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017119 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17120 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017121 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17122 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017123 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17124 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017125 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17126 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017127 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17128 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017129 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
17130 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017131 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
17132 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017133 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17134 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017135 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17136 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017137 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17138 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017139 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17140 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017141 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17142 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017143 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17144 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017145 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
17146 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017147 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17148 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017149 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
17150 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017151 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17152 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017153 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
17154 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017155 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17156 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017157 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
17158 MSM_BACKEND_DAI_SLIMBUS_0_RX,
17159 MSM_BACKEND_DAI_SEN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17160 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017161 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17162 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017163 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17164 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017165 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17166 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017167 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17168 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017169 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17170 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017171 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17172 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017173 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17174 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017175 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17176 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017177 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17178 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017179 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17180 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017181 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17182 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017183 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17184 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017185 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17186 MSM_BACKEND_DAI_SLIMBUS_0_RX,
17187 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17188 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017189 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17190 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017191 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17192 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017193 SOC_DOUBLE_EXT("PRI_MI2S_RX", SND_SOC_NOPM,
17194 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017195 MSM_BACKEND_DAI_PRI_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17196 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017197 SOC_DOUBLE_EXT("SEC_MI2S_RX", SND_SOC_NOPM,
17198 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017199 MSM_BACKEND_DAI_SECONDARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17200 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017201 SOC_DOUBLE_EXT("TERT_MI2S_RX", SND_SOC_NOPM,
17202 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017203 MSM_BACKEND_DAI_TERTIARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17204 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017205 SOC_DOUBLE_EXT("QUAT_MI2S_RX", SND_SOC_NOPM,
17206 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017207 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17208 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017209 SOC_DOUBLE_EXT("QUIN_MI2S_RX", SND_SOC_NOPM,
17210 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Surendar Karka3ef3d812018-09-28 18:52:35 +053017211 MSM_BACKEND_DAI_QUINARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17212 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017213 SOC_DOUBLE_EXT("SEN_MI2S_RX", SND_SOC_NOPM,
17214 MSM_BACKEND_DAI_SLIMBUS_0_RX,
17215 MSM_BACKEND_DAI_SENARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17216 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017217 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
17218 MSM_BACKEND_DAI_SLIMBUS_0_RX,
17219 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
Rohit Kumara5077932017-09-10 22:05:05 +053017220 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017221};
17222
17223static const struct snd_kcontrol_new aux_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017224 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17225 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017226 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17227 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017228 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17229 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017230 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17231 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017232 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17233 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017234 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17235 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017236 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17237 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017238 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17239 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017240 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
17241 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017242 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
17243 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017244 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17245 MSM_BACKEND_DAI_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080017246 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17247 msm_routing_put_port_mixer),
Suprith Malligere Shankaregowda467f2c92019-04-19 19:35:41 +053017248 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
17249 MSM_BACKEND_DAI_AUXPCM_RX,
17250 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
17251 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017252};
17253
17254static const struct snd_kcontrol_new sec_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017255 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17256 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017257 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17258 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017259 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17260 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017261 MSM_BACKEND_DAI_SLIMBUS_0_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
17264 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017265 MSM_BACKEND_DAI_AUXPCM_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("PRI_MI2S_TX", SND_SOC_NOPM,
17268 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080017269 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17270 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017271};
17272
17273static const struct snd_kcontrol_new tert_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017274 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
17275 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017276 MSM_BACKEND_DAI_TERT_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_TERT_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_TERT_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
17288static const struct snd_kcontrol_new quat_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017289 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
17290 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017291 MSM_BACKEND_DAI_QUAT_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_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +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_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017299 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17300 msm_routing_put_port_mixer),
17301};
17302
Rohit Kumara5077932017-09-10 22:05:05 +053017303static const struct snd_kcontrol_new quin_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017304 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
17305 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017306 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17307 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017308 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17309 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017310 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17311 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017312 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17313 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017314 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17315 msm_routing_put_port_mixer),
17316};
17317
Karthikeyan Manic3700752019-03-11 18:33:53 -070017318static const struct snd_kcontrol_new sen_auxpcm_rx_port_mixer_controls[] = {
17319 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
17320 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
17321 MSM_BACKEND_DAI_SEN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17322 msm_routing_put_port_mixer),
17323 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17324 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
17325 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17326 msm_routing_put_port_mixer),
17327 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17328 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
17329 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17330 msm_routing_put_port_mixer),
17331};
17332
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017333static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017334 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17335 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017336 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17337 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017338 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17339 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017340 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0, msm_routing_get_port_mixer,
17341 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017342 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17343 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017344 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17345 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017346 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17347 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017348 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17349 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017350 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
17351 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017352 MSM_BACKEND_DAI_TERT_AUXPCM_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("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
17355 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017356 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17357 msm_routing_put_port_mixer),
17358};
17359
17360static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017361 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_RX", SND_SOC_NOPM,
17362 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017363 MSM_BACKEND_DAI_INT_BT_SCO_RX, 1, 0, msm_routing_get_port_mixer,
17364 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017365 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17366 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017367 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17368 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017369 SOC_DOUBLE_EXT("AFE_PCM_RX", SND_SOC_NOPM,
17370 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017371 MSM_BACKEND_DAI_AFE_PCM_RX, 1, 0, msm_routing_get_port_mixer,
17372 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017373 SOC_DOUBLE_EXT("AUX_PCM_RX", SND_SOC_NOPM,
17374 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017375 MSM_BACKEND_DAI_AUXPCM_RX, 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_0_RX", SND_SOC_NOPM,
17378 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017379 MSM_BACKEND_DAI_SLIMBUS_0_RX, 1, 0, msm_routing_get_port_mixer,
17380 msm_routing_put_port_mixer),
17381};
17382
17383static const struct snd_kcontrol_new sbus_6_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017384 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17385 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017386 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17387 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017388 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17389 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017390 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17391 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017392 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17393 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017394 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17395 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017396 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
17397 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017398 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
17399 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017400 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17401 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017402 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17403 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017404 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17405 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017406 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17407 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017408 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17409 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017410 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17411 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017412 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17413 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017414 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17415 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017416 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17417 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017418 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17419 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017420 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17421 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017422 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17423 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017424 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17425 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017426 MSM_BACKEND_DAI_QUATERNARY_MI2S_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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17429 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017430 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17431 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017432 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
17433 MSM_BACKEND_DAI_SLIMBUS_6_RX,
17434 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
17435 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017436};
17437
17438static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017439 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17440 MSM_BACKEND_DAI_INT_BT_SCO_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),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017443 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17444 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017445 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17446 msm_routing_put_port_mixer),
17447};
17448
17449static const struct snd_kcontrol_new afe_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017450 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17451 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017452 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17453 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017454 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17455 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017456 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17457 msm_routing_put_port_mixer),
17458};
17459
17460
17461static const struct snd_kcontrol_new hdmi_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017462 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17463 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017464 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17465 msm_routing_put_port_mixer),
17466};
17467
17468static const struct snd_kcontrol_new display_port_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017469 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17470 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017471 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17472 msm_routing_put_port_mixer),
17473};
17474
Karthikeyan Mani57550082018-05-03 18:43:58 -070017475static const struct snd_kcontrol_new display_port_rx1_port_mixer_controls[] = {
17476 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17477 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
17478 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17479 msm_routing_put_port_mixer),
17480};
17481
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017482static const struct snd_kcontrol_new sec_i2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017483 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17484 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017485 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17486 msm_routing_put_port_mixer),
17487};
17488
17489static const struct snd_kcontrol_new mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017490 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17491 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017492 MSM_BACKEND_DAI_SLIMBUS_1_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("MI2S_TX", SND_SOC_NOPM,
17495 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017496 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17497 msm_routing_put_port_mixer),
17498};
17499
17500static const struct snd_kcontrol_new primary_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017501 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17502 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017503 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17504 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017505 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17506 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017507 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17508 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017509 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17510 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017511 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17512 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017513 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17514 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017515 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17516 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017517 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17518 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017519 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17520 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017521 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17522 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017523 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17524 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017525 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17526 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017527 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17528 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017529 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17530 MSM_BACKEND_DAI_PRI_MI2S_RX,
17531 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17532 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017533 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17534 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017535 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17536 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017537 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17538 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017539 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17540 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017541 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17542 MSM_BACKEND_DAI_PRI_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080017543 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17544 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017545};
17546
17547static const struct snd_kcontrol_new usb_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017548 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
17549 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017550 MSM_BACKEND_DAI_USB_TX, 1, 0, msm_routing_get_port_mixer,
17551 msm_routing_put_port_mixer),
17552};
17553
17554static const struct snd_kcontrol_new quat_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017555 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17556 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017557 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17558 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017559 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17560 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017561 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17562 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017563 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17564 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017565 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17566 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017567 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17568 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017569 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17570 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017571 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17572 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017573 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17574 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017575 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17576 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017577 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17578 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017579 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17580 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017581 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17582 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017583 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17584 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017585 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17586 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017587 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17588 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
17589 MSM_BACKEND_DAI_SENARY_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_8_TX", SND_SOC_NOPM,
17592 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017593 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17594 msm_routing_put_port_mixer),
17595};
17596
Rohit Kumara5077932017-09-10 22:05:05 +053017597static const struct snd_kcontrol_new quin_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017598 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17599 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017600 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17601 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017602 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17603 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017604 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17605 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017606 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17607 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017608 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17609 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017610 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17611 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017612 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17613 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017614 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17615 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017616 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17617 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017618 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17619 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
17620 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17621 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017622 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17623 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017624 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17625 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017626 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17627 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017628 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17629 msm_routing_put_port_mixer),
17630};
17631
Karthikeyan Manic3700752019-03-11 18:33:53 -070017632static const struct snd_kcontrol_new sen_mi2s_rx_port_mixer_controls[] = {
17633 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17634 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17635 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17636 msm_routing_put_port_mixer),
17637 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17638 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17639 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17640 msm_routing_put_port_mixer),
17641 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17642 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17643 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17644 msm_routing_put_port_mixer),
17645 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17646 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17647 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17648 msm_routing_put_port_mixer),
17649 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17650 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17651 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17652 msm_routing_put_port_mixer),
17653 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17654 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17655 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17656 msm_routing_put_port_mixer),
17657 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17658 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17659 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17660 msm_routing_put_port_mixer),
17661 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17662 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17663 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17664 msm_routing_put_port_mixer),
17665};
17666
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017667static const struct snd_kcontrol_new pri_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017668 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17669 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017670 MSM_BACKEND_DAI_PRI_MI2S_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("SEC_MI2S_TX", SND_SOC_NOPM,
17674 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017675 MSM_BACKEND_DAI_SECONDARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
17679 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017680 MSM_BACKEND_DAI_QUATERNARY_MI2S_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("INTERNAL_FM_TX", SND_SOC_NOPM,
17684 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017685 MSM_BACKEND_DAI_INT_FM_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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17689 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017690 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
17694 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017695 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
17699 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017700 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17704 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017705 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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_0", 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_0, 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("PRI_TDM_TX_1", SND_SOC_NOPM,
17714 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017715 MSM_BACKEND_DAI_PRI_TDM_TX_1, 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("PRI_TDM_TX_2", SND_SOC_NOPM,
17719 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017720 MSM_BACKEND_DAI_PRI_TDM_TX_2, 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("PRI_TDM_TX_3", SND_SOC_NOPM,
17724 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017725 MSM_BACKEND_DAI_PRI_TDM_TX_3, 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_0", 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_0, 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("QUAT_TDM_TX_1", SND_SOC_NOPM,
17734 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017735 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
17739 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017740 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
17744 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017745 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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_0", 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_0, 1, 0,
17751 msm_routing_get_port_mixer,
17752 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017753 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
17754 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017755 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
17756 msm_routing_get_port_mixer,
17757 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017758 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
17759 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017760 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
17761 msm_routing_get_port_mixer,
17762 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017763 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
17764 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017765 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
17766 msm_routing_get_port_mixer,
17767 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017768 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
17769 MSM_BACKEND_DAI_PRI_TDM_RX_0,
17770 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
17771 msm_routing_get_port_mixer,
17772 msm_routing_put_port_mixer),
17773 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
17774 MSM_BACKEND_DAI_PRI_TDM_RX_0,
17775 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
17776 msm_routing_get_port_mixer,
17777 msm_routing_put_port_mixer),
17778 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
17779 MSM_BACKEND_DAI_PRI_TDM_RX_0,
17780 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
17781 msm_routing_get_port_mixer,
17782 msm_routing_put_port_mixer),
17783 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
17784 MSM_BACKEND_DAI_PRI_TDM_RX_0,
17785 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
17786 msm_routing_get_port_mixer,
17787 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017788};
17789
17790static const struct snd_kcontrol_new pri_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017791 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17792 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017793 MSM_BACKEND_DAI_PRI_MI2S_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("SEC_MI2S_TX", SND_SOC_NOPM,
17797 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017798 MSM_BACKEND_DAI_SECONDARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
17802 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017803 MSM_BACKEND_DAI_QUATERNARY_MI2S_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("INTERNAL_FM_TX", SND_SOC_NOPM,
17807 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017808 MSM_BACKEND_DAI_INT_FM_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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17812 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017813 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
17817 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017818 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
17822 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017823 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17827 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017828 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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_0", 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_0, 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("PRI_TDM_TX_1", SND_SOC_NOPM,
17837 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017838 MSM_BACKEND_DAI_PRI_TDM_TX_1, 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("PRI_TDM_TX_2", SND_SOC_NOPM,
17842 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017843 MSM_BACKEND_DAI_PRI_TDM_TX_2, 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("PRI_TDM_TX_3", SND_SOC_NOPM,
17847 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017848 MSM_BACKEND_DAI_PRI_TDM_TX_3, 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_0", 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_0, 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("QUAT_TDM_TX_1", SND_SOC_NOPM,
17857 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017858 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
17862 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017863 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
17867 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017868 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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_0", 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_0, 1, 0,
17874 msm_routing_get_port_mixer,
17875 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017876 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
17877 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053017878 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
17879 msm_routing_get_port_mixer,
17880 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017881 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
17882 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053017883 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
17884 msm_routing_get_port_mixer,
17885 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017886 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
17887 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053017888 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
17889 msm_routing_get_port_mixer,
17890 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017891 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
17892 MSM_BACKEND_DAI_PRI_TDM_RX_1,
17893 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
17894 msm_routing_get_port_mixer,
17895 msm_routing_put_port_mixer),
17896 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
17897 MSM_BACKEND_DAI_PRI_TDM_RX_1,
17898 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
17899 msm_routing_get_port_mixer,
17900 msm_routing_put_port_mixer),
17901 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
17902 MSM_BACKEND_DAI_PRI_TDM_RX_1,
17903 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
17904 msm_routing_get_port_mixer,
17905 msm_routing_put_port_mixer),
17906 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
17907 MSM_BACKEND_DAI_PRI_TDM_RX_1,
17908 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
17909 msm_routing_get_port_mixer,
17910 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017911};
17912
17913static const struct snd_kcontrol_new pri_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017914 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17915 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017916 MSM_BACKEND_DAI_PRI_MI2S_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("SEC_MI2S_TX", SND_SOC_NOPM,
17920 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017921 MSM_BACKEND_DAI_SECONDARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
17925 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017926 MSM_BACKEND_DAI_QUATERNARY_MI2S_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("INTERNAL_FM_TX", SND_SOC_NOPM,
17930 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017931 MSM_BACKEND_DAI_INT_FM_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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17935 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017936 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
17940 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017941 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
17945 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017946 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17950 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017951 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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_0", 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_0, 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("PRI_TDM_TX_1", SND_SOC_NOPM,
17960 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017961 MSM_BACKEND_DAI_PRI_TDM_TX_1, 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("PRI_TDM_TX_2", SND_SOC_NOPM,
17965 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017966 MSM_BACKEND_DAI_PRI_TDM_TX_2, 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("PRI_TDM_TX_3", SND_SOC_NOPM,
17970 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017971 MSM_BACKEND_DAI_PRI_TDM_TX_3, 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_0", 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_0, 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("QUAT_TDM_TX_1", SND_SOC_NOPM,
17980 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017981 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
17985 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017986 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
17990 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017991 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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_0", 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_0, 1, 0,
17997 msm_routing_get_port_mixer,
17998 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017999 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18000 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018001 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18002 msm_routing_get_port_mixer,
18003 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018004 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18005 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018006 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18007 msm_routing_get_port_mixer,
18008 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018009 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18010 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018011 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18012 msm_routing_get_port_mixer,
18013 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018014 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18015 MSM_BACKEND_DAI_PRI_TDM_RX_2,
18016 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18017 msm_routing_get_port_mixer,
18018 msm_routing_put_port_mixer),
18019 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18020 MSM_BACKEND_DAI_PRI_TDM_RX_2,
18021 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18022 msm_routing_get_port_mixer,
18023 msm_routing_put_port_mixer),
18024 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18025 MSM_BACKEND_DAI_PRI_TDM_RX_2,
18026 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18027 msm_routing_get_port_mixer,
18028 msm_routing_put_port_mixer),
18029 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18030 MSM_BACKEND_DAI_PRI_TDM_RX_2,
18031 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18032 msm_routing_get_port_mixer,
18033 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018034};
18035
18036static const struct snd_kcontrol_new pri_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018037 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18038 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018039 MSM_BACKEND_DAI_PRI_MI2S_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("SEC_MI2S_TX", SND_SOC_NOPM,
18043 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018044 MSM_BACKEND_DAI_SECONDARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
18048 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018049 MSM_BACKEND_DAI_QUATERNARY_MI2S_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("INTERNAL_FM_TX", SND_SOC_NOPM,
18053 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018054 MSM_BACKEND_DAI_INT_FM_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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18058 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018059 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
18063 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018064 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
18068 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018069 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18073 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018074 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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_0", 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_0, 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("PRI_TDM_TX_1", SND_SOC_NOPM,
18083 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018084 MSM_BACKEND_DAI_PRI_TDM_TX_1, 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("PRI_TDM_TX_2", SND_SOC_NOPM,
18088 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018089 MSM_BACKEND_DAI_PRI_TDM_TX_2, 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("PRI_TDM_TX_3", SND_SOC_NOPM,
18093 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018094 MSM_BACKEND_DAI_PRI_TDM_TX_3, 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_0", 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_0, 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("QUAT_TDM_TX_1", SND_SOC_NOPM,
18103 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018104 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
18108 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018109 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
18113 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018114 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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_0", 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_0, 1, 0,
18120 msm_routing_get_port_mixer,
18121 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018122 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18123 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018124 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18125 msm_routing_get_port_mixer,
18126 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018127 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18128 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018129 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18130 msm_routing_get_port_mixer,
18131 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018132 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18133 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018134 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18135 msm_routing_get_port_mixer,
18136 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018137 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18138 MSM_BACKEND_DAI_PRI_TDM_RX_3,
18139 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18140 msm_routing_get_port_mixer,
18141 msm_routing_put_port_mixer),
18142 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18143 MSM_BACKEND_DAI_PRI_TDM_RX_3,
18144 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18145 msm_routing_get_port_mixer,
18146 msm_routing_put_port_mixer),
18147 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18148 MSM_BACKEND_DAI_PRI_TDM_RX_3,
18149 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18150 msm_routing_get_port_mixer,
18151 msm_routing_put_port_mixer),
18152 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18153 MSM_BACKEND_DAI_PRI_TDM_RX_3,
18154 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18155 msm_routing_get_port_mixer,
18156 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018157};
18158
18159static const struct snd_kcontrol_new sec_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018160 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18161 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018162 MSM_BACKEND_DAI_PRI_MI2S_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("SEC_MI2S_TX", SND_SOC_NOPM,
18166 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018167 MSM_BACKEND_DAI_SECONDARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
18171 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018172 MSM_BACKEND_DAI_QUATERNARY_MI2S_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("INTERNAL_FM_TX", SND_SOC_NOPM,
18176 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018177 MSM_BACKEND_DAI_INT_FM_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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18181 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018182 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
18186 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018187 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
18191 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018192 MSM_BACKEND_DAI_AUXPCM_TX, 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_AUX_PCM_UL_TX", SND_SOC_NOPM,
18196 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018197 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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_0", 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_0, 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("SEC_TDM_TX_1", SND_SOC_NOPM,
18206 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018207 MSM_BACKEND_DAI_SEC_TDM_TX_1, 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("SEC_TDM_TX_2", SND_SOC_NOPM,
18211 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018212 MSM_BACKEND_DAI_SEC_TDM_TX_2, 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("SEC_TDM_TX_3", SND_SOC_NOPM,
18216 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018217 MSM_BACKEND_DAI_SEC_TDM_TX_3, 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_0", 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_0, 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("QUAT_TDM_TX_1", SND_SOC_NOPM,
18226 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018227 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
18231 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018232 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
18236 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018237 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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_0", 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_0, 1, 0,
18243 msm_routing_get_port_mixer,
18244 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018245 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18246 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018247 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18248 msm_routing_get_port_mixer,
18249 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018250 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18251 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018252 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18253 msm_routing_get_port_mixer,
18254 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018255 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18256 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018257 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18258 msm_routing_get_port_mixer,
18259 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018260 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18261 MSM_BACKEND_DAI_SEC_TDM_RX_0,
18262 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18263 msm_routing_get_port_mixer,
18264 msm_routing_put_port_mixer),
18265 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18266 MSM_BACKEND_DAI_SEC_TDM_RX_0,
18267 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18268 msm_routing_get_port_mixer,
18269 msm_routing_put_port_mixer),
18270 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18271 MSM_BACKEND_DAI_SEC_TDM_RX_0,
18272 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18273 msm_routing_get_port_mixer,
18274 msm_routing_put_port_mixer),
18275 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18276 MSM_BACKEND_DAI_SEC_TDM_RX_0,
18277 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18278 msm_routing_get_port_mixer,
18279 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018280};
18281
18282static const struct snd_kcontrol_new sec_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018283 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18284 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018285 MSM_BACKEND_DAI_PRI_MI2S_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("SEC_MI2S_TX", SND_SOC_NOPM,
18289 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018290 MSM_BACKEND_DAI_SECONDARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
18294 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018295 MSM_BACKEND_DAI_QUATERNARY_MI2S_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("INTERNAL_FM_TX", SND_SOC_NOPM,
18299 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018300 MSM_BACKEND_DAI_INT_FM_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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18304 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018305 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
18309 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018310 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
18314 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018315 MSM_BACKEND_DAI_AUXPCM_TX, 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_AUX_PCM_UL_TX", SND_SOC_NOPM,
18319 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018320 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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_0", 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_0, 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("SEC_TDM_TX_1", SND_SOC_NOPM,
18329 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018330 MSM_BACKEND_DAI_SEC_TDM_TX_1, 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("SEC_TDM_TX_2", SND_SOC_NOPM,
18334 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018335 MSM_BACKEND_DAI_SEC_TDM_TX_2, 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("SEC_TDM_TX_3", SND_SOC_NOPM,
18339 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018340 MSM_BACKEND_DAI_SEC_TDM_TX_3, 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_0", 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_0, 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("QUAT_TDM_TX_1", SND_SOC_NOPM,
18349 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018350 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
18354 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018355 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
18359 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018360 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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_0", 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_0, 1, 0,
18366 msm_routing_get_port_mixer,
18367 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018368 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18369 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018370 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18371 msm_routing_get_port_mixer,
18372 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018373 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18374 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018375 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18376 msm_routing_get_port_mixer,
18377 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018378 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18379 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018380 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18381 msm_routing_get_port_mixer,
18382 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018383 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18384 MSM_BACKEND_DAI_SEC_TDM_RX_1,
18385 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18386 msm_routing_get_port_mixer,
18387 msm_routing_put_port_mixer),
18388 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18389 MSM_BACKEND_DAI_SEC_TDM_RX_1,
18390 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18391 msm_routing_get_port_mixer,
18392 msm_routing_put_port_mixer),
18393 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18394 MSM_BACKEND_DAI_SEC_TDM_RX_1,
18395 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18396 msm_routing_get_port_mixer,
18397 msm_routing_put_port_mixer),
18398 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18399 MSM_BACKEND_DAI_SEC_TDM_RX_1,
18400 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18401 msm_routing_get_port_mixer,
18402 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018403};
18404
18405static const struct snd_kcontrol_new sec_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018406 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18407 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018408 MSM_BACKEND_DAI_PRI_MI2S_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("SEC_MI2S_TX", SND_SOC_NOPM,
18412 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018413 MSM_BACKEND_DAI_SECONDARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
18417 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018418 MSM_BACKEND_DAI_QUATERNARY_MI2S_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("INTERNAL_FM_TX", SND_SOC_NOPM,
18422 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018423 MSM_BACKEND_DAI_INT_FM_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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18427 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018428 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
18432 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018433 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
18437 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018438 MSM_BACKEND_DAI_AUXPCM_TX, 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_AUX_PCM_UL_TX", SND_SOC_NOPM,
18442 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018443 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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_0", 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_0, 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("SEC_TDM_TX_1", SND_SOC_NOPM,
18452 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018453 MSM_BACKEND_DAI_SEC_TDM_TX_1, 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("SEC_TDM_TX_2", SND_SOC_NOPM,
18457 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018458 MSM_BACKEND_DAI_SEC_TDM_TX_2, 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("SEC_TDM_TX_3", SND_SOC_NOPM,
18462 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018463 MSM_BACKEND_DAI_SEC_TDM_TX_3, 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_0", 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_0, 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("QUAT_TDM_TX_1", SND_SOC_NOPM,
18472 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018473 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
18477 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018478 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
18482 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018483 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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_0", 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_0, 1, 0,
18489 msm_routing_get_port_mixer,
18490 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018491 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18492 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018493 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18494 msm_routing_get_port_mixer,
18495 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018496 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18497 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018498 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18499 msm_routing_get_port_mixer,
18500 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018501 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18502 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018503 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18504 msm_routing_get_port_mixer,
18505 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018506 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18507 MSM_BACKEND_DAI_SEC_TDM_RX_2,
18508 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18509 msm_routing_get_port_mixer,
18510 msm_routing_put_port_mixer),
18511 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18512 MSM_BACKEND_DAI_SEC_TDM_RX_2,
18513 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18514 msm_routing_get_port_mixer,
18515 msm_routing_put_port_mixer),
18516 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18517 MSM_BACKEND_DAI_SEC_TDM_RX_2,
18518 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18519 msm_routing_get_port_mixer,
18520 msm_routing_put_port_mixer),
18521 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18522 MSM_BACKEND_DAI_SEC_TDM_RX_2,
18523 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18524 msm_routing_get_port_mixer,
18525 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018526};
18527
18528static const struct snd_kcontrol_new sec_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018529 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18530 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018531 MSM_BACKEND_DAI_PRI_MI2S_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("SEC_MI2S_TX", SND_SOC_NOPM,
18535 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018536 MSM_BACKEND_DAI_SECONDARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
18540 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018541 MSM_BACKEND_DAI_QUATERNARY_MI2S_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("INTERNAL_FM_TX", SND_SOC_NOPM,
18545 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018546 MSM_BACKEND_DAI_INT_FM_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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18550 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018551 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
18555 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018556 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
18560 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018561 MSM_BACKEND_DAI_AUXPCM_TX, 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_AUX_PCM_UL_TX", SND_SOC_NOPM,
18565 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018566 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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_0", 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_0, 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("SEC_TDM_TX_1", SND_SOC_NOPM,
18575 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018576 MSM_BACKEND_DAI_SEC_TDM_TX_1, 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("SEC_TDM_TX_2", SND_SOC_NOPM,
18580 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018581 MSM_BACKEND_DAI_SEC_TDM_TX_2, 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("SEC_TDM_TX_3", SND_SOC_NOPM,
18585 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018586 MSM_BACKEND_DAI_SEC_TDM_TX_3, 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_0", 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_0, 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("QUAT_TDM_TX_1", SND_SOC_NOPM,
18595 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018596 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
18600 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018601 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
18605 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018606 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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_0", 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_0, 1, 0,
18612 msm_routing_get_port_mixer,
18613 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018614 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18615 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018616 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18617 msm_routing_get_port_mixer,
18618 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018619 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18620 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018621 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18622 msm_routing_get_port_mixer,
18623 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018624 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18625 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018626 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18627 msm_routing_get_port_mixer,
18628 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018629 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18630 MSM_BACKEND_DAI_SEC_TDM_RX_3,
18631 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18632 msm_routing_get_port_mixer,
18633 msm_routing_put_port_mixer),
18634 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18635 MSM_BACKEND_DAI_SEC_TDM_RX_3,
18636 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18637 msm_routing_get_port_mixer,
18638 msm_routing_put_port_mixer),
18639 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18640 MSM_BACKEND_DAI_SEC_TDM_RX_3,
18641 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18642 msm_routing_get_port_mixer,
18643 msm_routing_put_port_mixer),
18644 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18645 MSM_BACKEND_DAI_SEC_TDM_RX_3,
18646 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18647 msm_routing_get_port_mixer,
18648 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018649};
18650
Derek Chenfdcc0982018-10-02 15:14:03 -070018651static const struct snd_kcontrol_new sec_tdm_rx_7_port_mixer_controls[] = {
18652 SOC_DOUBLE_EXT("TERT_TDM_TX_7", SND_SOC_NOPM,
18653 MSM_BACKEND_DAI_SEC_TDM_RX_7,
18654 MSM_BACKEND_DAI_TERT_TDM_TX_7, 1, 0,
18655 msm_routing_get_port_mixer,
18656 msm_routing_put_port_mixer),
18657};
18658
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018659static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018660 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18661 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018662 MSM_BACKEND_DAI_PRI_MI2S_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("SEC_MI2S_TX", SND_SOC_NOPM,
18666 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018667 MSM_BACKEND_DAI_SECONDARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
18671 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018672 MSM_BACKEND_DAI_QUATERNARY_MI2S_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("INTERNAL_FM_TX", SND_SOC_NOPM,
18676 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018677 MSM_BACKEND_DAI_INT_FM_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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18681 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018682 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
18686 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018687 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
18691 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018692 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18696 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018697 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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_0", 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_0, 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("TERT_TDM_TX_1", SND_SOC_NOPM,
18706 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018707 MSM_BACKEND_DAI_TERT_TDM_TX_1, 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("TERT_TDM_TX_2", SND_SOC_NOPM,
18711 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018712 MSM_BACKEND_DAI_TERT_TDM_TX_2, 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("TERT_TDM_TX_3", SND_SOC_NOPM,
18716 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018717 MSM_BACKEND_DAI_TERT_TDM_TX_3, 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_0", 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_0, 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("QUAT_TDM_TX_1", SND_SOC_NOPM,
18726 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018727 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
18731 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018732 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
18736 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018737 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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_0", 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_0, 1, 0,
18743 msm_routing_get_port_mixer,
18744 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018745 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18746 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018747 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18748 msm_routing_get_port_mixer,
18749 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018750 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18751 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018752 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18753 msm_routing_get_port_mixer,
18754 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018755 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18756 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018757 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18758 msm_routing_get_port_mixer,
18759 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018760 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18761 MSM_BACKEND_DAI_TERT_TDM_RX_0,
18762 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18763 msm_routing_get_port_mixer,
18764 msm_routing_put_port_mixer),
18765 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18766 MSM_BACKEND_DAI_TERT_TDM_RX_0,
18767 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18768 msm_routing_get_port_mixer,
18769 msm_routing_put_port_mixer),
18770 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18771 MSM_BACKEND_DAI_TERT_TDM_RX_0,
18772 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18773 msm_routing_get_port_mixer,
18774 msm_routing_put_port_mixer),
18775 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18776 MSM_BACKEND_DAI_TERT_TDM_RX_0,
18777 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18778 msm_routing_get_port_mixer,
18779 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018780};
18781
18782static const struct snd_kcontrol_new tert_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018783 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18784 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018785 MSM_BACKEND_DAI_PRI_MI2S_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("SEC_MI2S_TX", SND_SOC_NOPM,
18789 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018790 MSM_BACKEND_DAI_SECONDARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
18794 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018795 MSM_BACKEND_DAI_QUATERNARY_MI2S_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("INTERNAL_FM_TX", SND_SOC_NOPM,
18799 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018800 MSM_BACKEND_DAI_INT_FM_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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18804 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018805 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
18809 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018810 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
18814 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018815 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18819 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018820 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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_0", 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_0, 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("TERT_TDM_TX_1", SND_SOC_NOPM,
18829 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018830 MSM_BACKEND_DAI_TERT_TDM_TX_1, 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("TERT_TDM_TX_2", SND_SOC_NOPM,
18834 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018835 MSM_BACKEND_DAI_TERT_TDM_TX_2, 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("TERT_TDM_TX_3", SND_SOC_NOPM,
18839 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018840 MSM_BACKEND_DAI_TERT_TDM_TX_3, 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_0", 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_0, 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("QUAT_TDM_TX_1", SND_SOC_NOPM,
18849 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018850 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
18854 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018855 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
18859 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018860 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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_0", 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_0, 1, 0,
18866 msm_routing_get_port_mixer,
18867 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018868 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18869 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018870 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18871 msm_routing_get_port_mixer,
18872 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018873 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18874 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018875 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18876 msm_routing_get_port_mixer,
18877 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018878 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18879 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018880 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18881 msm_routing_get_port_mixer,
18882 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018883 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18884 MSM_BACKEND_DAI_TERT_TDM_RX_1,
18885 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18886 msm_routing_get_port_mixer,
18887 msm_routing_put_port_mixer),
18888 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18889 MSM_BACKEND_DAI_TERT_TDM_RX_1,
18890 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18891 msm_routing_get_port_mixer,
18892 msm_routing_put_port_mixer),
18893 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18894 MSM_BACKEND_DAI_TERT_TDM_RX_1,
18895 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18896 msm_routing_get_port_mixer,
18897 msm_routing_put_port_mixer),
18898 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18899 MSM_BACKEND_DAI_TERT_TDM_RX_1,
18900 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18901 msm_routing_get_port_mixer,
18902 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018903};
18904
18905static const struct snd_kcontrol_new tert_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018906 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18907 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018908 MSM_BACKEND_DAI_PRI_MI2S_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("SEC_MI2S_TX", SND_SOC_NOPM,
18912 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018913 MSM_BACKEND_DAI_SECONDARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
18917 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018918 MSM_BACKEND_DAI_QUATERNARY_MI2S_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("INTERNAL_FM_TX", SND_SOC_NOPM,
18922 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018923 MSM_BACKEND_DAI_INT_FM_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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18927 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018928 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
18932 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018933 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
18937 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018938 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18942 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018943 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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_0", 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_0, 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("TERT_TDM_TX_1", SND_SOC_NOPM,
18952 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018953 MSM_BACKEND_DAI_TERT_TDM_TX_1, 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("TERT_TDM_TX_2", SND_SOC_NOPM,
18957 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018958 MSM_BACKEND_DAI_TERT_TDM_TX_2, 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("TERT_TDM_TX_3", SND_SOC_NOPM,
18962 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018963 MSM_BACKEND_DAI_TERT_TDM_TX_3, 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_0", 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_0, 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("QUAT_TDM_TX_1", SND_SOC_NOPM,
18972 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018973 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
18977 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018978 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
18982 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018983 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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_0", 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_0, 1, 0,
18989 msm_routing_get_port_mixer,
18990 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018991 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18992 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018993 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18994 msm_routing_get_port_mixer,
18995 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018996 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18997 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018998 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18999 msm_routing_get_port_mixer,
19000 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019001 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19002 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019003 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19004 msm_routing_get_port_mixer,
19005 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019006 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19007 MSM_BACKEND_DAI_TERT_TDM_RX_2,
19008 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19009 msm_routing_get_port_mixer,
19010 msm_routing_put_port_mixer),
19011 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19012 MSM_BACKEND_DAI_TERT_TDM_RX_2,
19013 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19014 msm_routing_get_port_mixer,
19015 msm_routing_put_port_mixer),
19016 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19017 MSM_BACKEND_DAI_TERT_TDM_RX_2,
19018 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19019 msm_routing_get_port_mixer,
19020 msm_routing_put_port_mixer),
19021 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19022 MSM_BACKEND_DAI_TERT_TDM_RX_2,
19023 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19024 msm_routing_get_port_mixer,
19025 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019026};
19027
19028static const struct snd_kcontrol_new tert_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019029 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19030 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019031 MSM_BACKEND_DAI_PRI_MI2S_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("SEC_MI2S_TX", SND_SOC_NOPM,
19035 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019036 MSM_BACKEND_DAI_SECONDARY_MI2S_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("QUAT_MI2S_TX", SND_SOC_NOPM,
19040 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019041 MSM_BACKEND_DAI_QUATERNARY_MI2S_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("INTERNAL_FM_TX", SND_SOC_NOPM,
19045 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019046 MSM_BACKEND_DAI_INT_FM_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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19050 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019051 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
19055 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019056 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
19060 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019061 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19065 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019066 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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_0", 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_0, 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("TERT_TDM_TX_1", SND_SOC_NOPM,
19075 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019076 MSM_BACKEND_DAI_TERT_TDM_TX_1, 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("TERT_TDM_TX_2", SND_SOC_NOPM,
19080 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019081 MSM_BACKEND_DAI_TERT_TDM_TX_2, 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("TERT_TDM_TX_3", SND_SOC_NOPM,
19085 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019086 MSM_BACKEND_DAI_TERT_TDM_TX_3, 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_0", 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_0, 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("QUAT_TDM_TX_1", SND_SOC_NOPM,
19095 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019096 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
19100 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019101 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
19105 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019106 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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_0", 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_0, 1, 0,
19112 msm_routing_get_port_mixer,
19113 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019114 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19115 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019116 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19117 msm_routing_get_port_mixer,
19118 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019119 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19120 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019121 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19122 msm_routing_get_port_mixer,
19123 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019124 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19125 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019126 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19127 msm_routing_get_port_mixer,
19128 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019129 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19130 MSM_BACKEND_DAI_TERT_TDM_RX_3,
19131 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19132 msm_routing_get_port_mixer,
19133 msm_routing_put_port_mixer),
19134 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19135 MSM_BACKEND_DAI_TERT_TDM_RX_3,
19136 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19137 msm_routing_get_port_mixer,
19138 msm_routing_put_port_mixer),
19139 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19140 MSM_BACKEND_DAI_TERT_TDM_RX_3,
19141 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19142 msm_routing_get_port_mixer,
19143 msm_routing_put_port_mixer),
19144 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19145 MSM_BACKEND_DAI_TERT_TDM_RX_3,
19146 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19147 msm_routing_get_port_mixer,
19148 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019149};
19150
19151static const struct snd_kcontrol_new quat_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019152 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19153 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019154 MSM_BACKEND_DAI_PRI_MI2S_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("SEC_MI2S_TX", SND_SOC_NOPM,
19158 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019159 MSM_BACKEND_DAI_SECONDARY_MI2S_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("TERT_MI2S_TX", SND_SOC_NOPM,
19163 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019164 MSM_BACKEND_DAI_TERTIARY_MI2S_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("INTERNAL_FM_TX", SND_SOC_NOPM,
19168 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019169 MSM_BACKEND_DAI_INT_FM_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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19173 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019174 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
19178 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019179 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
19183 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019184 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19188 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019189 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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_0", 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_0, 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("TERT_TDM_TX_1", SND_SOC_NOPM,
19198 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019199 MSM_BACKEND_DAI_TERT_TDM_TX_1, 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("TERT_TDM_TX_2", SND_SOC_NOPM,
19203 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019204 MSM_BACKEND_DAI_TERT_TDM_TX_2, 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("TERT_TDM_TX_3", SND_SOC_NOPM,
19208 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019209 MSM_BACKEND_DAI_TERT_TDM_TX_3, 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_0", 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_0, 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("QUAT_TDM_TX_1", SND_SOC_NOPM,
19218 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019219 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
19223 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019224 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
19228 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019229 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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_0", 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_0, 1, 0,
19235 msm_routing_get_port_mixer,
19236 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019237 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19238 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019239 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19240 msm_routing_get_port_mixer,
19241 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019242 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19243 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019244 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19245 msm_routing_get_port_mixer,
19246 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019247 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19248 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019249 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19250 msm_routing_get_port_mixer,
19251 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019252 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19253 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
19254 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19255 msm_routing_get_port_mixer,
19256 msm_routing_put_port_mixer),
19257 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19258 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
19259 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19260 msm_routing_get_port_mixer,
19261 msm_routing_put_port_mixer),
19262 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19263 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
19264 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19265 msm_routing_get_port_mixer,
19266 msm_routing_put_port_mixer),
19267 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19268 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
19269 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19270 msm_routing_get_port_mixer,
19271 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019272};
19273
19274static const struct snd_kcontrol_new quat_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019275 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19276 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019277 MSM_BACKEND_DAI_PRI_MI2S_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("SEC_MI2S_TX", SND_SOC_NOPM,
19281 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019282 MSM_BACKEND_DAI_SECONDARY_MI2S_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("TERT_MI2S_TX", SND_SOC_NOPM,
19286 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019287 MSM_BACKEND_DAI_TERTIARY_MI2S_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("INTERNAL_FM_TX", SND_SOC_NOPM,
19291 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019292 MSM_BACKEND_DAI_INT_FM_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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19296 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019297 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
19301 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019302 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
19306 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019307 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19311 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019312 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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_0", 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_0, 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("TERT_TDM_TX_1", SND_SOC_NOPM,
19321 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019322 MSM_BACKEND_DAI_TERT_TDM_TX_1, 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("TERT_TDM_TX_2", SND_SOC_NOPM,
19326 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019327 MSM_BACKEND_DAI_TERT_TDM_TX_2, 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("TERT_TDM_TX_3", SND_SOC_NOPM,
19331 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019332 MSM_BACKEND_DAI_TERT_TDM_TX_3, 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_0", 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_0, 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("QUAT_TDM_TX_1", SND_SOC_NOPM,
19341 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019342 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
19346 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019347 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
19351 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019352 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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_0", 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_0, 1, 0,
19358 msm_routing_get_port_mixer,
19359 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019360 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19361 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019362 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19363 msm_routing_get_port_mixer,
19364 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019365 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19366 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019367 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19368 msm_routing_get_port_mixer,
19369 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019370 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19371 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019372 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19373 msm_routing_get_port_mixer,
19374 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019375 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19376 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
19377 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19378 msm_routing_get_port_mixer,
19379 msm_routing_put_port_mixer),
19380 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19381 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
19382 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19383 msm_routing_get_port_mixer,
19384 msm_routing_put_port_mixer),
19385 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19386 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
19387 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19388 msm_routing_get_port_mixer,
19389 msm_routing_put_port_mixer),
19390 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19391 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
19392 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19393 msm_routing_get_port_mixer,
19394 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019395};
19396
19397static const struct snd_kcontrol_new quat_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019398 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19399 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019400 MSM_BACKEND_DAI_PRI_MI2S_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("SEC_MI2S_TX", SND_SOC_NOPM,
19404 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019405 MSM_BACKEND_DAI_SECONDARY_MI2S_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("TERT_MI2S_TX", SND_SOC_NOPM,
19409 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019410 MSM_BACKEND_DAI_TERTIARY_MI2S_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("INTERNAL_FM_TX", SND_SOC_NOPM,
19414 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019415 MSM_BACKEND_DAI_INT_FM_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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19419 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019420 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
19424 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019425 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
19429 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019430 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19434 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019435 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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_0", 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_0, 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("TERT_TDM_TX_1", SND_SOC_NOPM,
19444 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019445 MSM_BACKEND_DAI_TERT_TDM_TX_1, 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("TERT_TDM_TX_2", SND_SOC_NOPM,
19449 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019450 MSM_BACKEND_DAI_TERT_TDM_TX_2, 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("TERT_TDM_TX_3", SND_SOC_NOPM,
19454 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019455 MSM_BACKEND_DAI_TERT_TDM_TX_3, 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_0", 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_0, 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("QUAT_TDM_TX_1", SND_SOC_NOPM,
19464 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019465 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
19469 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019470 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
19474 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019475 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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_0", 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_0, 1, 0,
19481 msm_routing_get_port_mixer,
19482 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019483 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19484 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019485 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19486 msm_routing_get_port_mixer,
19487 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019488 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19489 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019490 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19491 msm_routing_get_port_mixer,
19492 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019493 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19494 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019495 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19496 msm_routing_get_port_mixer,
19497 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019498 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19499 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
19500 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19501 msm_routing_get_port_mixer,
19502 msm_routing_put_port_mixer),
19503 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19504 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
19505 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19506 msm_routing_get_port_mixer,
19507 msm_routing_put_port_mixer),
19508 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19509 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
19510 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19511 msm_routing_get_port_mixer,
19512 msm_routing_put_port_mixer),
19513 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19514 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
19515 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19516 msm_routing_get_port_mixer,
19517 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019518};
19519
19520static const struct snd_kcontrol_new quat_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019521 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19522 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019523 MSM_BACKEND_DAI_PRI_MI2S_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("SEC_MI2S_TX", SND_SOC_NOPM,
19527 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019528 MSM_BACKEND_DAI_SECONDARY_MI2S_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("TERT_MI2S_TX", SND_SOC_NOPM,
19532 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019533 MSM_BACKEND_DAI_TERTIARY_MI2S_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("INTERNAL_FM_TX", SND_SOC_NOPM,
19537 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019538 MSM_BACKEND_DAI_INT_FM_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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19542 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019543 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
19547 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019548 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
19552 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019553 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19557 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019558 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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_0", 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_0, 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("TERT_TDM_TX_1", SND_SOC_NOPM,
19567 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019568 MSM_BACKEND_DAI_TERT_TDM_TX_1, 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("TERT_TDM_TX_2", SND_SOC_NOPM,
19572 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019573 MSM_BACKEND_DAI_TERT_TDM_TX_2, 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("TERT_TDM_TX_3", SND_SOC_NOPM,
19577 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019578 MSM_BACKEND_DAI_TERT_TDM_TX_3, 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_0", 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_0, 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("QUAT_TDM_TX_1", SND_SOC_NOPM,
19587 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019588 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
19592 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019593 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
19597 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019598 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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_0", 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_0, 1, 0,
19604 msm_routing_get_port_mixer,
19605 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019606 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19607 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019608 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19609 msm_routing_get_port_mixer,
19610 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019611 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19612 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019613 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19614 msm_routing_get_port_mixer,
19615 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019616 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19617 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019618 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19619 msm_routing_get_port_mixer,
19620 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019621 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19622 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
19623 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19624 msm_routing_get_port_mixer,
19625 msm_routing_put_port_mixer),
19626 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19627 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
19628 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19629 msm_routing_get_port_mixer,
19630 msm_routing_put_port_mixer),
19631 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19632 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
19633 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19634 msm_routing_get_port_mixer,
19635 msm_routing_put_port_mixer),
19636 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19637 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
19638 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19639 msm_routing_get_port_mixer,
19640 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053019641};
19642
Derek Chenb9048cb2019-03-07 14:54:13 -050019643static const struct snd_kcontrol_new quat_tdm_rx_7_port_mixer_controls[] = {
19644 SOC_DOUBLE_EXT("QUAT_TDM_TX_7", SND_SOC_NOPM,
19645 MSM_BACKEND_DAI_QUAT_TDM_RX_7,
19646 MSM_BACKEND_DAI_QUAT_TDM_TX_7, 1, 0,
19647 msm_routing_get_port_mixer,
19648 msm_routing_put_port_mixer),
Derek Chen728c5cc2019-06-26 14:21:52 -070019649 SOC_DOUBLE_EXT("QUIN_TDM_TX_7", SND_SOC_NOPM,
19650 MSM_BACKEND_DAI_QUAT_TDM_RX_7,
19651 MSM_BACKEND_DAI_QUIN_TDM_TX_7, 1, 0,
19652 msm_routing_get_port_mixer,
19653 msm_routing_put_port_mixer),
Derek Chenb9048cb2019-03-07 14:54:13 -050019654};
19655
Rohit Kumara5077932017-09-10 22:05:05 +053019656static const struct snd_kcontrol_new quin_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019657 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19658 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019659 MSM_BACKEND_DAI_PRI_MI2S_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("SEC_MI2S_TX", SND_SOC_NOPM,
19663 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019664 MSM_BACKEND_DAI_SECONDARY_MI2S_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("TERT_MI2S_TX", SND_SOC_NOPM,
19668 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019669 MSM_BACKEND_DAI_TERTIARY_MI2S_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("INTERNAL_FM_TX", SND_SOC_NOPM,
19673 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019674 MSM_BACKEND_DAI_INT_FM_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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19678 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019679 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
19683 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019684 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
19688 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019689 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19693 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019694 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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_0", 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_0, 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("TERT_TDM_TX_1", SND_SOC_NOPM,
19703 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019704 MSM_BACKEND_DAI_TERT_TDM_TX_1, 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("TERT_TDM_TX_2", SND_SOC_NOPM,
19708 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019709 MSM_BACKEND_DAI_TERT_TDM_TX_2, 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("TERT_TDM_TX_3", SND_SOC_NOPM,
19713 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019714 MSM_BACKEND_DAI_TERT_TDM_TX_3, 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_0", 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_0, 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("QUAT_TDM_TX_1", SND_SOC_NOPM,
19723 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019724 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
19728 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019729 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
19733 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019734 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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_0", 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_0, 1, 0,
19740 msm_routing_get_port_mixer,
19741 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019742 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19743 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019744 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19745 msm_routing_get_port_mixer,
19746 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019747 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19748 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019749 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19750 msm_routing_get_port_mixer,
19751 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019752 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19753 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019754 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19755 msm_routing_get_port_mixer,
19756 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019757 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19758 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
19759 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19760 msm_routing_get_port_mixer,
19761 msm_routing_put_port_mixer),
19762 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19763 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
19764 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19765 msm_routing_get_port_mixer,
19766 msm_routing_put_port_mixer),
19767 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19768 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
19769 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19770 msm_routing_get_port_mixer,
19771 msm_routing_put_port_mixer),
19772 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19773 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
19774 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19775 msm_routing_get_port_mixer,
19776 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053019777};
19778
19779static const struct snd_kcontrol_new quin_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019780 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19781 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019782 MSM_BACKEND_DAI_PRI_MI2S_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("SEC_MI2S_TX", SND_SOC_NOPM,
19786 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019787 MSM_BACKEND_DAI_SECONDARY_MI2S_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("TERT_MI2S_TX", SND_SOC_NOPM,
19791 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019792 MSM_BACKEND_DAI_TERTIARY_MI2S_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("INTERNAL_FM_TX", SND_SOC_NOPM,
19796 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019797 MSM_BACKEND_DAI_INT_FM_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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19801 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019802 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
19806 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019807 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
19811 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019812 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19816 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019817 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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_0", 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_0, 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("TERT_TDM_TX_1", SND_SOC_NOPM,
19826 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019827 MSM_BACKEND_DAI_TERT_TDM_TX_1, 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("TERT_TDM_TX_2", SND_SOC_NOPM,
19831 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019832 MSM_BACKEND_DAI_TERT_TDM_TX_2, 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("TERT_TDM_TX_3", SND_SOC_NOPM,
19836 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019837 MSM_BACKEND_DAI_TERT_TDM_TX_3, 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_0", 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_0, 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("QUAT_TDM_TX_1", SND_SOC_NOPM,
19846 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019847 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
19851 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019852 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
19856 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019857 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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_0", 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_0, 1, 0,
19863 msm_routing_get_port_mixer,
19864 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019865 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19866 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019867 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19868 msm_routing_get_port_mixer,
19869 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019870 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19871 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019872 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19873 msm_routing_get_port_mixer,
19874 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019875 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19876 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019877 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19878 msm_routing_get_port_mixer,
19879 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019880 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19881 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
19882 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19883 msm_routing_get_port_mixer,
19884 msm_routing_put_port_mixer),
19885 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19886 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
19887 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19888 msm_routing_get_port_mixer,
19889 msm_routing_put_port_mixer),
19890 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19891 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
19892 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19893 msm_routing_get_port_mixer,
19894 msm_routing_put_port_mixer),
19895 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19896 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
19897 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19898 msm_routing_get_port_mixer,
19899 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053019900};
19901
19902static const struct snd_kcontrol_new quin_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019903 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19904 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019905 MSM_BACKEND_DAI_PRI_MI2S_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("SEC_MI2S_TX", SND_SOC_NOPM,
19909 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019910 MSM_BACKEND_DAI_SECONDARY_MI2S_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("TERT_MI2S_TX", SND_SOC_NOPM,
19914 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019915 MSM_BACKEND_DAI_TERTIARY_MI2S_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("INTERNAL_FM_TX", SND_SOC_NOPM,
19919 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019920 MSM_BACKEND_DAI_INT_FM_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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19924 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019925 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
19929 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019930 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
19934 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019935 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19939 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019940 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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_0", 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_0, 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("TERT_TDM_TX_1", SND_SOC_NOPM,
19949 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019950 MSM_BACKEND_DAI_TERT_TDM_TX_1, 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("TERT_TDM_TX_2", SND_SOC_NOPM,
19954 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019955 MSM_BACKEND_DAI_TERT_TDM_TX_2, 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("TERT_TDM_TX_3", SND_SOC_NOPM,
19959 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019960 MSM_BACKEND_DAI_TERT_TDM_TX_3, 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_0", 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_0, 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("QUAT_TDM_TX_1", SND_SOC_NOPM,
19969 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019970 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
19974 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019975 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
19979 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019980 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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_0", 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_0, 1, 0,
19986 msm_routing_get_port_mixer,
19987 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019988 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19989 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019990 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19991 msm_routing_get_port_mixer,
19992 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019993 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19994 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019995 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19996 msm_routing_get_port_mixer,
19997 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019998 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19999 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020000 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20001 msm_routing_get_port_mixer,
20002 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070020003 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20004 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
20005 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20006 msm_routing_get_port_mixer,
20007 msm_routing_put_port_mixer),
20008 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20009 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
20010 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20011 msm_routing_get_port_mixer,
20012 msm_routing_put_port_mixer),
20013 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20014 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
20015 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20016 msm_routing_get_port_mixer,
20017 msm_routing_put_port_mixer),
20018 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20019 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
20020 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20021 msm_routing_get_port_mixer,
20022 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053020023};
20024
20025static const struct snd_kcontrol_new quin_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020026 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20027 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020028 MSM_BACKEND_DAI_PRI_MI2S_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("SEC_MI2S_TX", SND_SOC_NOPM,
20032 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020033 MSM_BACKEND_DAI_SECONDARY_MI2S_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("TERT_MI2S_TX", SND_SOC_NOPM,
20037 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020038 MSM_BACKEND_DAI_TERTIARY_MI2S_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("INTERNAL_FM_TX", SND_SOC_NOPM,
20042 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020043 MSM_BACKEND_DAI_INT_FM_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("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20047 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020048 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX", SND_SOC_NOPM,
20052 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020053 MSM_BACKEND_DAI_AFE_PCM_TX, 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("AUX_PCM_UL_TX", SND_SOC_NOPM,
20057 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020058 MSM_BACKEND_DAI_AUXPCM_TX, 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("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20062 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020063 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 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_0", 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_0, 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("TERT_TDM_TX_1", SND_SOC_NOPM,
20072 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020073 MSM_BACKEND_DAI_TERT_TDM_TX_1, 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("TERT_TDM_TX_2", SND_SOC_NOPM,
20077 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020078 MSM_BACKEND_DAI_TERT_TDM_TX_2, 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("TERT_TDM_TX_3", SND_SOC_NOPM,
20082 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020083 MSM_BACKEND_DAI_TERT_TDM_TX_3, 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_0", 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_0, 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("QUAT_TDM_TX_1", SND_SOC_NOPM,
20092 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020093 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 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("QUAT_TDM_TX_2", SND_SOC_NOPM,
20097 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020098 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 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("QUAT_TDM_TX_3", SND_SOC_NOPM,
20102 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020103 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 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_0", 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_0, 1, 0,
20109 msm_routing_get_port_mixer,
20110 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020111 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20112 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020113 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20114 msm_routing_get_port_mixer,
20115 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020116 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20117 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020118 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20119 msm_routing_get_port_mixer,
20120 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020121 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20122 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020123 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20124 msm_routing_get_port_mixer,
20125 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070020126 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20127 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
20128 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20129 msm_routing_get_port_mixer,
20130 msm_routing_put_port_mixer),
20131 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20132 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
20133 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20134 msm_routing_get_port_mixer,
20135 msm_routing_put_port_mixer),
20136 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20137 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
20138 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20139 msm_routing_get_port_mixer,
20140 msm_routing_put_port_mixer),
20141 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20142 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
20143 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20144 msm_routing_get_port_mixer,
20145 msm_routing_put_port_mixer),
20146};
20147
20148static const struct snd_kcontrol_new sen_tdm_rx_0_port_mixer_controls[] = {
20149 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20150 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20151 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20152 msm_routing_get_port_mixer,
20153 msm_routing_put_port_mixer),
20154 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20155 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20156 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20157 msm_routing_get_port_mixer,
20158 msm_routing_put_port_mixer),
20159 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20160 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20161 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20162 msm_routing_get_port_mixer,
20163 msm_routing_put_port_mixer),
20164 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20165 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20166 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20167 msm_routing_get_port_mixer,
20168 msm_routing_put_port_mixer),
20169 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20170 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20171 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20172 msm_routing_get_port_mixer,
20173 msm_routing_put_port_mixer),
20174 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20175 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20176 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20177 msm_routing_get_port_mixer,
20178 msm_routing_put_port_mixer),
20179 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20180 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20181 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20182 msm_routing_get_port_mixer,
20183 msm_routing_put_port_mixer),
20184 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20185 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20186 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20187 msm_routing_get_port_mixer,
20188 msm_routing_put_port_mixer),
20189 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20190 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20191 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20192 msm_routing_get_port_mixer,
20193 msm_routing_put_port_mixer),
20194 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20195 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20196 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20197 msm_routing_get_port_mixer,
20198 msm_routing_put_port_mixer),
20199 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20200 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20201 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20202 msm_routing_get_port_mixer,
20203 msm_routing_put_port_mixer),
20204 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20205 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20206 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20207 msm_routing_get_port_mixer,
20208 msm_routing_put_port_mixer),
20209 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20210 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20211 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20212 msm_routing_get_port_mixer,
20213 msm_routing_put_port_mixer),
20214 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20215 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20216 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20217 msm_routing_get_port_mixer,
20218 msm_routing_put_port_mixer),
20219 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20220 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20221 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20222 msm_routing_get_port_mixer,
20223 msm_routing_put_port_mixer),
20224 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20225 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20226 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20227 msm_routing_get_port_mixer,
20228 msm_routing_put_port_mixer),
20229 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20230 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20231 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20232 msm_routing_get_port_mixer,
20233 msm_routing_put_port_mixer),
20234 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20235 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20236 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20237 msm_routing_get_port_mixer,
20238 msm_routing_put_port_mixer),
20239 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20240 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20241 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20242 msm_routing_get_port_mixer,
20243 msm_routing_put_port_mixer),
20244 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20245 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20246 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20247 msm_routing_get_port_mixer,
20248 msm_routing_put_port_mixer),
20249 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20250 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20251 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20252 msm_routing_get_port_mixer,
20253 msm_routing_put_port_mixer),
20254 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20255 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20256 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20257 msm_routing_get_port_mixer,
20258 msm_routing_put_port_mixer),
20259 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20260 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20261 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20262 msm_routing_get_port_mixer,
20263 msm_routing_put_port_mixer),
20264 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20265 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20266 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20267 msm_routing_get_port_mixer,
20268 msm_routing_put_port_mixer),
20269};
20270
20271static const struct snd_kcontrol_new sen_tdm_rx_1_port_mixer_controls[] = {
20272 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20273 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20274 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20275 msm_routing_get_port_mixer,
20276 msm_routing_put_port_mixer),
20277 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20278 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20279 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20280 msm_routing_get_port_mixer,
20281 msm_routing_put_port_mixer),
20282 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20283 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20284 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20285 msm_routing_get_port_mixer,
20286 msm_routing_put_port_mixer),
20287 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20288 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20289 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20290 msm_routing_get_port_mixer,
20291 msm_routing_put_port_mixer),
20292 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20293 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20294 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20295 msm_routing_get_port_mixer,
20296 msm_routing_put_port_mixer),
20297 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20298 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20299 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20300 msm_routing_get_port_mixer,
20301 msm_routing_put_port_mixer),
20302 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20303 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20304 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20305 msm_routing_get_port_mixer,
20306 msm_routing_put_port_mixer),
20307 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20308 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20309 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20310 msm_routing_get_port_mixer,
20311 msm_routing_put_port_mixer),
20312 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20313 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20314 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20315 msm_routing_get_port_mixer,
20316 msm_routing_put_port_mixer),
20317 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20318 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20319 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20320 msm_routing_get_port_mixer,
20321 msm_routing_put_port_mixer),
20322 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20323 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20324 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20325 msm_routing_get_port_mixer,
20326 msm_routing_put_port_mixer),
20327 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20328 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20329 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20330 msm_routing_get_port_mixer,
20331 msm_routing_put_port_mixer),
20332 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20333 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20334 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20335 msm_routing_get_port_mixer,
20336 msm_routing_put_port_mixer),
20337 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20338 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20339 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20340 msm_routing_get_port_mixer,
20341 msm_routing_put_port_mixer),
20342 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20343 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20344 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20345 msm_routing_get_port_mixer,
20346 msm_routing_put_port_mixer),
20347 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20348 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20349 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20350 msm_routing_get_port_mixer,
20351 msm_routing_put_port_mixer),
20352 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20353 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20354 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20355 msm_routing_get_port_mixer,
20356 msm_routing_put_port_mixer),
20357 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20358 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20359 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20360 msm_routing_get_port_mixer,
20361 msm_routing_put_port_mixer),
20362 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20363 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20364 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20365 msm_routing_get_port_mixer,
20366 msm_routing_put_port_mixer),
20367 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20368 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20369 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20370 msm_routing_get_port_mixer,
20371 msm_routing_put_port_mixer),
20372 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20373 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20374 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20375 msm_routing_get_port_mixer,
20376 msm_routing_put_port_mixer),
20377 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20378 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20379 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20380 msm_routing_get_port_mixer,
20381 msm_routing_put_port_mixer),
20382 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20383 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20384 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20385 msm_routing_get_port_mixer,
20386 msm_routing_put_port_mixer),
20387 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20388 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20389 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20390 msm_routing_get_port_mixer,
20391 msm_routing_put_port_mixer),
20392};
20393
20394static const struct snd_kcontrol_new sen_tdm_rx_2_port_mixer_controls[] = {
20395 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20396 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20397 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20398 msm_routing_get_port_mixer,
20399 msm_routing_put_port_mixer),
20400 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20401 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20402 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20403 msm_routing_get_port_mixer,
20404 msm_routing_put_port_mixer),
20405 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20406 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20407 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20408 msm_routing_get_port_mixer,
20409 msm_routing_put_port_mixer),
20410 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20411 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20412 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20413 msm_routing_get_port_mixer,
20414 msm_routing_put_port_mixer),
20415 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20416 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20417 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20418 msm_routing_get_port_mixer,
20419 msm_routing_put_port_mixer),
20420 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20421 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20422 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20423 msm_routing_get_port_mixer,
20424 msm_routing_put_port_mixer),
20425 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20426 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20427 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20428 msm_routing_get_port_mixer,
20429 msm_routing_put_port_mixer),
20430 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20431 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20432 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20433 msm_routing_get_port_mixer,
20434 msm_routing_put_port_mixer),
20435 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20436 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20437 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20438 msm_routing_get_port_mixer,
20439 msm_routing_put_port_mixer),
20440 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20441 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20442 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20443 msm_routing_get_port_mixer,
20444 msm_routing_put_port_mixer),
20445 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20446 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20447 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20448 msm_routing_get_port_mixer,
20449 msm_routing_put_port_mixer),
20450 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20451 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20452 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20453 msm_routing_get_port_mixer,
20454 msm_routing_put_port_mixer),
20455 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20456 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20457 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20458 msm_routing_get_port_mixer,
20459 msm_routing_put_port_mixer),
20460 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20461 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20462 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20463 msm_routing_get_port_mixer,
20464 msm_routing_put_port_mixer),
20465 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20466 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20467 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20468 msm_routing_get_port_mixer,
20469 msm_routing_put_port_mixer),
20470 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20471 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20472 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20473 msm_routing_get_port_mixer,
20474 msm_routing_put_port_mixer),
20475 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20476 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20477 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20478 msm_routing_get_port_mixer,
20479 msm_routing_put_port_mixer),
20480 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20481 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20482 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20483 msm_routing_get_port_mixer,
20484 msm_routing_put_port_mixer),
20485 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20486 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20487 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20488 msm_routing_get_port_mixer,
20489 msm_routing_put_port_mixer),
20490 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20491 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20492 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20493 msm_routing_get_port_mixer,
20494 msm_routing_put_port_mixer),
20495 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20496 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20497 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20498 msm_routing_get_port_mixer,
20499 msm_routing_put_port_mixer),
20500 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20501 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20502 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20503 msm_routing_get_port_mixer,
20504 msm_routing_put_port_mixer),
20505 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20506 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20507 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20508 msm_routing_get_port_mixer,
20509 msm_routing_put_port_mixer),
20510 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20511 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20512 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20513 msm_routing_get_port_mixer,
20514 msm_routing_put_port_mixer),
20515};
20516
20517static const struct snd_kcontrol_new sen_tdm_rx_3_port_mixer_controls[] = {
20518 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20519 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20520 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20521 msm_routing_get_port_mixer,
20522 msm_routing_put_port_mixer),
20523 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20524 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20525 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20526 msm_routing_get_port_mixer,
20527 msm_routing_put_port_mixer),
20528 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20529 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20530 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20531 msm_routing_get_port_mixer,
20532 msm_routing_put_port_mixer),
20533 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20534 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20535 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20536 msm_routing_get_port_mixer,
20537 msm_routing_put_port_mixer),
20538 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20539 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20540 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20541 msm_routing_get_port_mixer,
20542 msm_routing_put_port_mixer),
20543 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20544 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20545 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20546 msm_routing_get_port_mixer,
20547 msm_routing_put_port_mixer),
20548 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20549 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20550 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20551 msm_routing_get_port_mixer,
20552 msm_routing_put_port_mixer),
20553 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20554 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20555 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20556 msm_routing_get_port_mixer,
20557 msm_routing_put_port_mixer),
20558 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20559 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20560 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20561 msm_routing_get_port_mixer,
20562 msm_routing_put_port_mixer),
20563 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20564 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20565 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20566 msm_routing_get_port_mixer,
20567 msm_routing_put_port_mixer),
20568 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20569 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20570 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20571 msm_routing_get_port_mixer,
20572 msm_routing_put_port_mixer),
20573 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20574 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20575 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20576 msm_routing_get_port_mixer,
20577 msm_routing_put_port_mixer),
20578 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20579 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20580 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20581 msm_routing_get_port_mixer,
20582 msm_routing_put_port_mixer),
20583 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20584 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20585 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20586 msm_routing_get_port_mixer,
20587 msm_routing_put_port_mixer),
20588 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20589 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20590 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20591 msm_routing_get_port_mixer,
20592 msm_routing_put_port_mixer),
20593 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20594 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20595 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20596 msm_routing_get_port_mixer,
20597 msm_routing_put_port_mixer),
20598 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20599 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20600 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20601 msm_routing_get_port_mixer,
20602 msm_routing_put_port_mixer),
20603 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20604 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20605 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20606 msm_routing_get_port_mixer,
20607 msm_routing_put_port_mixer),
20608 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20609 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20610 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20611 msm_routing_get_port_mixer,
20612 msm_routing_put_port_mixer),
20613 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20614 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20615 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20616 msm_routing_get_port_mixer,
20617 msm_routing_put_port_mixer),
20618 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20619 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20620 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20621 msm_routing_get_port_mixer,
20622 msm_routing_put_port_mixer),
20623 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20624 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20625 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20626 msm_routing_get_port_mixer,
20627 msm_routing_put_port_mixer),
20628 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20629 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20630 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20631 msm_routing_get_port_mixer,
20632 msm_routing_put_port_mixer),
20633 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20634 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20635 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20636 msm_routing_get_port_mixer,
20637 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020638};
20639
Han Lu7b6c5882019-06-09 16:03:21 +080020640static const struct snd_kcontrol_new quin_tdm_rx_7_port_mixer_controls[] = {
Derek Chen728c5cc2019-06-26 14:21:52 -070020641 SOC_DOUBLE_EXT("TERT_TDM_TX_7", SND_SOC_NOPM,
20642 MSM_BACKEND_DAI_QUIN_TDM_RX_7,
20643 MSM_BACKEND_DAI_TERT_TDM_TX_7, 1, 0,
20644 msm_routing_get_port_mixer,
20645 msm_routing_put_port_mixer),
20646 SOC_DOUBLE_EXT("QUAT_TDM_TX_7", SND_SOC_NOPM,
20647 MSM_BACKEND_DAI_QUIN_TDM_RX_7,
20648 MSM_BACKEND_DAI_QUAT_TDM_TX_7, 1, 0,
20649 msm_routing_get_port_mixer,
20650 msm_routing_put_port_mixer),
Han Lu7b6c5882019-06-09 16:03:21 +080020651 SOC_DOUBLE_EXT("QUIN_TDM_TX_7", SND_SOC_NOPM,
20652 MSM_BACKEND_DAI_QUIN_TDM_RX_7,
20653 MSM_BACKEND_DAI_QUIN_TDM_TX_7, 1, 0,
20654 msm_routing_get_port_mixer,
20655 msm_routing_put_port_mixer),
20656};
20657
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020658static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020659 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20660 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020661 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20662 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020663 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20664 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020665 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20666 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020667 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
20668 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020669 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
20670 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020671 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20672 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020673 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20674 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020675 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
20676 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053020677 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20678 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070020679 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
20680 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
20681 MSM_BACKEND_DAI_SENARY_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_TERTIARY_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("SLIM_8_TX", SND_SOC_NOPM,
20688 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020689 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
20690 msm_routing_put_port_mixer),
20691};
20692
20693static const struct snd_kcontrol_new sec_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020694 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20695 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020696 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20697 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020698 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20699 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020700 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20701 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020702 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20703 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020704 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20705 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020706 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20707 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020708 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20709 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020710 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
20711 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053020712 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20713 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070020714 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
20715 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
20716 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20717 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020718 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
20719 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020720 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
20721 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020722 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20723 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020724 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
20725 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020726 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
20727 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020728 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
20729 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020730 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20731 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080020732 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
20733 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020734};
20735
20736static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020737 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20738 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020739 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20740 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020741 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
20742 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020743 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20744 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020745 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
20746 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020747 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20748 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020749 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
20750 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020751 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20752 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020753 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
20754 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020755 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20756 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020757 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20758 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020759 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20760 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020761 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20762 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020763 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20764 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020765 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
20766 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020767 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20768 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053020769 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
20770 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
20771 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20772 msm_routing_put_listen_mixer),
20773 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
20774 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
20775 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20776 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080020777 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
20778 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
20779 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20780 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053020781 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
20782 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
20783 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20784 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020785 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20786 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
20787 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20788 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020789};
20790
20791static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020792 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20793 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020794 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20795 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020796 SOC_DOUBLE_EXT("SLIMBUS_1_TX",
20797 SND_SOC_NOPM,
20798 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020799 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20800 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020801 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
20802 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020803 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20804 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020805 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
20806 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020807 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20808 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020809 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
20810 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020811 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20812 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020813 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20814 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020815 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20816 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020817 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20818 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020819 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20820 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020821 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
20822 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020823 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20824 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053020825 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
20826 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
20827 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20828 msm_routing_put_listen_mixer),
20829 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
20830 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
20831 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20832 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080020833 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
20834 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
20835 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20836 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053020837 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
20838 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
20839 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20840 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020841 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20842 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
20843 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
20844 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020845};
20846
20847static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020848 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20849 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020850 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20851 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020852 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
20853 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020854 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20855 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020856 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
20857 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020858 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20859 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020860 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
20861 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020862 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20863 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020864 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
20865 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020866 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20867 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020868 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20869 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020870 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20871 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020872 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20873 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020874 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20875 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020876 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
20877 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020878 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20879 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053020880 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
20881 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
20882 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20883 msm_routing_put_listen_mixer),
20884 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
20885 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
20886 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20887 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080020888 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
20889 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
20890 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20891 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053020892 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
20893 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
20894 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20895 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020896 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20897 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
20898 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
20899 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020900};
20901
20902static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020903 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20904 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020905 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20906 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020907 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
20908 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020909 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20910 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020911 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
20912 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020913 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20914 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020915 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
20916 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020917 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20918 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020919 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
20920 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020921 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20922 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020923 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20924 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020925 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20926 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020927 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20928 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020929 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20930 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020931 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
20932 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020933 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20934 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053020935 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
20936 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
20937 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20938 msm_routing_put_listen_mixer),
20939 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
20940 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
20941 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20942 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080020943 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
20944 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
20945 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20946 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053020947 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
20948 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
20949 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20950 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053020951 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20952 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
20953 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
20954 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020955};
20956
20957static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020958 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20959 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020960 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20961 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020962 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
20963 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020964 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20965 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020966 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
20967 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020968 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20969 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020970 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
20971 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020972 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20973 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020974 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
20975 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020976 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20977 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020978 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20979 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020980 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20981 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020982 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20983 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020984 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20985 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020986 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
20987 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020988 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20989 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053020990 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
20991 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
20992 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20993 msm_routing_put_listen_mixer),
20994 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
20995 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
20996 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
20997 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080020998 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
20999 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21000 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21001 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021002 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21003 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21004 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21005 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021006 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21007 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21008 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21009 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021010};
21011
21012static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021013 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21014 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021015 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21016 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021017 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21018 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021019 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21020 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021021 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
21022 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021023 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21024 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021025 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
21026 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021027 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21028 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021029 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
21030 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021031 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21032 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021033 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
21034 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021035 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21036 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021037 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
21038 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021039 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21040 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021041 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
21042 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021043 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21044 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021045 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21046 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21047 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21048 msm_routing_put_listen_mixer),
21049 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21050 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21051 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21052 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021053 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21054 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21055 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21056 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021057 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21058 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21059 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21060 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021061 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21062 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21063 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21064 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021065};
21066
21067static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021068 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21069 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021070 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21071 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021072 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21073 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021074 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21075 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021076 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
21077 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021078 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21079 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021080 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
21081 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021082 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21083 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021084 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
21085 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021086 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21087 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021088 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
21089 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021090 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21091 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021092 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
21093 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021094 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21095 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021096 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
21097 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021098 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21099 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021100 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21101 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21102 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21103 msm_routing_put_listen_mixer),
21104 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21105 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21106 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21107 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021108 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21109 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21110 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21111 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021112 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21113 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21114 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21115 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021116 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21117 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21118 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21119 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021120};
21121
21122static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021123 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21124 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021125 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21126 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021127 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21128 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021129 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21130 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021131 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
21132 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021133 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21134 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021135 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
21136 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021137 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21138 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021139 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
21140 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021141 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21142 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021143 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
21144 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021145 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21146 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021147 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
21148 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021149 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21150 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021151 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
21152 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021153 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21154 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021155 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21156 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21157 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21158 msm_routing_put_listen_mixer),
21159 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21160 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21161 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21162 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021163 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21164 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21165 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21166 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021167 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21168 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21169 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21170 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021171 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21172 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21173 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21174 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021175};
21176
21177static const struct snd_kcontrol_new slim_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
21182static const struct snd_kcontrol_new slim1_fm_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 slim3_fm_switch_mixer_controls =
21188 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21189 0, 1, 0, msm_routing_get_switch_mixer,
21190 msm_routing_put_switch_mixer);
21191
21192static const struct snd_kcontrol_new slim4_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
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053021197static const struct snd_kcontrol_new cdc_dma_wsa_switch_mixer_controls =
21198 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21199 0, 1, 0, msm_routing_get_switch_mixer,
21200 msm_routing_put_switch_mixer);
21201
21202static const struct snd_kcontrol_new cdc_dma_rx_switch_mixer_controls =
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053021203 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21204 0, 1, 0, msm_routing_get_switch_mixer,
21205 msm_routing_put_switch_mixer);
21206
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021207static const struct snd_kcontrol_new slim6_fm_switch_mixer_controls =
21208 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21209 0, 1, 0, msm_routing_get_switch_mixer,
21210 msm_routing_put_switch_mixer);
21211
21212static const struct snd_kcontrol_new pcm_rx_switch_mixer_controls =
21213 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21214 0, 1, 0, msm_routing_get_fm_pcmrx_switch_mixer,
21215 msm_routing_put_fm_pcmrx_switch_mixer);
21216
21217static const struct snd_kcontrol_new int0_mi2s_rx_switch_mixer_controls =
21218 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21219 0, 1, 0, msm_routing_get_int0_mi2s_switch_mixer,
21220 msm_routing_put_int0_mi2s_switch_mixer);
21221
21222static const struct snd_kcontrol_new int4_mi2s_rx_switch_mixer_controls =
21223 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21224 0, 1, 0, msm_routing_get_int4_mi2s_switch_mixer,
21225 msm_routing_put_int4_mi2s_switch_mixer);
21226
21227static const struct snd_kcontrol_new pri_mi2s_rx_switch_mixer_controls =
21228 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21229 0, 1, 0, msm_routing_get_pri_mi2s_switch_mixer,
21230 msm_routing_put_pri_mi2s_switch_mixer);
21231
21232static const struct snd_kcontrol_new sec_mi2s_rx_switch_mixer_controls =
21233 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21234 0, 1, 0, msm_routing_get_sec_mi2s_switch_mixer,
21235 msm_routing_put_sec_mi2s_switch_mixer);
21236
21237static const struct snd_kcontrol_new tert_mi2s_rx_switch_mixer_controls =
21238 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21239 0, 1, 0, msm_routing_get_tert_mi2s_switch_mixer,
21240 msm_routing_put_tert_mi2s_switch_mixer);
21241
21242static const struct snd_kcontrol_new quat_mi2s_rx_switch_mixer_controls =
21243 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21244 0, 1, 0, msm_routing_get_quat_mi2s_switch_mixer,
21245 msm_routing_put_quat_mi2s_switch_mixer);
21246
Rohit Kumara5077932017-09-10 22:05:05 +053021247static const struct snd_kcontrol_new quin_mi2s_rx_switch_mixer_controls =
21248 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21249 0, 1, 0, msm_routing_get_quin_mi2s_switch_mixer,
21250 msm_routing_put_quin_mi2s_switch_mixer);
21251
Karthikeyan Manic3700752019-03-11 18:33:53 -070021252static const struct snd_kcontrol_new sen_mi2s_rx_switch_mixer_controls =
21253 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21254 0, 1, 0, msm_routing_get_sen_mi2s_switch_mixer,
21255 msm_routing_put_sen_mi2s_switch_mixer);
21256
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021257static const struct snd_kcontrol_new hfp_pri_aux_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 hfp_aux_switch_mixer_controls =
21263 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21264 0, 1, 0, msm_routing_get_hfp_switch_mixer,
21265 msm_routing_put_hfp_switch_mixer);
21266
21267static const struct snd_kcontrol_new hfp_int_switch_mixer_controls =
21268 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21269 0, 1, 0, msm_routing_get_hfp_switch_mixer,
21270 msm_routing_put_hfp_switch_mixer);
21271
21272static const struct snd_kcontrol_new hfp_slim7_switch_mixer_controls =
21273 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21274 0, 1, 0, msm_routing_get_hfp_switch_mixer,
21275 msm_routing_put_hfp_switch_mixer);
21276
21277static const struct snd_kcontrol_new usb_switch_mixer_controls =
21278 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21279 0, 1, 0, msm_routing_get_usb_switch_mixer,
21280 msm_routing_put_usb_switch_mixer);
21281
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080021282static const struct snd_kcontrol_new a2dp_slim7_switch_mixer_controls =
21283 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21284 0, 1, 0, msm_routing_a2dp_switch_mixer_get,
21285 msm_routing_a2dp_switch_mixer_put);
21286
Zhou Songcaa541d2019-02-19 18:37:47 +080021287static const struct snd_kcontrol_new sco_slim7_switch_mixer_controls =
21288 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21289 0, 1, 0, msm_routing_sco_switch_mixer_get,
21290 msm_routing_sco_switch_mixer_put);
21291
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021292static const struct soc_enum lsm_port_enum =
21293 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_port_text), lsm_port_text);
21294
21295static const char * const lsm_func_text[] = {
21296 "None", "AUDIO", "BEACON", "ULTRASOUND", "SWAUDIO",
21297};
21298static const struct soc_enum lsm_func_enum =
21299 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_func_text), lsm_func_text);
21300
21301static const struct snd_kcontrol_new lsm_controls[] = {
21302 /* kcontrol of lsm_function */
21303 SOC_ENUM_EXT(SLIMBUS_0_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21304 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21305 SOC_ENUM_EXT(SLIMBUS_1_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21306 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21307 SOC_ENUM_EXT(SLIMBUS_2_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21308 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21309 SOC_ENUM_EXT(SLIMBUS_3_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21310 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21311 SOC_ENUM_EXT(SLIMBUS_4_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21312 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21313 SOC_ENUM_EXT(SLIMBUS_5_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21314 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21315 SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21316 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21317 SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21318 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21319 SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21320 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021321 SOC_ENUM_EXT(TX_CDC_DMA_TX_3_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21322 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021323 SOC_ENUM_EXT(QUIN_TDM_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21324 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021325 /* kcontrol of lsm_port */
21326 SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
21327 msm_routing_lsm_port_get,
21328 msm_routing_lsm_port_put),
21329 SOC_ENUM_EXT("LSM2 Port", lsm_port_enum,
21330 msm_routing_lsm_port_get,
21331 msm_routing_lsm_port_put),
21332 SOC_ENUM_EXT("LSM3 Port", lsm_port_enum,
21333 msm_routing_lsm_port_get,
21334 msm_routing_lsm_port_put),
21335 SOC_ENUM_EXT("LSM4 Port", lsm_port_enum,
21336 msm_routing_lsm_port_get,
21337 msm_routing_lsm_port_put),
21338 SOC_ENUM_EXT("LSM5 Port", lsm_port_enum,
21339 msm_routing_lsm_port_get,
21340 msm_routing_lsm_port_put),
21341 SOC_ENUM_EXT("LSM6 Port", lsm_port_enum,
21342 msm_routing_lsm_port_get,
21343 msm_routing_lsm_port_put),
21344 SOC_ENUM_EXT("LSM7 Port", lsm_port_enum,
21345 msm_routing_lsm_port_get,
21346 msm_routing_lsm_port_put),
21347 SOC_ENUM_EXT("LSM8 Port", lsm_port_enum,
21348 msm_routing_lsm_port_get,
21349 msm_routing_lsm_port_put),
21350};
21351
21352static const char * const aanc_slim_0_rx_text[] = {
21353 "ZERO", "SLIMBUS_0_TX", "SLIMBUS_1_TX", "SLIMBUS_2_TX", "SLIMBUS_3_TX",
21354 "SLIMBUS_4_TX", "SLIMBUS_5_TX", "SLIMBUS_6_TX"
21355};
21356
21357static const struct soc_enum aanc_slim_0_rx_enum =
21358 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(aanc_slim_0_rx_text),
21359 aanc_slim_0_rx_text);
21360
21361static const struct snd_kcontrol_new aanc_slim_0_rx_mux[] = {
21362 SOC_ENUM_EXT("AANC_SLIM_0_RX MUX", aanc_slim_0_rx_enum,
21363 msm_routing_slim_0_rx_aanc_mux_get,
21364 msm_routing_slim_0_rx_aanc_mux_put)
21365};
21366
Sudheer Papothic07b37a2018-05-04 05:56:47 +053021367static int msm_routing_aanc_noise_level_get(struct snd_kcontrol *kcontrol,
21368 struct snd_ctl_elem_value *ucontrol)
21369{
21370 ucontrol->value.integer.value[0] = aanc_level;
21371
21372 return 0;
21373}
21374
21375static int msm_routing_aanc_noise_level_put(struct snd_kcontrol *kcontrol,
21376 struct snd_ctl_elem_value *ucontrol)
21377{
21378 int ret = 0;
21379
21380 mutex_lock(&routing_lock);
21381 aanc_level = ucontrol->value.integer.value[0];
21382 pr_debug("%s: value: %ld\n",
21383 __func__, ucontrol->value.integer.value[0]);
21384 ret = afe_set_aanc_noise_level(aanc_level);
21385 mutex_unlock(&routing_lock);
21386
21387 return ret;
21388}
21389
21390static const struct snd_kcontrol_new aanc_noise_level[] = {
21391 SOC_SINGLE_EXT("AANC Noise Level", SND_SOC_NOPM, 0, 255,
21392 0, msm_routing_aanc_noise_level_get, msm_routing_aanc_noise_level_put)
21393};
21394
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021395static int msm_routing_get_stereo_to_custom_stereo_control(
21396 struct snd_kcontrol *kcontrol,
21397 struct snd_ctl_elem_value *ucontrol)
21398{
21399 ucontrol->value.integer.value[0] = is_custom_stereo_on;
21400 return 0;
21401}
21402
21403static int msm_routing_put_stereo_to_custom_stereo_control(
21404 struct snd_kcontrol *kcontrol,
21405 struct snd_ctl_elem_value *ucontrol)
21406{
21407 int flag = 0, i = 0, rc = 0, idx = 0;
21408 int be_index = 0, port_id, topo_id;
21409 unsigned int session_id = 0;
21410 uint16_t op_FL_ip_FL_weight = 0;
21411 uint16_t op_FL_ip_FR_weight = 0;
21412 uint16_t op_FR_ip_FL_weight = 0;
21413 uint16_t op_FR_ip_FR_weight = 0;
21414
21415 flag = ucontrol->value.integer.value[0];
21416 pr_debug("%s E flag %d\n", __func__, flag);
21417
21418 if ((is_custom_stereo_on && flag) || (!is_custom_stereo_on && !flag)) {
21419 pr_err("%s: is_custom_stereo_on %d, flag %d\n",
21420 __func__, is_custom_stereo_on, flag);
21421 return 0;
21422 }
21423 is_custom_stereo_on = flag ? true : false;
21424 pr_debug("%s:is_custom_stereo_on %d\n", __func__, is_custom_stereo_on);
21425 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
21426 port_id = msm_bedais[be_index].port_id;
21427 if (!msm_bedais[be_index].active)
21428 continue;
21429 if ((port_id != SLIMBUS_0_RX) &&
21430 (port_id != RT_PROXY_PORT_001_RX) &&
21431 (port_id != AFE_PORT_ID_PRIMARY_MI2S_RX) &&
21432 (port_id != AFE_PORT_ID_INT4_MI2S_RX))
21433 continue;
21434
21435 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
21436 MSM_FRONTEND_DAI_MM_SIZE) {
21437 if (fe_dai_map[i][SESSION_TYPE_RX].perf_mode !=
21438 LEGACY_PCM_MODE)
21439 goto skip_send_custom_stereo;
21440 session_id =
21441 fe_dai_map[i][SESSION_TYPE_RX].strm_id;
21442 if (is_custom_stereo_on) {
21443 op_FL_ip_FL_weight =
21444 Q14_GAIN_ZERO_POINT_FIVE;
21445 op_FL_ip_FR_weight =
21446 Q14_GAIN_ZERO_POINT_FIVE;
21447 op_FR_ip_FL_weight =
21448 Q14_GAIN_ZERO_POINT_FIVE;
21449 op_FR_ip_FR_weight =
21450 Q14_GAIN_ZERO_POINT_FIVE;
21451 } else {
21452 op_FL_ip_FL_weight = Q14_GAIN_UNITY;
21453 op_FL_ip_FR_weight = 0;
21454 op_FR_ip_FL_weight = 0;
21455 op_FR_ip_FR_weight = Q14_GAIN_UNITY;
21456 }
21457 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
21458 unsigned long copp =
21459 session_copp_map[i]
21460 [SESSION_TYPE_RX][be_index];
21461 if (!test_bit(idx, &copp))
21462 goto skip_send_custom_stereo;
21463 topo_id = adm_get_topology_for_port_copp_idx(
21464 msm_bedais[be_index].port_id, idx);
21465 if (topo_id < 0)
21466 pr_debug("%s:Err:custom stereo topo %d",
21467 __func__, topo_id);
21468 pr_debug("idx %d\n", idx);
21469 if (topo_id == DS2_ADM_COPP_TOPOLOGY_ID)
21470 rc = msm_ds2_dap_set_custom_stereo_onoff
21471 (msm_bedais[be_index].port_id,
21472 idx, is_custom_stereo_on);
21473 else if (topo_id == DOLBY_ADM_COPP_TOPOLOGY_ID)
21474 rc = dolby_dap_set_custom_stereo_onoff(
21475 msm_bedais[be_index].port_id,
21476 idx, is_custom_stereo_on);
21477 else
21478 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd
21479 (msm_bedais[be_index].port_id,
21480 idx, session_id,
21481 op_FL_ip_FL_weight,
21482 op_FL_ip_FR_weight,
21483 op_FR_ip_FL_weight,
21484 op_FR_ip_FR_weight);
21485 if (rc < 0)
21486skip_send_custom_stereo:
21487 pr_err("%s: err setting custom stereo\n",
21488 __func__);
21489 }
21490
21491 }
21492 }
21493 return 0;
21494}
21495
21496static const struct snd_kcontrol_new stereo_to_custom_stereo_controls[] = {
21497 SOC_SINGLE_EXT("Set Custom Stereo OnOff", SND_SOC_NOPM, 0,
21498 1, 0, msm_routing_get_stereo_to_custom_stereo_control,
21499 msm_routing_put_stereo_to_custom_stereo_control),
21500};
21501
21502static int msm_routing_get_app_type_cfg_control(struct snd_kcontrol *kcontrol,
21503 struct snd_ctl_elem_value *ucontrol)
21504{
21505 return 0;
21506}
21507
21508static int msm_routing_put_app_type_cfg_control(struct snd_kcontrol *kcontrol,
21509 struct snd_ctl_elem_value *ucontrol)
21510{
21511 int i = 0, j;
21512 int num_app_types = ucontrol->value.integer.value[i++];
21513
21514 pr_debug("%s\n", __func__);
21515
21516 memset(app_type_cfg, 0, MAX_APP_TYPES*
21517 sizeof(struct msm_pcm_routing_app_type_data));
21518 if (num_app_types > MAX_APP_TYPES) {
21519 pr_err("%s: number of app types exceed the max supported\n",
21520 __func__);
21521 return -EINVAL;
21522 }
21523 for (j = 0; j < num_app_types; j++) {
21524 app_type_cfg[j].app_type =
21525 ucontrol->value.integer.value[i++];
21526 app_type_cfg[j].sample_rate =
21527 ucontrol->value.integer.value[i++];
21528 app_type_cfg[j].bit_width =
21529 ucontrol->value.integer.value[i++];
21530 }
21531
21532 return 0;
21533}
21534
21535static int msm_routing_put_app_type_gain_control(struct snd_kcontrol *kcontrol,
21536 struct snd_ctl_elem_value *ucontrol)
21537{
21538 int j, fe_id, be_id, port_type;
21539 int ret = 0;
21540 unsigned long copp;
21541 struct msm_pcm_routing_bdai_data *bedai;
21542 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
21543 SESSION_TYPE_RX;
21544 int app_type = ucontrol->value.integer.value[1];
21545 int gain = (ucontrol->value.integer.value[2] +
21546 ucontrol->value.integer.value[3])/2;
21547
21548 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
21549 MSM_AFE_PORT_TYPE_TX;
21550
21551 mutex_lock(&routing_lock);
21552 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
21553 if (is_be_dai_extproc(be_id))
21554 continue;
21555
21556 bedai = &msm_bedais[be_id];
21557 if (afe_get_port_type(bedai->port_id) != port_type)
21558 continue;
21559
21560 if (!bedai->active)
21561 continue;
21562
21563 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
21564 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
21565 continue;
21566
21567 if (app_type !=
21568 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
21569 continue;
21570
21571 copp = session_copp_map[fe_id][dir][be_id];
21572 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
21573 if (!test_bit(j, &copp))
21574 continue;
21575 ret |= adm_set_volume(bedai->port_id, j, gain);
21576 }
21577 }
21578 }
21579 mutex_unlock(&routing_lock);
21580 return ret ? -EINVAL : 0;
21581}
21582
21583static const struct snd_kcontrol_new app_type_cfg_controls[] = {
21584 SOC_SINGLE_MULTI_EXT("App Type Config", SND_SOC_NOPM, 0,
Guodong Hu2479acc2019-05-24 10:15:33 +080021585 0x7FFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021586 msm_routing_put_app_type_cfg_control),
21587 SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
21588 0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
21589};
21590
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021591static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,
21592 struct snd_ctl_elem_value *ucontrol)
21593{
21594 int copp_idx, fe_id, be_id, port_type;
21595 int ret = 0;
21596 unsigned long copp;
21597 struct msm_pcm_routing_bdai_data *bedai;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021598 u8 *packed_params = NULL;
21599 struct param_hdr_v3 param_hdr;
21600 u32 packed_param_size = (sizeof(struct param_hdr_v3) +
21601 sizeof(uint32_t));
21602
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021603 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
21604 SESSION_TYPE_RX;
21605 int app_type = ucontrol->value.integer.value[1];
21606 int module_id = ucontrol->value.integer.value[2];
21607 int instance_id = ucontrol->value.integer.value[3];
21608 int param_id = ucontrol->value.integer.value[4];
21609 int param_value = ucontrol->value.integer.value[5];
21610
21611 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
21612 MSM_AFE_PORT_TYPE_TX;
21613 pr_debug("%s app_type:%d mod_id:%d instance_id:%d param_id:%d value:%d\n",
21614 __func__, app_type, module_id,
21615 instance_id, param_id, param_value);
21616
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021617 packed_params = kzalloc(packed_param_size, GFP_KERNEL);
21618 if (!packed_params)
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021619 return -ENOMEM;
21620
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021621 memset(&param_hdr, 0, sizeof(param_hdr));
21622 param_hdr.module_id = module_id;
21623 param_hdr.instance_id = instance_id;
21624 param_hdr.param_id = param_id;
21625 param_hdr.param_size = sizeof(uint32_t);
21626
21627 packed_param_size = 0;
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021628
21629 mutex_lock(&routing_lock);
21630 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
21631 if (is_be_dai_extproc(be_id))
21632 continue;
21633
21634 bedai = &msm_bedais[be_id];
21635 if (afe_get_port_type(bedai->port_id) != port_type)
21636 continue;
21637
21638 if (!bedai->active)
21639 continue;
21640
21641 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
21642 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
21643 continue;
21644
21645 if (app_type !=
21646 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
21647 continue;
21648
21649 copp = session_copp_map[fe_id][dir][be_id];
21650 for (copp_idx = 0; copp_idx < MAX_COPPS_PER_PORT;
21651 copp_idx++) {
21652 if (!test_bit(copp_idx, &copp))
21653 continue;
21654
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021655 ret = q6common_pack_pp_params(packed_params,
21656 &param_hdr,
21657 (u8 *) &param_value,
21658 &packed_param_size);
21659 if (ret) {
21660 pr_err("%s: Failed to pack params, error %d\n",
21661 __func__, ret);
21662 goto done;
21663 }
21664
21665 ret = adm_set_pp_params(bedai->port_id,
21666 copp_idx, NULL,
21667 packed_params,
21668 packed_param_size);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021669 if (ret) {
21670 pr_err("%s: Setting param failed with err=%d\n",
21671 __func__, ret);
21672 ret = -EINVAL;
21673 goto done;
21674 }
21675 }
21676 }
21677 }
21678done:
21679 mutex_unlock(&routing_lock);
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021680 kfree(packed_params);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021681 return ret;
21682}
21683
21684static const struct snd_kcontrol_new module_cfg_controls[] = {
21685 SOC_SINGLE_MULTI_EXT("Audio Effect", SND_SOC_NOPM, 0,
21686 0x2000, 0, 6, NULL, msm_routing_put_module_cfg_control)
21687};
21688
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021689static int msm_routing_get_lsm_app_type_cfg_control(
21690 struct snd_kcontrol *kcontrol,
21691 struct snd_ctl_elem_value *ucontrol)
21692{
Meng Wangadbca4f2018-10-29 14:30:13 +080021693 int shift = ((struct soc_multi_mixer_control *)
21694 kcontrol->private_value)->shift;
21695 int i = 0, j = 0;
21696
21697 ucontrol->value.integer.value[i] = num_app_cfg_types;
21698
21699 for (j = 0; j < num_app_cfg_types; ++j) {
21700 ucontrol->value.integer.value[++i] =
21701 lsm_app_type_cfg[j].app_type;
21702 ucontrol->value.integer.value[++i] =
21703 lsm_app_type_cfg[j].sample_rate;
21704 ucontrol->value.integer.value[++i] =
21705 lsm_app_type_cfg[j].bit_width;
21706 if (shift == 1)
21707 ucontrol->value.integer.value[++i] =
21708 lsm_app_type_cfg[j].num_out_channels;
21709 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021710 return 0;
21711}
21712
21713static int msm_routing_put_lsm_app_type_cfg_control(
21714 struct snd_kcontrol *kcontrol,
21715 struct snd_ctl_elem_value *ucontrol)
21716{
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070021717 int shift = ((struct soc_multi_mixer_control *)
21718 kcontrol->private_value)->shift;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021719 int i = 0, j;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021720
Ajit Pandey248ce562019-09-06 10:51:02 +053021721 if (ucontrol->value.integer.value[0] > MAX_APP_TYPES) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021722 pr_err("%s: number of app types exceed the max supported\n",
21723 __func__);
21724 return -EINVAL;
21725 }
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070021726
Ajit Pandey248ce562019-09-06 10:51:02 +053021727 num_app_cfg_types = ucontrol->value.integer.value[i++];
21728 memset(lsm_app_type_cfg, 0, MAX_APP_TYPES*
21729 sizeof(struct msm_pcm_routing_app_type_data));
21730
Meng Wangadbca4f2018-10-29 14:30:13 +080021731 for (j = 0; j < num_app_cfg_types; j++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021732 lsm_app_type_cfg[j].app_type =
21733 ucontrol->value.integer.value[i++];
21734 lsm_app_type_cfg[j].sample_rate =
21735 ucontrol->value.integer.value[i++];
21736 lsm_app_type_cfg[j].bit_width =
21737 ucontrol->value.integer.value[i++];
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070021738 /* Shift of 1 indicates this is V2 mixer control */
21739 if (shift == 1)
21740 lsm_app_type_cfg[j].num_out_channels =
21741 ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021742 }
21743
21744 return 0;
21745}
21746
21747static const struct snd_kcontrol_new lsm_app_type_cfg_controls[] = {
21748 SOC_SINGLE_MULTI_EXT("Listen App Type Config", SND_SOC_NOPM, 0,
21749 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
21750 msm_routing_put_lsm_app_type_cfg_control),
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070021751 SOC_SINGLE_MULTI_EXT("Listen App Type Config V2", SND_SOC_NOPM, 1,
21752 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
21753 msm_routing_put_lsm_app_type_cfg_control),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021754};
21755
21756static int msm_routing_get_use_ds1_or_ds2_control(
21757 struct snd_kcontrol *kcontrol,
21758 struct snd_ctl_elem_value *ucontrol)
21759{
21760 ucontrol->value.integer.value[0] = is_ds2_on;
21761 return 0;
21762}
21763
21764static int msm_routing_put_use_ds1_or_ds2_control(
21765 struct snd_kcontrol *kcontrol,
21766 struct snd_ctl_elem_value *ucontrol)
21767{
21768 is_ds2_on = ucontrol->value.integer.value[0];
21769 return 0;
21770}
21771
21772static const struct snd_kcontrol_new use_ds1_or_ds2_controls[] = {
21773 SOC_SINGLE_EXT("DS2 OnOff", SND_SOC_NOPM, 0,
21774 1, 0, msm_routing_get_use_ds1_or_ds2_control,
21775 msm_routing_put_use_ds1_or_ds2_control),
21776};
21777
Ramlal Karrab6ef9e02019-08-14 17:53:29 +053021778static int msm_routing_get_hifi_filter_control(
21779 struct snd_kcontrol *kcontrol,
21780 struct snd_ctl_elem_value *ucontrol)
21781{
21782 ucontrol->value.integer.value[0] = hifi_filter_enabled;
21783 return 0;
21784}
21785
21786static int msm_routing_put_hifi_filter_control(
21787 struct snd_kcontrol *kcontrol,
21788 struct snd_ctl_elem_value *ucontrol)
21789{
21790 hifi_filter_enabled = ucontrol->value.integer.value[0];
21791 return 0;
21792}
21793
21794static const struct snd_kcontrol_new hifi_filter_controls[] = {
21795 SOC_SINGLE_EXT("HiFi Filter", SND_SOC_NOPM, 0,
21796 1, 0, msm_routing_get_hifi_filter_control,
21797 msm_routing_put_hifi_filter_control),
21798};
21799
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021800int msm_routing_get_rms_value_control(struct snd_kcontrol *kcontrol,
21801 struct snd_ctl_elem_value *ucontrol) {
21802 int rc = 0;
21803 int be_idx = 0;
21804 char *param_value;
21805 int *update_param_value;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021806 uint32_t param_size = (RMS_PAYLOAD_LEN + 1) * sizeof(uint32_t);
21807 struct param_hdr_v3 param_hdr;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021808
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021809 param_value = kzalloc(param_size, GFP_KERNEL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021810 if (!param_value)
21811 return -ENOMEM;
21812
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021813 memset(&param_hdr, 0, sizeof(param_hdr));
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021814 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++)
21815 if (msm_bedais[be_idx].port_id == SLIMBUS_0_TX)
21816 break;
21817 if ((be_idx < MSM_BACKEND_DAI_MAX) && msm_bedais[be_idx].active) {
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021818 param_hdr.module_id = RMS_MODULEID_APPI_PASSTHRU;
21819 param_hdr.instance_id = INSTANCE_ID_0;
21820 param_hdr.param_id = RMS_PARAM_FIRST_SAMPLE;
21821 param_hdr.param_size = param_size;
21822 rc = adm_get_pp_params(SLIMBUS_0_TX, 0, ADM_CLIENT_ID_DEFAULT,
21823 NULL, &param_hdr, (u8 *) param_value);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021824 if (rc) {
21825 pr_err("%s: get parameters failed:%d\n", __func__, rc);
21826 kfree(param_value);
21827 return -EINVAL;
21828 }
21829 update_param_value = (int *)param_value;
21830 ucontrol->value.integer.value[0] = update_param_value[0];
21831
21832 pr_debug("%s: FROM DSP value[0] 0x%x\n",
21833 __func__, update_param_value[0]);
21834 }
21835 kfree(param_value);
21836 return 0;
21837}
21838
21839static int msm_voc_session_id_put(struct snd_kcontrol *kcontrol,
21840 struct snd_ctl_elem_value *ucontrol)
21841{
21842 voc_session_id = ucontrol->value.integer.value[0];
21843
21844 pr_debug("%s: voc_session_id=%u\n", __func__, voc_session_id);
21845
21846 return 0;
21847}
21848
21849static int msm_voc_session_id_get(struct snd_kcontrol *kcontrol,
21850 struct snd_ctl_elem_value *ucontrol)
21851{
21852 ucontrol->value.integer.value[0] = voc_session_id;
21853
21854 return 0;
21855}
21856
21857static struct snd_kcontrol_new msm_voc_session_controls[] = {
21858 SOC_SINGLE_MULTI_EXT("Voc VSID", SND_SOC_NOPM, 0,
21859 0xFFFFFFFF, 0, 1, msm_voc_session_id_get,
21860 msm_voc_session_id_put),
21861};
21862
21863static int msm_sound_focus_info(struct snd_kcontrol *kcontrol,
21864 struct snd_ctl_elem_info *uinfo)
21865{
21866 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
21867 uinfo->count = sizeof(struct sound_focus_param);
21868
21869 return 0;
21870}
21871
21872static int msm_voice_sound_focus_put(struct snd_kcontrol *kcontrol,
21873 struct snd_ctl_elem_value *ucontrol)
21874{
21875 int ret = 0;
21876 struct sound_focus_param soundFocusData;
21877
21878 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
21879 sizeof(struct sound_focus_param));
21880 ret = voc_set_sound_focus(soundFocusData);
21881 if (ret) {
21882 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
21883 __func__, ret);
21884
21885 ret = -EINVAL;
21886 }
21887
21888 return ret;
21889}
21890
21891static int msm_voice_sound_focus_get(struct snd_kcontrol *kcontrol,
21892 struct snd_ctl_elem_value *ucontrol)
21893{
21894 int ret = 0;
21895 struct sound_focus_param soundFocusData;
21896
21897 memset(&soundFocusData, 0, sizeof(struct sound_focus_param));
21898
21899 ret = voc_get_sound_focus(&soundFocusData);
21900 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070021901 pr_debug("%s: Error getting Sound Focus Params, err=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021902 __func__, ret);
21903
21904 ret = -EINVAL;
21905 goto done;
21906 }
21907 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
21908 sizeof(struct sound_focus_param));
21909
21910done:
21911 return ret;
21912}
21913
21914static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
21915 struct snd_ctl_elem_info *uinfo)
21916{
21917 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
21918 uinfo->count = sizeof(struct source_tracking_param);
21919
21920 return 0;
21921}
21922
21923static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
21924 struct snd_ctl_elem_value *ucontrol)
21925{
Meng Wang92edfde2018-04-24 12:18:37 +080021926 int ret = 0;
21927 struct source_tracking_param sourceTrackingData;
21928
21929 memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
21930
21931 ret = voc_get_source_tracking(&sourceTrackingData);
21932 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070021933 pr_debug("%s: Error getting Source Tracking Params, err=%d\n",
Meng Wang92edfde2018-04-24 12:18:37 +080021934 __func__, ret);
21935
21936 ret = -EINVAL;
21937 goto done;
21938 }
21939 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
21940 sizeof(struct source_tracking_param));
21941
21942done:
21943 return ret;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021944}
21945
21946static int msm_audio_get_copp_idx_from_port_id(int port_id, int session_type,
21947 int *copp_idx)
21948{
21949 int i, idx, be_idx;
21950 int ret = 0;
21951 unsigned long copp;
21952
21953 pr_debug("%s: Enter, port_id=%d\n", __func__, port_id);
21954
21955 ret = q6audio_validate_port(port_id);
21956 if (ret < 0) {
21957 pr_err("%s: port validation failed id 0x%x ret %d\n",
21958 __func__, port_id, ret);
21959
21960 ret = -EINVAL;
21961 goto done;
21962 }
21963
21964 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
21965 if (msm_bedais[be_idx].port_id == port_id)
21966 break;
21967 }
21968 if (be_idx >= MSM_BACKEND_DAI_MAX) {
21969 pr_err("%s: Invalid be id %d\n", __func__, be_idx);
21970
21971 ret = -EINVAL;
21972 goto done;
21973 }
21974
21975 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053021976 MSM_FRONTEND_DAI_MAX) {
21977 if (!(is_mm_lsm_fe_id(i) &&
21978 route_check_fe_id_adm_support(i)))
21979 continue;
21980
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021981 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
21982 copp = session_copp_map[i]
21983 [session_type][be_idx];
21984 if (test_bit(idx, &copp))
21985 break;
21986 }
21987 if (idx >= MAX_COPPS_PER_PORT)
21988 continue;
21989 else
21990 break;
21991 }
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053021992 if (i >= MSM_FRONTEND_DAI_MAX) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070021993 pr_debug("%s: Invalid FE, exiting\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021994
21995 ret = -EINVAL;
21996 goto done;
21997 }
21998 *copp_idx = idx;
21999 pr_debug("%s: copp_idx=%d\n", __func__, *copp_idx);
22000
22001done:
22002 return ret;
22003}
22004
22005static int msm_audio_sound_focus_derive_port_id(struct snd_kcontrol *kcontrol,
22006 const char *prefix, int *port_id)
22007{
22008 int ret = 0;
22009
22010 pr_debug("%s: Enter, prefix:%s\n", __func__, prefix);
22011
22012 /*
22013 * Mixer control name will be like "Sound Focus Audio Tx SLIMBUS_0"
22014 * where the prefix is "Sound Focus Audio Tx ". Skip the prefix
22015 * and compare the string with the backend name to derive the port id.
22016 */
22017 if (!strcmp(kcontrol->id.name + strlen(prefix),
22018 "SLIMBUS_0")) {
22019 *port_id = SLIMBUS_0_TX;
22020 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22021 "TERT_MI2S")) {
22022 *port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
22023 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22024 "INT3_MI2S")) {
22025 *port_id = AFE_PORT_ID_INT3_MI2S_TX;
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053022026 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22027 "VA_CDC_DMA_TX_0")) {
22028 *port_id = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053022029 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22030 "TX_CDC_DMA_TX_3")) {
22031 *port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022032 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22033 "QUIN_TDM_TX_0")) {
22034 *port_id = AFE_PORT_ID_QUINARY_TDM_TX;
Sachin Mohan Gadagd34b26d2018-07-16 19:53:19 +053022035 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22036 "PRIMARY_TDM")) {
22037 *port_id = AFE_PORT_ID_PRIMARY_TDM_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022038 } else {
22039 pr_err("%s: mixer ctl name=%s, could not derive valid port id\n",
22040 __func__, kcontrol->id.name);
22041
22042 ret = -EINVAL;
22043 goto done;
22044 }
22045 pr_debug("%s: mixer ctl name=%s, derived port_id=%d\n",
22046 __func__, kcontrol->id.name, *port_id);
22047
22048done:
22049 return ret;
22050}
22051
22052static int msm_audio_sound_focus_put(struct snd_kcontrol *kcontrol,
22053 struct snd_ctl_elem_value *ucontrol)
22054{
22055 int ret = 0;
22056 struct sound_focus_param soundFocusData;
22057 int port_id, copp_idx;
22058
22059 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
22060 "Sound Focus Audio Tx ", &port_id);
22061 if (ret != 0) {
22062 pr_err("%s: Error in deriving port id, err=%d\n",
22063 __func__, ret);
22064
22065 ret = -EINVAL;
22066 goto done;
22067 }
22068
22069 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
22070 &copp_idx);
22071 if (ret) {
22072 pr_err("%s: Could not get copp idx for port_id=%d\n",
22073 __func__, port_id);
22074
22075 ret = -EINVAL;
22076 goto done;
22077 }
22078
22079 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
22080 sizeof(struct sound_focus_param));
22081
22082 ret = adm_set_sound_focus(port_id, copp_idx, soundFocusData);
22083 if (ret) {
22084 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
22085 __func__, ret);
22086
22087 ret = -EINVAL;
22088 goto done;
22089 }
22090
22091done:
22092 return ret;
22093}
22094
22095static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
22096 struct snd_ctl_elem_value *ucontrol)
22097{
22098 int ret = 0;
22099 struct sound_focus_param soundFocusData;
22100 int port_id, copp_idx;
22101
22102 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
22103 "Sound Focus Audio Tx ", &port_id);
22104 if (ret) {
22105 pr_err("%s: Error in deriving port id, err=%d\n",
22106 __func__, ret);
22107
22108 ret = -EINVAL;
22109 goto done;
22110 }
22111
22112 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
22113 &copp_idx);
22114 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070022115 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022116 __func__, port_id);
22117
22118 ret = -EINVAL;
22119 goto done;
22120 }
22121
22122 ret = adm_get_sound_focus(port_id, copp_idx, &soundFocusData);
22123 if (ret) {
22124 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
22125 __func__, ret);
22126
22127 ret = -EINVAL;
22128 goto done;
22129 }
22130
22131 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
22132 sizeof(struct sound_focus_param));
22133
22134done:
22135 return ret;
22136}
22137
22138static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
22139 struct snd_ctl_elem_value *ucontrol)
22140{
22141 int ret = 0;
22142 struct source_tracking_param sourceTrackingData;
22143 int port_id, copp_idx;
22144
22145 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
22146 "Source Tracking Audio Tx ", &port_id);
22147 if (ret) {
22148 pr_err("%s: Error in deriving port id, err=%d\n",
22149 __func__, ret);
22150
22151 ret = -EINVAL;
22152 goto done;
22153 }
22154
22155 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
22156 &copp_idx);
22157 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070022158 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022159 __func__, port_id);
22160
22161 ret = -EINVAL;
22162 goto done;
22163 }
22164
22165 ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
22166 if (ret) {
22167 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
22168 __func__, ret);
22169
22170 ret = -EINVAL;
22171 goto done;
22172 }
22173
22174 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
22175 sizeof(struct source_tracking_param));
22176
22177done:
22178 return ret;
22179}
22180
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053022181static int msm_doa_tracking_mon_info(struct snd_kcontrol *kcontrol,
22182 struct snd_ctl_elem_info *uinfo)
22183{
22184 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
22185 uinfo->count = sizeof(struct doa_tracking_mon_param);
22186
22187 return 0;
22188}
22189
22190static int msm_doa_tracking_mon_get(struct snd_kcontrol *kcontrol,
22191 struct snd_ctl_elem_value *ucontrol)
22192{
22193 int ret = 0;
22194 struct doa_tracking_mon_param doa_tracking_data;
22195 int port_id, copp_idx;
22196
22197 memset(&doa_tracking_data, 0, sizeof(struct doa_tracking_mon_param));
22198 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
22199 "Doa Tracking Monitor Listen ", &port_id);
22200 if (ret) {
22201 pr_err("%s: Error in deriving port id, err=%d\n",
22202 __func__, ret);
22203 ret = -EINVAL;
22204 goto done;
22205 }
22206
22207 /*
22208 * If copp id exists for given port id, query adm to get doa data.
22209 * Else query afe for doa tracking params.
22210 * This is to support in cases where LSM directly connects to
22211 * AFE for FFNS.
22212 */
22213 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
22214 &copp_idx);
22215 if (!ret)
22216 ret = adm_get_doa_tracking_mon(port_id, copp_idx,
22217 &doa_tracking_data);
22218 else
22219 ret = afe_get_doa_tracking_mon(port_id, &doa_tracking_data);
22220
22221 if (ret) {
22222 pr_err("%s: Error getting Doa Tracking Params, err=%d\n",
22223 __func__, ret);
22224 ret = -EINVAL;
22225 goto done;
22226 }
22227
22228 memcpy(ucontrol->value.bytes.data, (void *)&doa_tracking_data,
22229 sizeof(struct doa_tracking_mon_param));
22230done:
22231 return ret;
22232}
22233
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022234static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
22235 {
22236 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22237 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22238 .name = "Sound Focus Voice Tx SLIMBUS_0",
22239 .info = msm_sound_focus_info,
22240 .get = msm_voice_sound_focus_get,
22241 .put = msm_voice_sound_focus_put,
22242 },
22243 {
22244 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22245 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22246 .name = "Source Tracking Voice Tx SLIMBUS_0",
22247 .info = msm_source_tracking_info,
22248 .get = msm_voice_source_tracking_get,
22249 },
22250 {
22251 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22252 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22253 .name = "Sound Focus Audio Tx SLIMBUS_0",
22254 .info = msm_sound_focus_info,
22255 .get = msm_audio_sound_focus_get,
22256 .put = msm_audio_sound_focus_put,
22257 },
22258 {
22259 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22260 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22261 .name = "Source Tracking Audio Tx SLIMBUS_0",
22262 .info = msm_source_tracking_info,
22263 .get = msm_audio_source_tracking_get,
22264 },
22265 {
22266 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22267 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22268 .name = "Sound Focus Voice Tx TERT_MI2S",
22269 .info = msm_sound_focus_info,
22270 .get = msm_voice_sound_focus_get,
22271 .put = msm_voice_sound_focus_put,
22272 },
22273 {
22274 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22275 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22276 .name = "Source Tracking Voice Tx TERT_MI2S",
22277 .info = msm_source_tracking_info,
22278 .get = msm_voice_source_tracking_get,
22279 },
22280 {
22281 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22282 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22283 .name = "Sound Focus Audio Tx TERT_MI2S",
22284 .info = msm_sound_focus_info,
22285 .get = msm_audio_sound_focus_get,
22286 .put = msm_audio_sound_focus_put,
22287 },
22288 {
22289 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22290 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22291 .name = "Source Tracking Audio Tx TERT_MI2S",
22292 .info = msm_source_tracking_info,
22293 .get = msm_audio_source_tracking_get,
22294 },
22295 {
22296 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22297 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22298 .name = "Sound Focus Voice Tx INT3_MI2S",
22299 .info = msm_sound_focus_info,
22300 .get = msm_voice_sound_focus_get,
22301 .put = msm_voice_sound_focus_put,
22302 },
22303 {
22304 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22305 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22306 .name = "Source Tracking Voice Tx INT3_MI2S",
22307 .info = msm_source_tracking_info,
22308 .get = msm_voice_source_tracking_get,
22309 },
22310 {
22311 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22312 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22313 .name = "Sound Focus Audio Tx INT3_MI2S",
22314 .info = msm_sound_focus_info,
22315 .get = msm_audio_sound_focus_get,
22316 .put = msm_audio_sound_focus_put,
22317 },
22318 {
22319 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22320 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22321 .name = "Source Tracking Audio Tx INT3_MI2S",
22322 .info = msm_source_tracking_info,
22323 .get = msm_audio_source_tracking_get,
22324 },
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053022325 {
22326 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22327 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22328 .name = "Sound Focus Voice Tx VA_CDC_DMA_TX_0",
22329 .info = msm_sound_focus_info,
22330 .get = msm_voice_sound_focus_get,
22331 .put = msm_voice_sound_focus_put,
22332 },
22333 {
22334 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22335 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22336 .name = "Source Tracking Voice Tx VA_CDC_DMA_TX_0",
22337 .info = msm_source_tracking_info,
22338 .get = msm_voice_source_tracking_get,
22339 },
22340 {
22341 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22342 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22343 .name = "Sound Focus Audio Tx VA_CDC_DMA_TX_0",
22344 .info = msm_sound_focus_info,
22345 .get = msm_audio_sound_focus_get,
22346 .put = msm_audio_sound_focus_put,
22347 },
22348 {
22349 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22350 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22351 .name = "Source Tracking Audio Tx VA_CDC_DMA_TX_0",
22352 .info = msm_source_tracking_info,
22353 .get = msm_audio_source_tracking_get,
22354 },
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053022355 {
22356 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22357 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22358 .name = "Sound Focus Voice Tx TX_CDC_DMA_TX_3",
22359 .info = msm_sound_focus_info,
22360 .get = msm_voice_sound_focus_get,
22361 .put = msm_voice_sound_focus_put,
22362 },
22363 {
22364 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22365 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22366 .name = "Source Tracking Voice Tx TX_CDC_DMA_TX_3",
22367 .info = msm_source_tracking_info,
22368 .get = msm_voice_source_tracking_get,
22369 },
22370 {
22371 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22372 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22373 .name = "Sound Focus Audio Tx TX_CDC_DMA_TX_3",
22374 .info = msm_sound_focus_info,
22375 .get = msm_audio_sound_focus_get,
22376 .put = msm_audio_sound_focus_put,
22377 },
22378 {
22379 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22380 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22381 .name = "Source Tracking Audio Tx TX_CDC_DMA_TX_3",
22382 .info = msm_source_tracking_info,
22383 .get = msm_audio_source_tracking_get,
22384 },
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022385 {
22386 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22387 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22388 .name = "Sound Focus Voice Tx QUIN_TDM_TX_0",
22389 .info = msm_sound_focus_info,
22390 .get = msm_voice_sound_focus_get,
22391 .put = msm_voice_sound_focus_put,
22392 },
22393 {
22394 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22395 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22396 .name = "Source Tracking Voice Tx QUIN_TDM_TX_0",
22397 .info = msm_source_tracking_info,
22398 .get = msm_voice_source_tracking_get,
22399 },
22400 {
22401 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22402 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22403 .name = "Sound Focus Audio Tx QUIN_TDM_TX_0",
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 QUIN_TDM_TX_0",
22412 .info = msm_source_tracking_info,
22413 .get = msm_audio_source_tracking_get,
22414 },
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053022415 {
Sachin Mohan Gadagd34b26d2018-07-16 19:53:19 +053022416 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22417 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22418 .name = "Sound Focus Audio Tx PRIMARY_TDM",
22419 .info = msm_sound_focus_info,
22420 .get = msm_audio_sound_focus_get,
22421 .put = msm_audio_sound_focus_put,
22422 },
22423 {
22424 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22425 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22426 .name = "Source Tracking Audio Tx PRIMARY_TDM",
22427 .info = msm_source_tracking_info,
22428 .get = msm_audio_source_tracking_get,
22429 },
22430 {
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053022431 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22432 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22433 .name = "Doa Tracking Monitor Listen VA_CDC_DMA_TX_0",
22434 .info = msm_doa_tracking_mon_info,
22435 .get = msm_doa_tracking_mon_get,
22436 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022437};
22438
22439static int spkr_prot_put_vi_lch_port(struct snd_kcontrol *kcontrol,
22440 struct snd_ctl_elem_value *ucontrol)
22441{
22442 int ret = 0;
22443 int item;
22444 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
22445
22446 pr_debug("%s item is %d\n", __func__,
22447 ucontrol->value.enumerated.item[0]);
22448 mutex_lock(&routing_lock);
22449 item = ucontrol->value.enumerated.item[0];
22450 if (item < e->items) {
22451 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
22452 __func__, e->shift_l, e->values[item]);
22453 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
22454 e->values[item] < MSM_BACKEND_DAI_MAX)
22455 /* Enable feedback TX path */
22456 ret = afe_spk_prot_feed_back_cfg(
22457 msm_bedais[e->values[item]].port_id,
22458 msm_bedais[e->shift_l].port_id, 1, 0, 1);
22459 else {
22460 pr_debug("%s values are out of range item %d\n",
22461 __func__, e->values[item]);
22462 /* Disable feedback TX path */
22463 if (e->values[item] == MSM_BACKEND_DAI_MAX)
22464 ret = afe_spk_prot_feed_back_cfg(0, 0, 0, 0, 0);
22465 else
22466 ret = -EINVAL;
22467 }
22468 } else {
22469 pr_err("%s item value is out of range item\n", __func__);
22470 ret = -EINVAL;
22471 }
22472 mutex_unlock(&routing_lock);
22473 return ret;
22474}
22475
22476static int spkr_prot_put_vi_rch_port(struct snd_kcontrol *kcontrol,
22477 struct snd_ctl_elem_value *ucontrol)
22478{
22479 int ret = 0;
22480 int item;
22481 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
22482
22483 pr_debug("%s item is %d\n", __func__,
22484 ucontrol->value.enumerated.item[0]);
22485 mutex_lock(&routing_lock);
22486 item = ucontrol->value.enumerated.item[0];
22487 if (item < e->items) {
22488 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
22489 __func__, e->shift_l, e->values[item]);
22490 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
22491 e->values[item] < MSM_BACKEND_DAI_MAX)
22492 /* Enable feedback TX path */
22493 ret = afe_spk_prot_feed_back_cfg(
22494 msm_bedais[e->values[item]].port_id,
22495 msm_bedais[e->shift_l].port_id,
22496 1, 1, 1);
22497 else {
22498 pr_debug("%s values are out of range item %d\n",
22499 __func__, e->values[item]);
22500 /* Disable feedback TX path */
22501 if (e->values[item] == MSM_BACKEND_DAI_MAX)
22502 ret = afe_spk_prot_feed_back_cfg(0,
22503 0, 0, 0, 0);
22504 else
22505 ret = -EINVAL;
22506 }
22507 } else {
22508 pr_err("%s item value is out of range item\n", __func__);
22509 ret = -EINVAL;
22510 }
22511 mutex_unlock(&routing_lock);
22512 return ret;
22513}
22514
22515static int spkr_prot_get_vi_lch_port(struct snd_kcontrol *kcontrol,
22516 struct snd_ctl_elem_value *ucontrol)
22517{
22518 pr_debug("%s\n", __func__);
22519 return 0;
22520}
22521
22522static int spkr_prot_get_vi_rch_port(struct snd_kcontrol *kcontrol,
22523 struct snd_ctl_elem_value *ucontrol)
22524{
22525 pr_debug("%s\n", __func__);
22526 ucontrol->value.enumerated.item[0] = 0;
22527 return 0;
22528}
22529
22530static const char * const slim0_rx_vi_fb_tx_lch_mux_text[] = {
22531 "ZERO", "SLIM4_TX"
22532};
22533
22534static const char * const slim0_rx_vi_fb_tx_rch_mux_text[] = {
22535 "ZERO", "SLIM4_TX"
22536};
22537
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022538static const char * const wsa_rx_0_vi_fb_tx_lch_mux_text[] = {
22539 "ZERO", "WSA_CDC_DMA_TX_0"
22540};
22541
22542static const char * const wsa_rx_0_vi_fb_tx_rch_mux_text[] = {
22543 "ZERO", "WSA_CDC_DMA_TX_0"
22544};
22545
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022546static const char * const mi2s_rx_vi_fb_tx_mux_text[] = {
22547 "ZERO", "SENARY_TX"
22548};
22549
22550static const char * const int4_mi2s_rx_vi_fb_tx_mono_mux_text[] = {
22551 "ZERO", "INT5_MI2S_TX"
22552};
22553
22554static const char * const int4_mi2s_rx_vi_fb_tx_stereo_mux_text[] = {
22555 "ZERO", "INT5_MI2S_TX"
22556};
22557
Josh Kirschea69fed2018-12-11 16:15:08 -080022558static const int slim0_rx_vi_fb_tx_lch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022559 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
22560};
22561
Josh Kirschea69fed2018-12-11 16:15:08 -080022562static const int slim0_rx_vi_fb_tx_rch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022563 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
22564};
22565
Josh Kirschea69fed2018-12-11 16:15:08 -080022566static const int wsa_rx_0_vi_fb_tx_lch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022567 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
22568};
22569
Josh Kirschea69fed2018-12-11 16:15:08 -080022570static const int wsa_rx_0_vi_fb_tx_rch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022571 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
22572};
22573
22574
Josh Kirschea69fed2018-12-11 16:15:08 -080022575static const int mi2s_rx_vi_fb_tx_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022576 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SENARY_MI2S_TX
22577};
22578
Josh Kirschea69fed2018-12-11 16:15:08 -080022579static const int int4_mi2s_rx_vi_fb_tx_mono_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022580 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
22581};
22582
Josh Kirschea69fed2018-12-11 16:15:08 -080022583static const int int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022584 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
22585};
22586
22587static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
22588 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
22589 ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
22590 slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
22591
22592static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
22593 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
22594 ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
22595 slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
22596
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022597static const struct soc_enum wsa_rx_0_vi_fb_lch_mux_enum =
22598 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
22599 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_lch_mux_text),
22600 wsa_rx_0_vi_fb_tx_lch_mux_text, wsa_rx_0_vi_fb_tx_lch_value);
22601
22602static const struct soc_enum wsa_rx_0_vi_fb_rch_mux_enum =
22603 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
22604 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_rch_mux_text),
22605 wsa_rx_0_vi_fb_tx_rch_mux_text, wsa_rx_0_vi_fb_tx_rch_value);
22606
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022607static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
22608 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
22609 ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
22610 mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
22611
22612static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
22613 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
22614 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
22615 int4_mi2s_rx_vi_fb_tx_mono_mux_text,
22616 int4_mi2s_rx_vi_fb_tx_mono_ch_value);
22617
22618static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
22619 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
22620 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
22621 int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
22622 int4_mi2s_rx_vi_fb_tx_stereo_ch_value);
22623
22624static const struct snd_kcontrol_new slim0_rx_vi_fb_lch_mux =
22625 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_LCH_MUX",
22626 slim0_rx_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
22627 spkr_prot_put_vi_lch_port);
22628
22629static const struct snd_kcontrol_new slim0_rx_vi_fb_rch_mux =
22630 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_RCH_MUX",
22631 slim0_rx_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
22632 spkr_prot_put_vi_rch_port);
22633
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022634static const struct snd_kcontrol_new wsa_rx_0_vi_fb_lch_mux =
22635 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_LCH_MUX",
22636 wsa_rx_0_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
22637 spkr_prot_put_vi_lch_port);
22638
22639static const struct snd_kcontrol_new wsa_rx_0_vi_fb_rch_mux =
22640 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_RCH_MUX",
22641 wsa_rx_0_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
22642 spkr_prot_put_vi_rch_port);
22643
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022644static const struct snd_kcontrol_new mi2s_rx_vi_fb_mux =
22645 SOC_DAPM_ENUM_EXT("PRI_MI2S_RX_VI_FB_MUX",
22646 mi2s_rx_vi_fb_mux_enum, spkr_prot_get_vi_lch_port,
22647 spkr_prot_put_vi_lch_port);
22648
22649static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_mono_ch_mux =
22650 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_MONO_CH_MUX",
22651 int4_mi2s_rx_vi_fb_mono_ch_mux_enum, spkr_prot_get_vi_lch_port,
22652 spkr_prot_put_vi_lch_port);
22653
22654static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_stereo_ch_mux =
22655 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX",
22656 int4_mi2s_rx_vi_fb_stereo_ch_mux_enum, spkr_prot_get_vi_rch_port,
22657 spkr_prot_put_vi_rch_port);
22658
22659static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
22660 /* Frontend AIF */
22661 /* Widget name equals to Front-End DAI name<Need confirmation>,
22662 * Stream name must contains substring of front-end dai name
22663 */
22664 SND_SOC_DAPM_AIF_IN("MM_DL1", "MultiMedia1 Playback", 0, 0, 0, 0),
22665 SND_SOC_DAPM_AIF_IN("MM_DL2", "MultiMedia2 Playback", 0, 0, 0, 0),
22666 SND_SOC_DAPM_AIF_IN("MM_DL3", "MultiMedia3 Playback", 0, 0, 0, 0),
22667 SND_SOC_DAPM_AIF_IN("MM_DL4", "MultiMedia4 Playback", 0, 0, 0, 0),
22668 SND_SOC_DAPM_AIF_IN("MM_DL5", "MultiMedia5 Playback", 0, 0, 0, 0),
22669 SND_SOC_DAPM_AIF_IN("MM_DL6", "MultiMedia6 Playback", 0, 0, 0, 0),
22670 SND_SOC_DAPM_AIF_IN("MM_DL7", "MultiMedia7 Playback", 0, 0, 0, 0),
22671 SND_SOC_DAPM_AIF_IN("MM_DL8", "MultiMedia8 Playback", 0, 0, 0, 0),
22672 SND_SOC_DAPM_AIF_IN("MM_DL9", "MultiMedia9 Playback", 0, 0, 0, 0),
22673 SND_SOC_DAPM_AIF_IN("MM_DL10", "MultiMedia10 Playback", 0, 0, 0, 0),
22674 SND_SOC_DAPM_AIF_IN("MM_DL11", "MultiMedia11 Playback", 0, 0, 0, 0),
22675 SND_SOC_DAPM_AIF_IN("MM_DL12", "MultiMedia12 Playback", 0, 0, 0, 0),
22676 SND_SOC_DAPM_AIF_IN("MM_DL13", "MultiMedia13 Playback", 0, 0, 0, 0),
22677 SND_SOC_DAPM_AIF_IN("MM_DL14", "MultiMedia14 Playback", 0, 0, 0, 0),
22678 SND_SOC_DAPM_AIF_IN("MM_DL15", "MultiMedia15 Playback", 0, 0, 0, 0),
22679 SND_SOC_DAPM_AIF_IN("MM_DL16", "MultiMedia16 Playback", 0, 0, 0, 0),
22680 SND_SOC_DAPM_AIF_IN("MM_DL20", "MultiMedia20 Playback", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070022681 SND_SOC_DAPM_AIF_IN("MM_DL21", "MultiMedia21 Playback", 0, 0, 0, 0),
Derek Chenb097d922019-07-31 17:28:02 -070022682 SND_SOC_DAPM_AIF_IN("MM_DL22", "MultiMedia22 Playback", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053022683 SND_SOC_DAPM_AIF_IN("MM_DL26", "MultiMedia26 Playback", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022684 SND_SOC_DAPM_AIF_IN("VOIP_DL", "VoIP Playback", 0, 0, 0, 0),
22685 SND_SOC_DAPM_AIF_OUT("MM_UL1", "MultiMedia1 Capture", 0, 0, 0, 0),
22686 SND_SOC_DAPM_AIF_OUT("MM_UL2", "MultiMedia2 Capture", 0, 0, 0, 0),
22687 SND_SOC_DAPM_AIF_OUT("MM_UL3", "MultiMedia3 Capture", 0, 0, 0, 0),
22688 SND_SOC_DAPM_AIF_OUT("MM_UL4", "MultiMedia4 Capture", 0, 0, 0, 0),
22689 SND_SOC_DAPM_AIF_OUT("MM_UL5", "MultiMedia5 Capture", 0, 0, 0, 0),
22690 SND_SOC_DAPM_AIF_OUT("MM_UL6", "MultiMedia6 Capture", 0, 0, 0, 0),
22691 SND_SOC_DAPM_AIF_OUT("MM_UL8", "MultiMedia8 Capture", 0, 0, 0, 0),
22692 SND_SOC_DAPM_AIF_OUT("MM_UL9", "MultiMedia9 Capture", 0, 0, 0, 0),
Laxminath Kasam38070be2017-08-17 18:21:59 +053022693 SND_SOC_DAPM_AIF_OUT("MM_UL10", "MultiMedia10 Capture", 0, 0, 0, 0),
Asish Bhattacharya34504582017-08-08 12:55:01 +053022694 SND_SOC_DAPM_AIF_OUT("MM_UL16", "MultiMedia16 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022695 SND_SOC_DAPM_AIF_OUT("MM_UL17", "MultiMedia17 Capture", 0, 0, 0, 0),
22696 SND_SOC_DAPM_AIF_OUT("MM_UL18", "MultiMedia18 Capture", 0, 0, 0, 0),
22697 SND_SOC_DAPM_AIF_OUT("MM_UL19", "MultiMedia19 Capture", 0, 0, 0, 0),
22698 SND_SOC_DAPM_AIF_OUT("MM_UL20", "MultiMedia20 Capture", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070022699 SND_SOC_DAPM_AIF_OUT("MM_UL21", "MultiMedia21 Capture", 0, 0, 0, 0),
Derek Chenb097d922019-07-31 17:28:02 -070022700 SND_SOC_DAPM_AIF_OUT("MM_UL22", "MultiMedia22 Capture", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053022701 SND_SOC_DAPM_AIF_OUT("MM_UL27", "MultiMedia27 Capture", 0, 0, 0, 0),
Meng Wang5c4bab72018-04-25 10:40:01 +080022702 SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
22703 SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053022704 SND_SOC_DAPM_AIF_OUT("MM_UL30", "MultiMedia30 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022705 SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
22706 SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
22707 "VoiceMMode1 Playback", 0, 0, 0, 0),
22708 SND_SOC_DAPM_AIF_OUT("VOICEMMODE1_UL",
22709 "VoiceMMode1 Capture", 0, 0, 0, 0),
22710 SND_SOC_DAPM_AIF_IN("VOICEMMODE2_DL",
22711 "VoiceMMode2 Playback", 0, 0, 0, 0),
22712 SND_SOC_DAPM_AIF_OUT("VOICEMMODE2_UL",
22713 "VoiceMMode2 Capture", 0, 0, 0, 0),
22714 SND_SOC_DAPM_AIF_IN("SLIM0_DL_HL", "SLIMBUS0_HOSTLESS Playback",
22715 0, 0, 0, 0),
22716 SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
22717 0, 0, 0, 0),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053022718 SND_SOC_DAPM_AIF_IN("CDC_DMA_DL_HL", "CDC_DMA_HOSTLESS Playback",
22719 0, 0, 0, 0),
22720 SND_SOC_DAPM_AIF_OUT("CDC_DMA_UL_HL", "CDC_DMA_HOSTLESS Capture",
22721 0, 0, 0, 0),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022722 SND_SOC_DAPM_AIF_OUT("TX3_CDC_DMA_UL_HL",
22723 "TX3_CDC_DMA_HOSTLESS Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022724 SND_SOC_DAPM_AIF_OUT("CPE_LSM_UL_HL", "CPE LSM capture",
22725 0, 0, 0, 0),
22726 SND_SOC_DAPM_AIF_IN("SLIM1_DL_HL", "SLIMBUS1_HOSTLESS Playback",
22727 0, 0, 0, 0),
22728 SND_SOC_DAPM_AIF_OUT("SLIM1_UL_HL", "SLIMBUS1_HOSTLESS Capture",
22729 0, 0, 0, 0),
22730 SND_SOC_DAPM_AIF_IN("SLIM3_DL_HL", "SLIMBUS3_HOSTLESS Playback",
22731 0, 0, 0, 0),
22732 SND_SOC_DAPM_AIF_OUT("SLIM3_UL_HL", "SLIMBUS3_HOSTLESS Capture",
22733 0, 0, 0, 0),
22734 SND_SOC_DAPM_AIF_IN("SLIM4_DL_HL", "SLIMBUS4_HOSTLESS Playback",
22735 0, 0, 0, 0),
22736 SND_SOC_DAPM_AIF_OUT("SLIM4_UL_HL", "SLIMBUS4_HOSTLESS Capture",
22737 0, 0, 0, 0),
22738 SND_SOC_DAPM_AIF_IN("SLIM6_DL_HL", "SLIMBUS6_HOSTLESS Playback",
22739 0, 0, 0, 0),
22740 SND_SOC_DAPM_AIF_OUT("SLIM6_UL_HL", "SLIMBUS6_HOSTLESS Capture",
22741 0, 0, 0, 0),
22742 SND_SOC_DAPM_AIF_IN("SLIM7_DL_HL", "SLIMBUS7_HOSTLESS Playback",
22743 0, 0, 0, 0),
22744 SND_SOC_DAPM_AIF_OUT("SLIM7_UL_HL", "SLIMBUS7_HOSTLESS Capture",
22745 0, 0, 0, 0),
22746 SND_SOC_DAPM_AIF_IN("SLIM8_DL_HL", "SLIMBUS8_HOSTLESS Playback",
22747 0, 0, 0, 0),
22748 SND_SOC_DAPM_AIF_OUT("SLIM8_UL_HL", "SLIMBUS8_HOSTLESS Capture",
22749 0, 0, 0, 0),
22750 SND_SOC_DAPM_AIF_IN("INTFM_DL_HL", "INT_FM_HOSTLESS Playback",
22751 0, 0, 0, 0),
22752 SND_SOC_DAPM_AIF_OUT("INTFM_UL_HL", "INT_FM_HOSTLESS Capture",
22753 0, 0, 0, 0),
22754 SND_SOC_DAPM_AIF_IN("INTHFP_DL_HL", "INT_HFP_BT_HOSTLESS Playback",
22755 0, 0, 0, 0),
22756 SND_SOC_DAPM_AIF_OUT("INTHFP_UL_HL", "INT_HFP_BT_HOSTLESS Capture",
22757 0, 0, 0, 0),
22758 SND_SOC_DAPM_AIF_IN("USBAUDIO_DL_HL", "USBAUDIO_HOSTLESS Playback",
22759 0, 0, 0, 0),
22760 SND_SOC_DAPM_AIF_OUT("USBAUDIO_UL_HL", "USBAUDIO_HOSTLESS Capture",
22761 0, 0, 0, 0),
22762 SND_SOC_DAPM_AIF_IN("HDMI_DL_HL", "HDMI_HOSTLESS Playback", 0, 0, 0, 0),
22763 SND_SOC_DAPM_AIF_IN("SEC_I2S_DL_HL", "SEC_I2S_RX_HOSTLESS Playback",
22764 0, 0, 0, 0),
22765 SND_SOC_DAPM_AIF_IN("INT0_MI2S_DL_HL",
22766 "INT0 MI2S_RX Hostless Playback",
22767 0, 0, 0, 0),
22768 SND_SOC_DAPM_AIF_IN("INT4_MI2S_DL_HL",
22769 "INT4 MI2S_RX Hostless Playback",
22770 0, 0, 0, 0),
22771 SND_SOC_DAPM_AIF_IN("PRI_MI2S_DL_HL",
22772 "Primary MI2S_RX Hostless Playback",
22773 0, 0, 0, 0),
22774 SND_SOC_DAPM_AIF_IN("SEC_MI2S_DL_HL",
22775 "Secondary MI2S_RX Hostless Playback",
22776 0, 0, 0, 0),
22777 SND_SOC_DAPM_AIF_IN("TERT_MI2S_DL_HL",
22778 "Tertiary MI2S_RX Hostless Playback",
22779 0, 0, 0, 0),
22780 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_DL_HL",
22781 "Quaternary MI2S_RX Hostless Playback",
22782 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053022783 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_DL_HL",
22784 "Quinary MI2S_RX Hostless Playback",
22785 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070022786 SND_SOC_DAPM_AIF_IN("SEN_MI2S_DL_HL",
22787 "Senary MI2S_RX Hostless Playback",
22788 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022789
22790 SND_SOC_DAPM_AIF_IN("AUXPCM_DL_HL", "AUXPCM_HOSTLESS Playback",
22791 0, 0, 0, 0),
22792 SND_SOC_DAPM_AIF_OUT("AUXPCM_UL_HL", "AUXPCM_HOSTLESS Capture",
22793 0, 0, 0, 0),
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022794 SND_SOC_DAPM_AIF_IN("SEC_AUXPCM_DL_HL", "SEC_AUXPCM_HOSTLESS Playback",
22795 0, 0, 0, 0),
22796 SND_SOC_DAPM_AIF_OUT("SEC_AUXPCM_UL_HL", "SEC_AUXPCM_HOSTLESS Capture",
22797 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022798 SND_SOC_DAPM_AIF_OUT("MI2S_UL_HL", "MI2S_TX_HOSTLESS Capture",
22799 0, 0, 0, 0),
22800 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_UL_HL",
22801 "INT3 MI2S_TX Hostless Capture",
22802 0, 0, 0, 0),
22803 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_UL_HL",
22804 "Tertiary MI2S_TX Hostless Capture",
22805 0, 0, 0, 0),
22806 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_UL_HL",
22807 "Secondary MI2S_TX Hostless Capture",
22808 0, 0, 0, 0),
22809 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_UL_HL",
22810 "Primary MI2S_TX Hostless Capture",
22811 0, 0, 0, 0),
22812 SND_SOC_DAPM_AIF_OUT("MI2S_DL_HL", "MI2S_RX_HOSTLESS Playback",
22813 0, 0, 0, 0),
22814 SND_SOC_DAPM_AIF_IN("DTMF_DL_HL", "DTMF_RX_HOSTLESS Playback",
22815 0, 0, 0, 0),
22816 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_UL_HL",
22817 "Quaternary MI2S_TX Hostless Capture",
22818 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053022819 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_UL_HL",
22820 "Quinary MI2S_TX Hostless Capture",
22821 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070022822 SND_SOC_DAPM_AIF_OUT("SEN_MI2S_UL_HL",
22823 "Senary MI2S_TX Hostless Capture",
22824 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022825
22826 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_0_DL_HL",
22827 "Primary TDM0 Hostless Playback",
22828 0, 0, 0, 0),
22829 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_0_UL_HL",
22830 "Primary TDM0 Hostless Capture",
22831 0, 0, 0, 0),
22832 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_1_DL_HL",
22833 "Primary TDM1 Hostless Playback",
22834 0, 0, 0, 0),
22835 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_1_UL_HL",
22836 "Primary TDM1 Hostless Capture",
22837 0, 0, 0, 0),
22838 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_2_DL_HL",
22839 "Primary TDM2 Hostless Playback",
22840 0, 0, 0, 0),
22841 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_2_UL_HL",
22842 "Primary TDM2 Hostless Capture",
22843 0, 0, 0, 0),
22844 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_3_DL_HL",
22845 "Primary TDM3 Hostless Playback",
22846 0, 0, 0, 0),
22847 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_3_UL_HL",
22848 "Primary TDM3 Hostless Capture",
22849 0, 0, 0, 0),
22850 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_4_DL_HL",
22851 "Primary TDM4 Hostless Playback",
22852 0, 0, 0, 0),
22853 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_4_UL_HL",
22854 "Primary TDM4 Hostless Capture",
22855 0, 0, 0, 0),
22856 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_5_DL_HL",
22857 "Primary TDM5 Hostless Playback",
22858 0, 0, 0, 0),
22859 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_5_UL_HL",
22860 "Primary TDM5 Hostless Capture",
22861 0, 0, 0, 0),
22862 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_6_DL_HL",
22863 "Primary TDM6 Hostless Playback",
22864 0, 0, 0, 0),
22865 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_6_UL_HL",
22866 "Primary TDM6 Hostless Capture",
22867 0, 0, 0, 0),
22868 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_7_DL_HL",
22869 "Primary TDM7 Hostless Playback",
22870 0, 0, 0, 0),
22871 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_7_UL_HL",
22872 "Primary TDM7 Hostless Capture",
22873 0, 0, 0, 0),
22874 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_0_DL_HL",
22875 "Secondary TDM0 Hostless Playback",
22876 0, 0, 0, 0),
22877 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_0_UL_HL",
22878 "Secondary TDM0 Hostless Capture",
22879 0, 0, 0, 0),
22880 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_1_DL_HL",
22881 "Secondary TDM1 Hostless Playback",
22882 0, 0, 0, 0),
22883 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_1_UL_HL",
22884 "Secondary TDM1 Hostless Capture",
22885 0, 0, 0, 0),
22886 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_2_DL_HL",
22887 "Secondary TDM2 Hostless Playback",
22888 0, 0, 0, 0),
22889 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_2_UL_HL",
22890 "Secondary TDM2 Hostless Capture",
22891 0, 0, 0, 0),
22892 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_3_DL_HL",
22893 "Secondary TDM3 Hostless Playback",
22894 0, 0, 0, 0),
22895 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_3_UL_HL",
22896 "Secondary TDM3 Hostless Capture",
22897 0, 0, 0, 0),
22898 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_4_DL_HL",
22899 "Secondary TDM4 Hostless Playback",
22900 0, 0, 0, 0),
22901 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_4_UL_HL",
22902 "Secondary TDM4 Hostless Capture",
22903 0, 0, 0, 0),
22904 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_5_DL_HL",
22905 "Secondary TDM5 Hostless Playback",
22906 0, 0, 0, 0),
22907 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_5_UL_HL",
22908 "Secondary TDM5 Hostless Capture",
22909 0, 0, 0, 0),
22910 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_6_DL_HL",
22911 "Secondary TDM6 Hostless Playback",
22912 0, 0, 0, 0),
22913 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_6_UL_HL",
22914 "Secondary TDM6 Hostless Capture",
22915 0, 0, 0, 0),
22916 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_7_DL_HL",
22917 "Secondary TDM7 Hostless Playback",
22918 0, 0, 0, 0),
22919 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_7_UL_HL",
22920 "Secondary TDM7 Hostless Capture",
22921 0, 0, 0, 0),
22922 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_0_DL_HL",
22923 "Tertiary TDM0 Hostless Playback",
22924 0, 0, 0, 0),
22925 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_0_UL_HL",
22926 "Tertiary TDM0 Hostless Capture",
22927 0, 0, 0, 0),
22928 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_1_DL_HL",
22929 "Tertiary TDM1 Hostless Playback",
22930 0, 0, 0, 0),
22931 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_1_UL_HL",
22932 "Tertiary TDM1 Hostless Capture",
22933 0, 0, 0, 0),
22934 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_2_DL_HL",
22935 "Tertiary TDM2 Hostless Playback",
22936 0, 0, 0, 0),
22937 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_2_UL_HL",
22938 "Tertiary TDM2 Hostless Capture",
22939 0, 0, 0, 0),
22940 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_3_DL_HL",
22941 "Tertiary TDM3 Hostless Playback",
22942 0, 0, 0, 0),
22943 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_3_UL_HL",
22944 "Tertiary TDM3 Hostless Capture",
22945 0, 0, 0, 0),
22946 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_4_DL_HL",
22947 "Tertiary TDM4 Hostless Playback",
22948 0, 0, 0, 0),
22949 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_4_UL_HL",
22950 "Tertiary TDM4 Hostless Capture",
22951 0, 0, 0, 0),
22952 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_5_DL_HL",
22953 "Tertiary TDM5 Hostless Playback",
22954 0, 0, 0, 0),
22955 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_5_UL_HL",
22956 "Tertiary TDM5 Hostless Capture",
22957 0, 0, 0, 0),
22958 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_6_DL_HL",
22959 "Tertiary TDM6 Hostless Playback",
22960 0, 0, 0, 0),
22961 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_6_UL_HL",
22962 "Tertiary TDM6 Hostless Capture",
22963 0, 0, 0, 0),
22964 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_7_DL_HL",
22965 "Tertiary TDM7 Hostless Playback",
22966 0, 0, 0, 0),
22967 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_7_UL_HL",
22968 "Tertiary TDM7 Hostless Capture",
22969 0, 0, 0, 0),
22970 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_0_DL_HL",
22971 "Quaternary TDM0 Hostless Playback",
22972 0, 0, 0, 0),
22973 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_0_UL_HL",
22974 "Quaternary TDM0 Hostless Capture",
22975 0, 0, 0, 0),
22976 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_1_DL_HL",
22977 "Quaternary TDM1 Hostless Playback",
22978 0, 0, 0, 0),
22979 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_1_UL_HL",
22980 "Quaternary TDM1 Hostless Capture",
22981 0, 0, 0, 0),
22982 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_2_DL_HL",
22983 "Quaternary TDM2 Hostless Playback",
22984 0, 0, 0, 0),
22985 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_2_UL_HL",
22986 "Quaternary TDM2 Hostless Capture",
22987 0, 0, 0, 0),
22988 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_3_DL_HL",
22989 "Quaternary TDM3 Hostless Playback",
22990 0, 0, 0, 0),
22991 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_3_UL_HL",
22992 "Quaternary TDM3 Hostless Capture",
22993 0, 0, 0, 0),
22994 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_4_DL_HL",
22995 "Quaternary TDM4 Hostless Playback",
22996 0, 0, 0, 0),
22997 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_4_UL_HL",
22998 "Quaternary TDM4 Hostless Capture",
22999 0, 0, 0, 0),
23000 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_5_DL_HL",
23001 "Quaternary TDM5 Hostless Playback",
23002 0, 0, 0, 0),
23003 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_5_UL_HL",
23004 "Quaternary TDM5 Hostless Capture",
23005 0, 0, 0, 0),
23006 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_6_DL_HL",
23007 "Quaternary TDM6 Hostless Playback",
23008 0, 0, 0, 0),
23009 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_6_UL_HL",
23010 "Quaternary TDM6 Hostless Capture",
23011 0, 0, 0, 0),
23012 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_7_DL_HL",
23013 "Quaternary TDM7 Hostless Playback",
23014 0, 0, 0, 0),
23015 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_7_UL_HL",
23016 "Quaternary TDM7 Hostless Capture",
23017 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053023018 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_0_DL_HL",
23019 "Quinary TDM0 Hostless Playback",
23020 0, 0, 0, 0),
23021 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_0_UL_HL",
23022 "Quinary TDM0 Hostless Capture",
23023 0, 0, 0, 0),
23024 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_1_DL_HL",
23025 "Quinary TDM1 Hostless Playback",
23026 0, 0, 0, 0),
23027 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_1_UL_HL",
23028 "Quinary TDM1 Hostless Capture",
23029 0, 0, 0, 0),
23030 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_2_DL_HL",
23031 "Quinary TDM2 Hostless Playback",
23032 0, 0, 0, 0),
23033 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_2_UL_HL",
23034 "Quinary TDM2 Hostless Capture",
23035 0, 0, 0, 0),
23036 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_3_DL_HL",
23037 "Quinary TDM3 Hostless Playback",
23038 0, 0, 0, 0),
23039 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_3_UL_HL",
23040 "Quinary TDM3 Hostless Capture",
23041 0, 0, 0, 0),
23042 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_4_DL_HL",
23043 "Quinary TDM4 Hostless Playback",
23044 0, 0, 0, 0),
23045 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_4_UL_HL",
23046 "Quinary TDM4 Hostless Capture",
23047 0, 0, 0, 0),
23048 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_5_DL_HL",
23049 "Quinary TDM5 Hostless Playback",
23050 0, 0, 0, 0),
23051 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_5_UL_HL",
23052 "Quinary TDM5 Hostless Capture",
23053 0, 0, 0, 0),
23054 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_6_DL_HL",
23055 "Quinary TDM6 Hostless Playback",
23056 0, 0, 0, 0),
23057 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_6_UL_HL",
23058 "Quinary TDM6 Hostless Capture",
23059 0, 0, 0, 0),
23060 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_7_DL_HL",
23061 "Quinary TDM7 Hostless Playback",
23062 0, 0, 0, 0),
23063 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_7_UL_HL",
23064 "Quinary TDM7 Hostless Capture",
23065 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023066 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_0_DL_HL",
23067 "Senary TDM0 Hostless Playback",
23068 0, 0, 0, 0),
23069 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_0_UL_HL",
23070 "Senary TDM0 Hostless Capture",
23071 0, 0, 0, 0),
23072 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_1_DL_HL",
23073 "Senary TDM1 Hostless Playback",
23074 0, 0, 0, 0),
23075 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_1_UL_HL",
23076 "Senary TDM1 Hostless Capture",
23077 0, 0, 0, 0),
23078 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_2_DL_HL",
23079 "Senary TDM2 Hostless Playback",
23080 0, 0, 0, 0),
23081 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_2_UL_HL",
23082 "Senary TDM2 Hostless Capture",
23083 0, 0, 0, 0),
23084 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_3_DL_HL",
23085 "Senary TDM3 Hostless Playback",
23086 0, 0, 0, 0),
23087 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_3_UL_HL",
23088 "Senary TDM3 Hostless Capture",
23089 0, 0, 0, 0),
23090 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_4_DL_HL",
23091 "Senary TDM4 Hostless Playback",
23092 0, 0, 0, 0),
23093 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_4_UL_HL",
23094 "Senary TDM4 Hostless Capture",
23095 0, 0, 0, 0),
23096 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_5_DL_HL",
23097 "Senary TDM5 Hostless Playback",
23098 0, 0, 0, 0),
23099 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_5_UL_HL",
23100 "Senary TDM5 Hostless Capture",
23101 0, 0, 0, 0),
23102 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_6_DL_HL",
23103 "Senary TDM6 Hostless Playback",
23104 0, 0, 0, 0),
23105 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_6_UL_HL",
23106 "Senary TDM6 Hostless Capture",
23107 0, 0, 0, 0),
23108 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_7_DL_HL",
23109 "Senary TDM7 Hostless Playback",
23110 0, 0, 0, 0),
23111 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_7_UL_HL",
23112 "Senary TDM7 Hostless Capture",
23113 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023114
23115 /* LSM */
23116 SND_SOC_DAPM_AIF_OUT("LSM1_UL_HL", "Listen 1 Audio Service Capture",
23117 0, 0, 0, 0),
23118 SND_SOC_DAPM_AIF_OUT("LSM2_UL_HL", "Listen 2 Audio Service Capture",
23119 0, 0, 0, 0),
23120 SND_SOC_DAPM_AIF_OUT("LSM3_UL_HL", "Listen 3 Audio Service Capture",
23121 0, 0, 0, 0),
23122 SND_SOC_DAPM_AIF_OUT("LSM4_UL_HL", "Listen 4 Audio Service Capture",
23123 0, 0, 0, 0),
23124 SND_SOC_DAPM_AIF_OUT("LSM5_UL_HL", "Listen 5 Audio Service Capture",
23125 0, 0, 0, 0),
23126 SND_SOC_DAPM_AIF_OUT("LSM6_UL_HL", "Listen 6 Audio Service Capture",
23127 0, 0, 0, 0),
23128 SND_SOC_DAPM_AIF_OUT("LSM7_UL_HL", "Listen 7 Audio Service Capture",
23129 0, 0, 0, 0),
23130 SND_SOC_DAPM_AIF_OUT("LSM8_UL_HL", "Listen 8 Audio Service Capture",
23131 0, 0, 0, 0),
23132 SND_SOC_DAPM_AIF_IN("QCHAT_DL", "QCHAT Playback", 0, 0, 0, 0),
23133 SND_SOC_DAPM_AIF_OUT("QCHAT_UL", "QCHAT Capture", 0, 0, 0, 0),
23134 /* Backend AIF */
23135 /* Stream name equals to backend dai link stream name */
23136 SND_SOC_DAPM_AIF_OUT("PRI_I2S_RX", "Primary I2S Playback", 0, 0, 0, 0),
23137 SND_SOC_DAPM_AIF_OUT("SEC_I2S_RX", "Secondary I2S Playback",
23138 0, 0, 0, 0),
Ralf Herzc8701f72018-06-20 11:37:35 +020023139 SND_SOC_DAPM_AIF_OUT("PRI_SPDIF_RX", "Primary SPDIF Playback",
23140 0, 0, 0, 0),
23141 SND_SOC_DAPM_AIF_IN("PRI_SPDIF_TX", "Primary SPDIF Capture",
23142 0, 0, 0, 0),
23143 SND_SOC_DAPM_AIF_OUT("SEC_SPDIF_RX", "Secondary SPDIF Playback",
23144 0, 0, 0, 0),
23145 SND_SOC_DAPM_AIF_IN("SEC_SPDIF_TX", "Secondary SPDIF Capture",
23146 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023147 SND_SOC_DAPM_AIF_OUT("SLIMBUS_0_RX", "Slimbus Playback", 0, 0, 0, 0),
23148 SND_SOC_DAPM_AIF_OUT("SLIMBUS_2_RX", "Slimbus2 Playback", 0, 0, 0, 0),
23149 SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_RX", "Slimbus5 Playback", 0, 0, 0, 0),
23150 SND_SOC_DAPM_AIF_OUT("HDMI", "HDMI Playback", 0, 0, 0, 0),
23151 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT", "Display Port Playback",
23152 0, 0, 0, 0),
Karthikeyan Mani57550082018-05-03 18:43:58 -070023153 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT1", "Display Port1 Playback",
23154 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023155 SND_SOC_DAPM_AIF_OUT("MI2S_RX", "MI2S Playback", 0, 0, 0, 0),
23156 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_RX", "Quaternary MI2S Playback",
23157 0, 0, 0, 0),
23158 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_RX", "Tertiary MI2S Playback",
23159 0, 0, 0, 0),
23160 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX", "Secondary MI2S Playback",
23161 0, 0, 0, 0),
23162 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX_SD1",
23163 "Secondary MI2S Playback SD1",
23164 0, 0, 0, 0),
23165 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_RX", "Primary MI2S Playback",
23166 0, 0, 0, 0),
23167 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_RX", "INT0 MI2S Playback",
23168 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023169 SND_SOC_DAPM_AIF_OUT("INT2_MI2S_RX", "INT2 MI2S Playback",
23170 0, 0, 0, 0),
23171 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_RX", "INT3 MI2S Playback",
23172 0, 0, 0, 0),
23173 SND_SOC_DAPM_AIF_OUT("INT5_MI2S_RX", "INT5 MI2S Playback",
23174 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023175 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_RX", "INT4 MI2S Playback",
23176 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023177 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_TX", "INT4 MI2S Capture",
23178 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023179 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_RX", "Quinary MI2S Playback",
23180 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023181 SND_SOC_DAPM_AIF_OUT("SEN_MI2S_RX", "Senary MI2S Playback",
23182 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023183 SND_SOC_DAPM_AIF_IN("PRI_I2S_TX", "Primary I2S Capture", 0, 0, 0, 0),
23184 SND_SOC_DAPM_AIF_IN("MI2S_TX", "MI2S Capture", 0, 0, 0, 0),
23185 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_TX", "Quaternary MI2S Capture",
23186 0, 0, 0, 0),
23187 SND_SOC_DAPM_AIF_IN("PRI_MI2S_TX", "Primary MI2S Capture",
23188 0, 0, 0, 0),
23189 SND_SOC_DAPM_AIF_IN("TERT_MI2S_TX", "Tertiary MI2S Capture",
23190 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023191 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_TX", "INT0 MI2S Capture",
23192 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023193 SND_SOC_DAPM_AIF_IN("INT2_MI2S_TX", "INT2 MI2S Capture",
23194 0, 0, 0, 0),
23195 SND_SOC_DAPM_AIF_IN("INT3_MI2S_TX", "INT3 MI2S Capture",
23196 0, 0, 0, 0),
23197 SND_SOC_DAPM_AIF_IN("SEC_MI2S_TX", "Secondary MI2S Capture",
23198 0, 0, 0, 0),
23199 SND_SOC_DAPM_AIF_IN("SLIMBUS_0_TX", "Slimbus Capture", 0, 0, 0, 0),
23200 SND_SOC_DAPM_AIF_IN("SLIMBUS_2_TX", "Slimbus2 Capture", 0, 0, 0, 0),
23201 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_TX", "Quinary MI2S Capture",
23202 0, 0, 0, 0),
23203 SND_SOC_DAPM_AIF_IN("SENARY_MI2S_TX", "Senary MI2S Capture",
23204 0, 0, 0, 0),
23205 SND_SOC_DAPM_AIF_OUT("INT_BT_SCO_RX", "Internal BT-SCO Playback",
23206 0, 0, 0, 0),
23207 SND_SOC_DAPM_AIF_IN("INT_BT_SCO_TX", "Internal BT-SCO Capture",
23208 0, 0, 0, 0),
23209 SND_SOC_DAPM_AIF_OUT("INT_BT_A2DP_RX", "Internal BT-A2DP Playback",
23210 0, 0, 0, 0),
23211 SND_SOC_DAPM_AIF_OUT("INT_FM_RX", "Internal FM Playback",
23212 0, 0, 0, 0),
23213 SND_SOC_DAPM_AIF_IN("INT_FM_TX", "Internal FM Capture",
23214 0, 0, 0, 0),
23215 SND_SOC_DAPM_AIF_OUT("PCM_RX", "AFE Playback",
23216 0, 0, 0, 0),
23217 SND_SOC_DAPM_AIF_IN("PCM_TX", "AFE Capture",
23218 0, 0, 0, 0),
23219 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_0", "Primary TDM0 Playback",
23220 0, 0, 0, 0),
23221 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_0", "Primary TDM0 Capture",
23222 0, 0, 0, 0),
23223 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_1", "Primary TDM1 Playback",
23224 0, 0, 0, 0),
23225 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_1", "Primary TDM1 Capture",
23226 0, 0, 0, 0),
23227 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_2", "Primary TDM2 Playback",
23228 0, 0, 0, 0),
23229 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_2", "Primary TDM2 Capture",
23230 0, 0, 0, 0),
23231 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_3", "Primary TDM3 Playback",
23232 0, 0, 0, 0),
23233 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_3", "Primary TDM3 Capture",
23234 0, 0, 0, 0),
23235 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_4", "Primary TDM4 Playback",
23236 0, 0, 0, 0),
23237 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_4", "Primary TDM4 Capture",
23238 0, 0, 0, 0),
23239 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_5", "Primary TDM5 Playback",
23240 0, 0, 0, 0),
23241 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_5", "Primary TDM5 Capture",
23242 0, 0, 0, 0),
23243 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_6", "Primary TDM6 Playback",
23244 0, 0, 0, 0),
23245 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_6", "Primary TDM6 Capture",
23246 0, 0, 0, 0),
23247 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_7", "Primary TDM7 Playback",
23248 0, 0, 0, 0),
23249 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_7", "Primary TDM7 Capture",
23250 0, 0, 0, 0),
23251 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_0", "Secondary TDM0 Playback",
23252 0, 0, 0, 0),
23253 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_0", "Secondary TDM0 Capture",
23254 0, 0, 0, 0),
23255 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_1", "Secondary TDM1 Playback",
23256 0, 0, 0, 0),
23257 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_1", "Secondary TDM1 Capture",
23258 0, 0, 0, 0),
23259 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_2", "Secondary TDM2 Playback",
23260 0, 0, 0, 0),
23261 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_2", "Secondary TDM2 Capture",
23262 0, 0, 0, 0),
23263 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_3", "Secondary TDM3 Playback",
23264 0, 0, 0, 0),
23265 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_3", "Secondary TDM3 Capture",
23266 0, 0, 0, 0),
23267 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_4", "Secondary TDM4 Playback",
23268 0, 0, 0, 0),
23269 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_4", "Secondary TDM4 Capture",
23270 0, 0, 0, 0),
23271 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_5", "Secondary TDM5 Playback",
23272 0, 0, 0, 0),
23273 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_5", "Secondary TDM5 Capture",
23274 0, 0, 0, 0),
23275 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_6", "Secondary TDM6 Playback",
23276 0, 0, 0, 0),
23277 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_6", "Secondary TDM6 Capture",
23278 0, 0, 0, 0),
23279 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_7", "Secondary TDM7 Playback",
23280 0, 0, 0, 0),
23281 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_7", "Secondary TDM7 Capture",
23282 0, 0, 0, 0),
23283 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_0", "Tertiary TDM0 Playback",
23284 0, 0, 0, 0),
23285 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_0", "Tertiary TDM0 Capture",
23286 0, 0, 0, 0),
23287 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_1", "Tertiary TDM1 Playback",
23288 0, 0, 0, 0),
23289 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_1", "Tertiary TDM1 Capture",
23290 0, 0, 0, 0),
23291 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_2", "Tertiary TDM2 Playback",
23292 0, 0, 0, 0),
23293 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_2", "Tertiary TDM2 Capture",
23294 0, 0, 0, 0),
23295 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_3", "Tertiary TDM3 Playback",
23296 0, 0, 0, 0),
23297 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_3", "Tertiary TDM3 Capture",
23298 0, 0, 0, 0),
23299 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_4", "Tertiary TDM4 Playback",
23300 0, 0, 0, 0),
23301 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_4", "Tertiary TDM4 Capture",
23302 0, 0, 0, 0),
23303 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_5", "Tertiary TDM5 Playback",
23304 0, 0, 0, 0),
23305 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_5", "Tertiary TDM5 Capture",
23306 0, 0, 0, 0),
23307 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_6", "Tertiary TDM6 Playback",
23308 0, 0, 0, 0),
23309 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_6", "Tertiary TDM6 Capture",
23310 0, 0, 0, 0),
23311 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_7", "Tertiary TDM7 Playback",
23312 0, 0, 0, 0),
23313 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_7", "Tertiary TDM7 Capture",
23314 0, 0, 0, 0),
23315 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_0", "Quaternary TDM0 Playback",
23316 0, 0, 0, 0),
23317 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_0", "Quaternary TDM0 Capture",
23318 0, 0, 0, 0),
23319 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_1", "Quaternary TDM1 Playback",
23320 0, 0, 0, 0),
23321 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_1", "Quaternary TDM1 Capture",
23322 0, 0, 0, 0),
23323 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_2", "Quaternary TDM2 Playback",
23324 0, 0, 0, 0),
23325 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_2", "Quaternary TDM2 Capture",
23326 0, 0, 0, 0),
23327 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_3", "Quaternary TDM3 Playback",
23328 0, 0, 0, 0),
23329 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_3", "Quaternary TDM3 Capture",
23330 0, 0, 0, 0),
23331 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_4", "Quaternary TDM4 Playback",
23332 0, 0, 0, 0),
23333 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_4", "Quaternary TDM4 Capture",
23334 0, 0, 0, 0),
23335 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_5", "Quaternary TDM5 Playback",
23336 0, 0, 0, 0),
23337 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_5", "Quaternary TDM5 Capture",
23338 0, 0, 0, 0),
23339 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_6", "Quaternary TDM6 Playback",
23340 0, 0, 0, 0),
23341 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_6", "Quaternary TDM6 Capture",
23342 0, 0, 0, 0),
23343 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_7", "Quaternary TDM7 Playback",
23344 0, 0, 0, 0),
23345 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_7", "Quaternary TDM7 Capture",
23346 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053023347 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_0", "Quinary TDM0 Playback",
23348 0, 0, 0, 0),
23349 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_0", "Quinary TDM0 Capture",
23350 0, 0, 0, 0),
23351 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_1", "Quinary TDM1 Playback",
23352 0, 0, 0, 0),
23353 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_1", "Quinary TDM1 Capture",
23354 0, 0, 0, 0),
23355 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_2", "Quinary TDM2 Playback",
23356 0, 0, 0, 0),
23357 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_2", "Quinary TDM2 Capture",
23358 0, 0, 0, 0),
23359 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_3", "Quinary TDM3 Playback",
23360 0, 0, 0, 0),
23361 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_3", "Quinary TDM3 Capture",
23362 0, 0, 0, 0),
23363 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_4", "Quinary TDM4 Playback",
23364 0, 0, 0, 0),
23365 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_4", "Quinary TDM4 Capture",
23366 0, 0, 0, 0),
23367 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_5", "Quinary TDM5 Playback",
23368 0, 0, 0, 0),
23369 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_5", "Quinary TDM5 Capture",
23370 0, 0, 0, 0),
23371 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_6", "Quinary TDM6 Playback",
23372 0, 0, 0, 0),
23373 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_6", "Quinary TDM6 Capture",
23374 0, 0, 0, 0),
23375 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_7", "Quinary TDM7 Playback",
23376 0, 0, 0, 0),
23377 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_7", "Quinary TDM7 Capture",
23378 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023379 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_0", "Senary TDM0 Playback",
23380 0, 0, 0, 0),
23381 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_0", "Senary TDM0 Capture",
23382 0, 0, 0, 0),
23383 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_1", "Senary TDM1 Playback",
23384 0, 0, 0, 0),
23385 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_1", "Senary TDM1 Capture",
23386 0, 0, 0, 0),
23387 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_2", "Senary TDM2 Playback",
23388 0, 0, 0, 0),
23389 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_2", "Senary TDM2 Capture",
23390 0, 0, 0, 0),
23391 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_3", "Senary TDM3 Playback",
23392 0, 0, 0, 0),
23393 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_3", "Senary TDM3 Capture",
23394 0, 0, 0, 0),
23395 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_4", "Senary TDM4 Playback",
23396 0, 0, 0, 0),
23397 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_4", "Senary TDM4 Capture",
23398 0, 0, 0, 0),
23399 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_5", "Senary TDM5 Playback",
23400 0, 0, 0, 0),
23401 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_5", "Senary TDM5 Capture",
23402 0, 0, 0, 0),
23403 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_6", "Senary TDM6 Playback",
23404 0, 0, 0, 0),
23405 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_6", "Senary TDM6 Capture",
23406 0, 0, 0, 0),
23407 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_7", "Senary TDM7 Playback",
23408 0, 0, 0, 0),
23409 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_7", "Senary TDM7 Capture",
23410 0, 0, 0, 0),
Ralf Herz29e07132019-07-26 15:15:21 +020023411 SND_SOC_DAPM_AIF_OUT("PRI_META_MI2S_RX", "Primary META MI2S Playback",
23412 0, 0, 0, 0),
23413 SND_SOC_DAPM_AIF_OUT("SEC_META_MI2S_RX", "Secondary META MI2S Playback",
23414 0, 0, 0, 0),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023415 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_0", "WSA CDC DMA0 Playback",
23416 0, 0, 0, 0),
23417 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_0", "WSA CDC DMA0 Capture",
23418 0, 0, 0, 0),
23419 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_1", "WSA CDC DMA1 Playback",
23420 0, 0, 0, 0),
23421 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_1", "WSA CDC DMA1 Capture",
23422 0, 0, 0, 0),
23423 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_2", "WSA CDC DMA2 Capture",
23424 0, 0, 0, 0),
23425 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_0", "VA CDC DMA0 Capture",
23426 0, 0, 0, 0),
23427 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_1", "VA CDC DMA1 Capture",
23428 0, 0, 0, 0),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080023429 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_2", "VA CDC DMA2 Capture",
23430 0, 0, 0, 0),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023431 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_0", "RX CDC DMA0 Playback",
23432 0, 0, 0, 0),
23433 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_0", "TX CDC DMA0 Capture",
23434 0, 0, 0, 0),
23435 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_1", "RX CDC DMA1 Playback",
23436 0, 0, 0, 0),
23437 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_1", "TX CDC DMA1 Capture",
23438 0, 0, 0, 0),
23439 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_2", "RX CDC DMA2 Playback",
23440 0, 0, 0, 0),
23441 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_2", "TX CDC DMA2 Capture",
23442 0, 0, 0, 0),
23443 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_3", "RX CDC DMA3 Playback",
23444 0, 0, 0, 0),
23445 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_3", "TX CDC DMA3 Capture",
23446 0, 0, 0, 0),
23447 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_4", "RX CDC DMA4 Playback",
23448 0, 0, 0, 0),
23449 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_4", "TX CDC DMA4 Capture",
23450 0, 0, 0, 0),
23451 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_5", "RX CDC DMA5 Playback",
23452 0, 0, 0, 0),
23453 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_5", "TX CDC DMA5 Capture",
23454 0, 0, 0, 0),
23455 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_6", "RX CDC DMA6 Playback",
23456 0, 0, 0, 0),
23457 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_7", "RX CDC DMA7 Playback",
23458 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023459 /* incall */
23460 SND_SOC_DAPM_AIF_OUT("VOICE_PLAYBACK_TX", "Voice Farend Playback",
23461 0, 0, 0, 0),
23462 SND_SOC_DAPM_AIF_OUT("VOICE2_PLAYBACK_TX", "Voice2 Farend Playback",
23463 0, 0, 0, 0),
23464 SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_RX", "Slimbus4 Playback",
23465 0, 0, 0, 0),
23466 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_TX", "Voice Uplink Capture",
23467 0, 0, 0, 0),
23468 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_RX", "Voice Downlink Capture",
23469 0, 0, 0, 0),
23470 SND_SOC_DAPM_AIF_IN("SLIMBUS_4_TX", "Slimbus4 Capture",
23471 0, 0, 0, 0),
23472 SND_SOC_DAPM_AIF_IN("SENARY_TX", "Senary_mi2s Capture",
23473 0, 0, 0, 0),
23474 SND_SOC_DAPM_AIF_IN("INT5_MI2S_TX", "INT5 MI2S Capture",
23475 0, 0, 0, 0),
23476 SND_SOC_DAPM_AIF_IN("SLIMBUS_5_TX", "Slimbus5 Capture", 0, 0, 0, 0),
23477
23478 SND_SOC_DAPM_AIF_OUT("AUX_PCM_RX", "AUX PCM Playback", 0, 0, 0, 0),
23479 SND_SOC_DAPM_AIF_IN("AUX_PCM_TX", "AUX PCM Capture", 0, 0, 0, 0),
23480 SND_SOC_DAPM_AIF_OUT("SEC_AUX_PCM_RX", "Sec AUX PCM Playback",
23481 0, 0, 0, 0),
23482 SND_SOC_DAPM_AIF_IN("SEC_AUX_PCM_TX", "Sec AUX PCM Capture",
23483 0, 0, 0, 0),
23484 SND_SOC_DAPM_AIF_OUT("TERT_AUX_PCM_RX", "Tert AUX PCM Playback",
23485 0, 0, 0, 0),
23486 SND_SOC_DAPM_AIF_IN("TERT_AUX_PCM_TX", "Tert AUX PCM Capture",
23487 0, 0, 0, 0),
23488 SND_SOC_DAPM_AIF_OUT("QUAT_AUX_PCM_RX", "Quat AUX PCM Playback",
23489 0, 0, 0, 0),
23490 SND_SOC_DAPM_AIF_IN("QUAT_AUX_PCM_TX", "Quat AUX PCM Capture",
23491 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053023492 SND_SOC_DAPM_AIF_OUT("QUIN_AUX_PCM_RX", "Quin AUX PCM Playback",
23493 0, 0, 0, 0),
23494 SND_SOC_DAPM_AIF_IN("QUIN_AUX_PCM_TX", "Quin AUX PCM Capture",
23495 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023496 SND_SOC_DAPM_AIF_OUT("SEN_AUX_PCM_RX", "Sen AUX PCM Playback",
23497 0, 0, 0, 0),
23498 SND_SOC_DAPM_AIF_IN("SEN_AUX_PCM_TX", "Sen AUX PCM Capture",
23499 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023500 SND_SOC_DAPM_AIF_IN("VOICE_STUB_DL", "VOICE_STUB Playback", 0, 0, 0, 0),
23501 SND_SOC_DAPM_AIF_OUT("VOICE_STUB_UL", "VOICE_STUB Capture", 0, 0, 0, 0),
23502 SND_SOC_DAPM_AIF_IN("VOICE2_STUB_DL", "VOICE2_STUB Playback",
23503 0, 0, 0, 0),
23504 SND_SOC_DAPM_AIF_OUT("VOICE2_STUB_UL", "VOICE2_STUB Capture",
23505 0, 0, 0, 0),
23506 SND_SOC_DAPM_AIF_IN("VOLTE_STUB_DL", "VOLTE_STUB Playback", 0, 0, 0, 0),
23507 SND_SOC_DAPM_AIF_OUT("VOLTE_STUB_UL", "VOLTE_STUB Capture", 0, 0, 0, 0),
23508 SND_SOC_DAPM_AIF_OUT("STUB_RX", "Stub Playback", 0, 0, 0, 0),
23509 SND_SOC_DAPM_AIF_IN("STUB_TX", "Stub Capture", 0, 0, 0, 0),
23510 SND_SOC_DAPM_AIF_OUT("SLIMBUS_1_RX", "Slimbus1 Playback", 0, 0, 0, 0),
23511 SND_SOC_DAPM_AIF_IN("SLIMBUS_1_TX", "Slimbus1 Capture", 0, 0, 0, 0),
23512 SND_SOC_DAPM_AIF_IN("STUB_1_TX", "Stub1 Capture", 0, 0, 0, 0),
23513 SND_SOC_DAPM_AIF_OUT("SLIMBUS_3_RX", "Slimbus3 Playback", 0, 0, 0, 0),
23514 SND_SOC_DAPM_AIF_IN("SLIMBUS_3_TX", "Slimbus3 Capture", 0, 0, 0, 0),
23515 /* In- call recording */
23516 SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_RX", "Slimbus6 Playback", 0, 0, 0, 0),
23517 SND_SOC_DAPM_AIF_IN("SLIMBUS_6_TX", "Slimbus6 Capture", 0, 0, 0, 0),
Surendar Karkad47fda42018-05-20 19:21:10 +053023518 SND_SOC_DAPM_AIF_IN("AFE_LOOPBACK_TX", "AFE Loopback Capture",
23519 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023520 SND_SOC_DAPM_AIF_OUT("SLIMBUS_7_RX", "Slimbus7 Playback", 0, 0, 0, 0),
23521 SND_SOC_DAPM_AIF_IN("SLIMBUS_7_TX", "Slimbus7 Capture", 0, 0, 0, 0),
23522
23523 SND_SOC_DAPM_AIF_OUT("SLIMBUS_8_RX", "Slimbus8 Playback", 0, 0, 0, 0),
23524 SND_SOC_DAPM_AIF_IN("SLIMBUS_8_TX", "Slimbus8 Capture", 0, 0, 0, 0),
Surendar Karka3ef3d812018-09-28 18:52:35 +053023525 SND_SOC_DAPM_AIF_OUT("SLIMBUS_9_RX", "Slimbus9 Playback", 0, 0, 0, 0),
23526 SND_SOC_DAPM_AIF_IN("SLIMBUS_9_TX", "Slimbus9 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023527 SND_SOC_DAPM_AIF_OUT("USB_AUDIO_RX", "USB Audio Playback", 0, 0, 0, 0),
23528 SND_SOC_DAPM_AIF_IN("USB_AUDIO_TX", "USB Audio Capture", 0, 0, 0, 0),
23529
23530 /* Switch Definitions */
23531 SND_SOC_DAPM_SWITCH("SLIMBUS_DL_HL", SND_SOC_NOPM, 0, 0,
23532 &slim_fm_switch_mixer_controls),
23533 SND_SOC_DAPM_SWITCH("SLIMBUS1_DL_HL", SND_SOC_NOPM, 0, 0,
23534 &slim1_fm_switch_mixer_controls),
23535 SND_SOC_DAPM_SWITCH("SLIMBUS3_DL_HL", SND_SOC_NOPM, 0, 0,
23536 &slim3_fm_switch_mixer_controls),
23537 SND_SOC_DAPM_SWITCH("SLIMBUS4_DL_HL", SND_SOC_NOPM, 0, 0,
23538 &slim4_fm_switch_mixer_controls),
23539 SND_SOC_DAPM_SWITCH("SLIMBUS6_DL_HL", SND_SOC_NOPM, 0, 0,
23540 &slim6_fm_switch_mixer_controls),
23541 SND_SOC_DAPM_SWITCH("PCM_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23542 &pcm_rx_switch_mixer_controls),
23543 SND_SOC_DAPM_SWITCH("INT0_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23544 &int0_mi2s_rx_switch_mixer_controls),
23545 SND_SOC_DAPM_SWITCH("INT4_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23546 &int4_mi2s_rx_switch_mixer_controls),
23547 SND_SOC_DAPM_SWITCH("PRI_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23548 &pri_mi2s_rx_switch_mixer_controls),
23549 SND_SOC_DAPM_SWITCH("SEC_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23550 &sec_mi2s_rx_switch_mixer_controls),
23551 SND_SOC_DAPM_SWITCH("TERT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23552 &tert_mi2s_rx_switch_mixer_controls),
23553 SND_SOC_DAPM_SWITCH("QUAT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23554 &quat_mi2s_rx_switch_mixer_controls),
Rohit Kumara5077932017-09-10 22:05:05 +053023555 SND_SOC_DAPM_SWITCH("QUIN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23556 &quin_mi2s_rx_switch_mixer_controls),
Zhou Songcaa541d2019-02-19 18:37:47 +080023557 SND_SOC_DAPM_SWITCH("SCO_SLIM7_DL_HL", SND_SOC_NOPM, 0, 0,
23558 &sco_slim7_switch_mixer_controls),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023559 SND_SOC_DAPM_SWITCH("SEN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23560 &sen_mi2s_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023561 SND_SOC_DAPM_SWITCH("HFP_PRI_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
23562 &hfp_pri_aux_switch_mixer_controls),
23563 SND_SOC_DAPM_SWITCH("HFP_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
23564 &hfp_aux_switch_mixer_controls),
23565 SND_SOC_DAPM_SWITCH("HFP_INT_UL_HL", SND_SOC_NOPM, 0, 0,
23566 &hfp_int_switch_mixer_controls),
23567 SND_SOC_DAPM_SWITCH("HFP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
23568 &hfp_slim7_switch_mixer_controls),
23569 SND_SOC_DAPM_SWITCH("USB_DL_HL", SND_SOC_NOPM, 0, 0,
23570 &usb_switch_mixer_controls),
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080023571 SND_SOC_DAPM_SWITCH("A2DP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
23572 &a2dp_slim7_switch_mixer_controls),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053023573 SND_SOC_DAPM_SWITCH("WSA_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053023574 &cdc_dma_wsa_switch_mixer_controls),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053023575 SND_SOC_DAPM_SWITCH("RX_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053023576 &cdc_dma_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023577
23578 /* Mixer definitions */
23579 SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23580 pri_i2s_rx_mixer_controls, ARRAY_SIZE(pri_i2s_rx_mixer_controls)),
23581 SND_SOC_DAPM_MIXER("SEC_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23582 sec_i2s_rx_mixer_controls, ARRAY_SIZE(sec_i2s_rx_mixer_controls)),
23583 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23584 slimbus_rx_mixer_controls, ARRAY_SIZE(slimbus_rx_mixer_controls)),
23585 SND_SOC_DAPM_MIXER("SLIMBUS_2_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23586 slimbus_2_rx_mixer_controls, ARRAY_SIZE(slimbus_2_rx_mixer_controls)),
23587 SND_SOC_DAPM_MIXER("SLIMBUS_5_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23588 slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
23589 SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23590 slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
Surendar Karka3ef3d812018-09-28 18:52:35 +053023591 SND_SOC_DAPM_MIXER("SLIMBUS_9_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23592 slimbus_9_rx_mixer_controls, ARRAY_SIZE(slimbus_9_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023593 SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
23594 hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
23595 SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
23596 display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070023597 SND_SOC_DAPM_MIXER("DISPLAY_PORT1 Mixer", SND_SOC_NOPM, 0, 0,
23598 display_port1_mixer_controls, ARRAY_SIZE(display_port1_mixer_controls)),
Ralf Herzc8701f72018-06-20 11:37:35 +020023599 SND_SOC_DAPM_MIXER("PRI_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23600 pri_spdif_rx_mixer_controls, ARRAY_SIZE(pri_spdif_rx_mixer_controls)),
23601 SND_SOC_DAPM_MIXER("SEC_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23602 sec_spdif_rx_mixer_controls, ARRAY_SIZE(sec_spdif_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023603 SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23604 mi2s_rx_mixer_controls, ARRAY_SIZE(mi2s_rx_mixer_controls)),
23605 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23606 quaternary_mi2s_rx_mixer_controls,
23607 ARRAY_SIZE(quaternary_mi2s_rx_mixer_controls)),
23608 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23609 tertiary_mi2s_rx_mixer_controls,
23610 ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
23611 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23612 secondary_mi2s_rx_mixer_controls,
23613 ARRAY_SIZE(secondary_mi2s_rx_mixer_controls)),
23614 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_SD1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23615 secondary_mi2s_rx2_mixer_controls,
23616 ARRAY_SIZE(secondary_mi2s_rx2_mixer_controls)),
23617 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23618 primary_mi2s_rx_mixer_controls,
23619 ARRAY_SIZE(primary_mi2s_rx_mixer_controls)),
23620 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23621 int0_mi2s_rx_mixer_controls,
23622 ARRAY_SIZE(int0_mi2s_rx_mixer_controls)),
23623 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23624 int4_mi2s_rx_mixer_controls,
23625 ARRAY_SIZE(int4_mi2s_rx_mixer_controls)),
23626 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23627 quinary_mi2s_rx_mixer_controls,
23628 ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023629 SND_SOC_DAPM_MIXER("SEN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23630 senary_mi2s_rx_mixer_controls,
23631 ARRAY_SIZE(senary_mi2s_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023632 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23633 pri_tdm_rx_0_mixer_controls,
23634 ARRAY_SIZE(pri_tdm_rx_0_mixer_controls)),
23635 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23636 pri_tdm_rx_1_mixer_controls,
23637 ARRAY_SIZE(pri_tdm_rx_1_mixer_controls)),
23638 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23639 pri_tdm_rx_2_mixer_controls,
23640 ARRAY_SIZE(pri_tdm_rx_2_mixer_controls)),
23641 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23642 pri_tdm_rx_3_mixer_controls,
23643 ARRAY_SIZE(pri_tdm_rx_3_mixer_controls)),
23644 SND_SOC_DAPM_MIXER("PRI_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23645 pri_tdm_tx_0_mixer_controls,
23646 ARRAY_SIZE(pri_tdm_tx_0_mixer_controls)),
23647 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23648 sec_tdm_rx_0_mixer_controls,
23649 ARRAY_SIZE(sec_tdm_rx_0_mixer_controls)),
23650 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23651 sec_tdm_rx_1_mixer_controls,
23652 ARRAY_SIZE(sec_tdm_rx_1_mixer_controls)),
23653 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23654 sec_tdm_rx_2_mixer_controls,
23655 ARRAY_SIZE(sec_tdm_rx_2_mixer_controls)),
23656 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23657 sec_tdm_rx_3_mixer_controls,
23658 ARRAY_SIZE(sec_tdm_rx_3_mixer_controls)),
23659 SND_SOC_DAPM_MIXER("SEC_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23660 sec_tdm_tx_0_mixer_controls,
23661 ARRAY_SIZE(sec_tdm_tx_0_mixer_controls)),
23662 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23663 tert_tdm_rx_0_mixer_controls,
23664 ARRAY_SIZE(tert_tdm_rx_0_mixer_controls)),
23665 SND_SOC_DAPM_MIXER("TERT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23666 tert_tdm_tx_0_mixer_controls,
23667 ARRAY_SIZE(tert_tdm_tx_0_mixer_controls)),
23668 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23669 tert_tdm_rx_1_mixer_controls,
23670 ARRAY_SIZE(tert_tdm_rx_1_mixer_controls)),
23671 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23672 tert_tdm_rx_2_mixer_controls,
23673 ARRAY_SIZE(tert_tdm_rx_2_mixer_controls)),
23674 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23675 tert_tdm_rx_3_mixer_controls,
23676 ARRAY_SIZE(tert_tdm_rx_3_mixer_controls)),
23677 SND_SOC_DAPM_MIXER("TERT_TDM_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
23678 tert_tdm_rx_4_mixer_controls,
23679 ARRAY_SIZE(tert_tdm_rx_4_mixer_controls)),
23680 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23681 quat_tdm_rx_0_mixer_controls,
23682 ARRAY_SIZE(quat_tdm_rx_0_mixer_controls)),
23683 SND_SOC_DAPM_MIXER("QUAT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23684 quat_tdm_tx_0_mixer_controls,
23685 ARRAY_SIZE(quat_tdm_tx_0_mixer_controls)),
23686 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23687 quat_tdm_rx_1_mixer_controls,
23688 ARRAY_SIZE(quat_tdm_rx_1_mixer_controls)),
23689 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23690 quat_tdm_rx_2_mixer_controls,
23691 ARRAY_SIZE(quat_tdm_rx_2_mixer_controls)),
23692 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23693 quat_tdm_rx_3_mixer_controls,
23694 ARRAY_SIZE(quat_tdm_rx_3_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053023695 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23696 quin_tdm_rx_0_mixer_controls,
23697 ARRAY_SIZE(quin_tdm_rx_0_mixer_controls)),
23698 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23699 quin_tdm_tx_0_mixer_controls,
23700 ARRAY_SIZE(quin_tdm_tx_0_mixer_controls)),
23701 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23702 quin_tdm_rx_1_mixer_controls,
23703 ARRAY_SIZE(quin_tdm_rx_1_mixer_controls)),
23704 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23705 quin_tdm_rx_2_mixer_controls,
23706 ARRAY_SIZE(quin_tdm_rx_2_mixer_controls)),
23707 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23708 quin_tdm_rx_3_mixer_controls,
23709 ARRAY_SIZE(quin_tdm_rx_3_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023710 SND_SOC_DAPM_MIXER("SEN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23711 sen_tdm_tx_0_mixer_controls,
23712 ARRAY_SIZE(sen_tdm_tx_0_mixer_controls)),
23713 SND_SOC_DAPM_MIXER("SEN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23714 sen_tdm_rx_0_mixer_controls,
23715 ARRAY_SIZE(sen_tdm_rx_0_mixer_controls)),
23716 SND_SOC_DAPM_MIXER("SEN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23717 sen_tdm_rx_1_mixer_controls,
23718 ARRAY_SIZE(sen_tdm_rx_1_mixer_controls)),
23719 SND_SOC_DAPM_MIXER("SEN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23720 sen_tdm_rx_2_mixer_controls,
23721 ARRAY_SIZE(sen_tdm_rx_2_mixer_controls)),
23722 SND_SOC_DAPM_MIXER("SEN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23723 sen_tdm_rx_3_mixer_controls,
23724 ARRAY_SIZE(sen_tdm_rx_3_mixer_controls)),
Ralf Herz29e07132019-07-26 15:15:21 +020023725 SND_SOC_DAPM_MIXER("PRI_META_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23726 pri_meta_mi2s_rx_mixer_controls,
23727 ARRAY_SIZE(pri_meta_mi2s_rx_mixer_controls)),
23728 SND_SOC_DAPM_MIXER("SEC_META_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23729 sec_meta_mi2s_rx_mixer_controls,
23730 ARRAY_SIZE(sec_meta_mi2s_rx_mixer_controls)),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023731 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23732 wsa_cdc_dma_rx_0_mixer_controls,
23733 ARRAY_SIZE(wsa_cdc_dma_rx_0_mixer_controls)),
23734 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23735 wsa_cdc_dma_rx_1_mixer_controls,
23736 ARRAY_SIZE(wsa_cdc_dma_rx_1_mixer_controls)),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023737 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23738 rx_cdc_dma_rx_0_mixer_controls,
23739 ARRAY_SIZE(rx_cdc_dma_rx_0_mixer_controls)),
23740 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23741 rx_cdc_dma_rx_1_mixer_controls,
23742 ARRAY_SIZE(rx_cdc_dma_rx_1_mixer_controls)),
23743 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23744 rx_cdc_dma_rx_2_mixer_controls,
23745 ARRAY_SIZE(rx_cdc_dma_rx_2_mixer_controls)),
23746 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23747 rx_cdc_dma_rx_3_mixer_controls,
23748 ARRAY_SIZE(rx_cdc_dma_rx_3_mixer_controls)),
23749 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
23750 rx_cdc_dma_rx_4_mixer_controls,
23751 ARRAY_SIZE(rx_cdc_dma_rx_4_mixer_controls)),
23752 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_5 Audio Mixer", SND_SOC_NOPM, 0, 0,
23753 rx_cdc_dma_rx_5_mixer_controls,
23754 ARRAY_SIZE(rx_cdc_dma_rx_5_mixer_controls)),
23755 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_6 Audio Mixer", SND_SOC_NOPM, 0, 0,
23756 rx_cdc_dma_rx_6_mixer_controls,
23757 ARRAY_SIZE(rx_cdc_dma_rx_6_mixer_controls)),
23758 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_7 Audio Mixer", SND_SOC_NOPM, 0, 0,
23759 rx_cdc_dma_rx_7_mixer_controls,
23760 ARRAY_SIZE(rx_cdc_dma_rx_7_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023761 SND_SOC_DAPM_MIXER("MultiMedia1 Mixer", SND_SOC_NOPM, 0, 0,
23762 mmul1_mixer_controls, ARRAY_SIZE(mmul1_mixer_controls)),
23763 SND_SOC_DAPM_MIXER("MultiMedia2 Mixer", SND_SOC_NOPM, 0, 0,
23764 mmul2_mixer_controls, ARRAY_SIZE(mmul2_mixer_controls)),
23765 SND_SOC_DAPM_MIXER("MultiMedia3 Mixer", SND_SOC_NOPM, 0, 0,
23766 mmul3_mixer_controls, ARRAY_SIZE(mmul3_mixer_controls)),
23767 SND_SOC_DAPM_MIXER("MultiMedia4 Mixer", SND_SOC_NOPM, 0, 0,
23768 mmul4_mixer_controls, ARRAY_SIZE(mmul4_mixer_controls)),
23769 SND_SOC_DAPM_MIXER("MultiMedia5 Mixer", SND_SOC_NOPM, 0, 0,
23770 mmul5_mixer_controls, ARRAY_SIZE(mmul5_mixer_controls)),
23771 SND_SOC_DAPM_MIXER("MultiMedia6 Mixer", SND_SOC_NOPM, 0, 0,
23772 mmul6_mixer_controls, ARRAY_SIZE(mmul6_mixer_controls)),
23773 SND_SOC_DAPM_MIXER("MultiMedia8 Mixer", SND_SOC_NOPM, 0, 0,
23774 mmul8_mixer_controls, ARRAY_SIZE(mmul8_mixer_controls)),
23775 SND_SOC_DAPM_MIXER("MultiMedia9 Mixer", SND_SOC_NOPM, 0, 0,
23776 mmul9_mixer_controls, ARRAY_SIZE(mmul9_mixer_controls)),
Laxminath Kasam38070be2017-08-17 18:21:59 +053023777 SND_SOC_DAPM_MIXER("MultiMedia10 Mixer", SND_SOC_NOPM, 0, 0,
23778 mmul10_mixer_controls, ARRAY_SIZE(mmul10_mixer_controls)),
Asish Bhattacharya34504582017-08-08 12:55:01 +053023779 SND_SOC_DAPM_MIXER("MultiMedia16 Mixer", SND_SOC_NOPM, 0, 0,
23780 mmul16_mixer_controls, ARRAY_SIZE(mmul16_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023781 SND_SOC_DAPM_MIXER("MultiMedia17 Mixer", SND_SOC_NOPM, 0, 0,
23782 mmul17_mixer_controls, ARRAY_SIZE(mmul17_mixer_controls)),
23783 SND_SOC_DAPM_MIXER("MultiMedia18 Mixer", SND_SOC_NOPM, 0, 0,
23784 mmul18_mixer_controls, ARRAY_SIZE(mmul18_mixer_controls)),
23785 SND_SOC_DAPM_MIXER("MultiMedia19 Mixer", SND_SOC_NOPM, 0, 0,
23786 mmul19_mixer_controls, ARRAY_SIZE(mmul19_mixer_controls)),
23787 SND_SOC_DAPM_MIXER("MultiMedia20 Mixer", SND_SOC_NOPM, 0, 0,
23788 mmul20_mixer_controls, ARRAY_SIZE(mmul20_mixer_controls)),
Derek Chen07c6d1c2018-07-05 10:39:25 -070023789 SND_SOC_DAPM_MIXER("MultiMedia21 Mixer", SND_SOC_NOPM, 0, 0,
23790 mmul21_mixer_controls, ARRAY_SIZE(mmul21_mixer_controls)),
Derek Chenb097d922019-07-31 17:28:02 -070023791 SND_SOC_DAPM_MIXER("MultiMedia22 Mixer", SND_SOC_NOPM, 0, 0,
23792 mmul22_mixer_controls, ARRAY_SIZE(mmul22_mixer_controls)),
Surendar Karkac1cde372018-08-14 18:56:24 +053023793 SND_SOC_DAPM_MIXER("MultiMedia27 Mixer", SND_SOC_NOPM, 0, 0,
23794 mmul27_mixer_controls, ARRAY_SIZE(mmul27_mixer_controls)),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053023795 SND_SOC_DAPM_MIXER("MultiMedia28 Mixer", SND_SOC_NOPM, 0, 0,
23796 mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
23797 SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
23798 mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053023799 SND_SOC_DAPM_MIXER("MultiMedia30 Mixer", SND_SOC_NOPM, 0, 0,
23800 mmul30_mixer_controls, ARRAY_SIZE(mmul30_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023801 SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23802 auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
23803 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23804 sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
23805 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23806 tert_auxpcm_rx_mixer_controls,
23807 ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
23808 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23809 quat_auxpcm_rx_mixer_controls,
23810 ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053023811 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23812 quin_auxpcm_rx_mixer_controls,
23813 ARRAY_SIZE(quin_auxpcm_rx_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023814 SND_SOC_DAPM_MIXER("SEN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23815 sen_auxpcm_rx_mixer_controls,
23816 ARRAY_SIZE(sen_auxpcm_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023817 /* incall */
23818 SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
23819 incall_music_delivery_mixer_controls,
23820 ARRAY_SIZE(incall_music_delivery_mixer_controls)),
23821 SND_SOC_DAPM_MIXER("Incall_Music_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23822 incall_music2_delivery_mixer_controls,
23823 ARRAY_SIZE(incall_music2_delivery_mixer_controls)),
23824 SND_SOC_DAPM_MIXER("SLIMBUS_4_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23825 slimbus_4_rx_mixer_controls,
23826 ARRAY_SIZE(slimbus_4_rx_mixer_controls)),
23827 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23828 slimbus_6_rx_mixer_controls,
23829 ARRAY_SIZE(slimbus_6_rx_mixer_controls)),
23830 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23831 usb_audio_rx_mixer_controls,
23832 ARRAY_SIZE(usb_audio_rx_mixer_controls)),
23833 /* Voice Mixer */
23834 SND_SOC_DAPM_MIXER("PRI_RX_Voice Mixer",
23835 SND_SOC_NOPM, 0, 0, pri_rx_voice_mixer_controls,
23836 ARRAY_SIZE(pri_rx_voice_mixer_controls)),
23837 SND_SOC_DAPM_MIXER("SEC_RX_Voice Mixer",
23838 SND_SOC_NOPM, 0, 0,
23839 sec_i2s_rx_voice_mixer_controls,
23840 ARRAY_SIZE(sec_i2s_rx_voice_mixer_controls)),
23841 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_Voice Mixer",
23842 SND_SOC_NOPM, 0, 0,
23843 sec_mi2s_rx_voice_mixer_controls,
23844 ARRAY_SIZE(sec_mi2s_rx_voice_mixer_controls)),
23845 SND_SOC_DAPM_MIXER("SLIM_0_RX_Voice Mixer",
23846 SND_SOC_NOPM, 0, 0,
23847 slimbus_rx_voice_mixer_controls,
23848 ARRAY_SIZE(slimbus_rx_voice_mixer_controls)),
23849 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX_Voice Mixer",
23850 SND_SOC_NOPM, 0, 0,
23851 bt_sco_rx_voice_mixer_controls,
23852 ARRAY_SIZE(bt_sco_rx_voice_mixer_controls)),
23853 SND_SOC_DAPM_MIXER("AFE_PCM_RX_Voice Mixer",
23854 SND_SOC_NOPM, 0, 0,
23855 afe_pcm_rx_voice_mixer_controls,
23856 ARRAY_SIZE(afe_pcm_rx_voice_mixer_controls)),
23857 SND_SOC_DAPM_MIXER("AUX_PCM_RX_Voice Mixer",
23858 SND_SOC_NOPM, 0, 0,
23859 aux_pcm_rx_voice_mixer_controls,
23860 ARRAY_SIZE(aux_pcm_rx_voice_mixer_controls)),
23861 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX_Voice Mixer",
23862 SND_SOC_NOPM, 0, 0,
23863 sec_aux_pcm_rx_voice_mixer_controls,
23864 ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
23865 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
23866 SND_SOC_NOPM, 0, 0,
23867 tert_aux_pcm_rx_voice_mixer_controls,
23868 ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
23869 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
23870 SND_SOC_NOPM, 0, 0,
23871 quat_aux_pcm_rx_voice_mixer_controls,
23872 ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053023873 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX_Voice Mixer",
23874 SND_SOC_NOPM, 0, 0,
23875 quin_aux_pcm_rx_voice_mixer_controls,
23876 ARRAY_SIZE(quin_aux_pcm_rx_voice_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023877 SND_SOC_DAPM_MIXER("SEN_AUX_PCM_RX_Voice Mixer",
23878 SND_SOC_NOPM, 0, 0,
23879 sen_aux_pcm_rx_voice_mixer_controls,
23880 ARRAY_SIZE(sen_aux_pcm_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023881 SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
23882 SND_SOC_NOPM, 0, 0,
23883 hdmi_rx_voice_mixer_controls,
23884 ARRAY_SIZE(hdmi_rx_voice_mixer_controls)),
23885 SND_SOC_DAPM_MIXER("MI2S_RX_Voice Mixer",
23886 SND_SOC_NOPM, 0, 0,
23887 mi2s_rx_voice_mixer_controls,
23888 ARRAY_SIZE(mi2s_rx_voice_mixer_controls)),
23889 SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer",
23890 SND_SOC_NOPM, 0, 0,
23891 pri_mi2s_rx_voice_mixer_controls,
23892 ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)),
23893 SND_SOC_DAPM_MIXER("INT0_MI2S_RX_Voice Mixer",
23894 SND_SOC_NOPM, 0, 0,
23895 int0_mi2s_rx_voice_mixer_controls,
23896 ARRAY_SIZE(int0_mi2s_rx_voice_mixer_controls)),
23897 SND_SOC_DAPM_MIXER("INT4_MI2S_RX_Voice Mixer",
23898 SND_SOC_NOPM, 0, 0,
23899 int4_mi2s_rx_voice_mixer_controls,
23900 ARRAY_SIZE(int4_mi2s_rx_voice_mixer_controls)),
23901 SND_SOC_DAPM_MIXER("TERT_MI2S_RX_Voice Mixer",
23902 SND_SOC_NOPM, 0, 0,
23903 tert_mi2s_rx_voice_mixer_controls,
23904 ARRAY_SIZE(tert_mi2s_rx_voice_mixer_controls)),
23905 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX_Voice Mixer",
23906 SND_SOC_NOPM, 0, 0,
23907 quat_mi2s_rx_voice_mixer_controls,
23908 ARRAY_SIZE(quat_mi2s_rx_voice_mixer_controls)),
23909 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX_Voice Mixer",
23910 SND_SOC_NOPM, 0, 0,
23911 quin_mi2s_rx_voice_mixer_controls,
23912 ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)),
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053023913 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0_Voice Mixer",
23914 SND_SOC_NOPM, 0, 0,
23915 pri_tdm_rx_0_voice_mixer_controls,
23916 ARRAY_SIZE(pri_tdm_rx_0_voice_mixer_controls)),
23917 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1_Voice Mixer",
23918 SND_SOC_NOPM, 0, 0,
23919 pri_tdm_rx_1_voice_mixer_controls,
23920 ARRAY_SIZE(pri_tdm_rx_1_voice_mixer_controls)),
23921 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2_Voice Mixer",
23922 SND_SOC_NOPM, 0, 0,
23923 pri_tdm_rx_2_voice_mixer_controls,
23924 ARRAY_SIZE(pri_tdm_rx_2_voice_mixer_controls)),
23925 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3_Voice Mixer",
23926 SND_SOC_NOPM, 0, 0,
23927 pri_tdm_rx_3_voice_mixer_controls,
23928 ARRAY_SIZE(pri_tdm_rx_3_voice_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023929 SND_SOC_DAPM_MIXER("SEN_MI2S_RX_Voice Mixer",
23930 SND_SOC_NOPM, 0, 0,
23931 sen_mi2s_rx_voice_mixer_controls,
23932 ARRAY_SIZE(sen_mi2s_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023933 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer",
23934 SND_SOC_NOPM, 0, 0,
23935 quat_tdm_rx_2_voice_mixer_controls,
23936 ARRAY_SIZE(quat_tdm_rx_2_voice_mixer_controls)),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053023937 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0_Voice Mixer",
23938 SND_SOC_NOPM, 0, 0,
23939 wsa_cdc_dma_rx_0_voice_mixer_controls,
23940 ARRAY_SIZE(wsa_cdc_dma_rx_0_voice_mixer_controls)),
23941 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0_Voice Mixer",
23942 SND_SOC_NOPM, 0, 0,
23943 rx_cdc_dma_rx_0_voice_mixer_controls,
23944 ARRAY_SIZE(rx_cdc_dma_rx_0_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023945 SND_SOC_DAPM_MIXER("Voip_Tx Mixer",
23946 SND_SOC_NOPM, 0, 0, tx_voip_mixer_controls,
23947 ARRAY_SIZE(tx_voip_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023948 SND_SOC_DAPM_MIXER("VoiceMMode1_Tx Mixer",
23949 SND_SOC_NOPM, 0, 0, tx_voicemmode1_mixer_controls,
23950 ARRAY_SIZE(tx_voicemmode1_mixer_controls)),
23951 SND_SOC_DAPM_MIXER("VoiceMMode2_Tx Mixer",
23952 SND_SOC_NOPM, 0, 0, tx_voicemmode2_mixer_controls,
23953 ARRAY_SIZE(tx_voicemmode2_mixer_controls)),
23954 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23955 int_bt_sco_rx_mixer_controls, ARRAY_SIZE(int_bt_sco_rx_mixer_controls)),
23956 SND_SOC_DAPM_MIXER("INTERNAL_A2DP_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23957 int_bt_a2dp_rx_mixer_controls,
23958 ARRAY_SIZE(int_bt_a2dp_rx_mixer_controls)),
23959 SND_SOC_DAPM_MIXER("INTERNAL_FM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23960 int_fm_rx_mixer_controls, ARRAY_SIZE(int_fm_rx_mixer_controls)),
23961 SND_SOC_DAPM_MIXER("AFE_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23962 afe_pcm_rx_mixer_controls, ARRAY_SIZE(afe_pcm_rx_mixer_controls)),
23963 SND_SOC_DAPM_MIXER("Voice Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
23964 tx_voice_stub_mixer_controls, ARRAY_SIZE(tx_voice_stub_mixer_controls)),
23965 SND_SOC_DAPM_MIXER("Voice2 Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
23966 tx_voice2_stub_mixer_controls,
23967 ARRAY_SIZE(tx_voice2_stub_mixer_controls)),
23968 SND_SOC_DAPM_MIXER("VoLTE Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
23969 tx_volte_stub_mixer_controls, ARRAY_SIZE(tx_volte_stub_mixer_controls)),
23970 SND_SOC_DAPM_MIXER("STUB_RX Mixer", SND_SOC_NOPM, 0, 0,
23971 stub_rx_mixer_controls, ARRAY_SIZE(stub_rx_mixer_controls)),
23972 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Mixer", SND_SOC_NOPM, 0, 0,
23973 slimbus_1_rx_mixer_controls, ARRAY_SIZE(slimbus_1_rx_mixer_controls)),
23974 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
23975 slimbus_3_rx_mixer_controls, ARRAY_SIZE(slimbus_3_rx_mixer_controls)),
23976 SND_SOC_DAPM_MIXER("SLIM_6_RX_Voice Mixer",
23977 SND_SOC_NOPM, 0, 0,
23978 slimbus_6_rx_voice_mixer_controls,
23979 ARRAY_SIZE(slimbus_6_rx_voice_mixer_controls)),
23980 SND_SOC_DAPM_MIXER("SLIM_7_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
23981 slimbus_7_rx_voice_mixer_controls,
23982 ARRAY_SIZE(slimbus_7_rx_voice_mixer_controls)),
23983 SND_SOC_DAPM_MIXER("SLIM_8_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
23984 slimbus_8_rx_voice_mixer_controls,
23985 ARRAY_SIZE(slimbus_8_rx_voice_mixer_controls)),
23986 /* port mixer */
23987 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Port Mixer",
23988 SND_SOC_NOPM, 0, 0, sbus_0_rx_port_mixer_controls,
23989 ARRAY_SIZE(sbus_0_rx_port_mixer_controls)),
23990 SND_SOC_DAPM_MIXER("AUX_PCM_RX Port Mixer",
23991 SND_SOC_NOPM, 0, 0, aux_pcm_rx_port_mixer_controls,
23992 ARRAY_SIZE(aux_pcm_rx_port_mixer_controls)),
23993 SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
23994 SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
23995 ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
23996 SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
23997 SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
23998 ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
23999 SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
24000 SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
24001 ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024002 SND_SOC_DAPM_MIXER("QUIN_AUXPCM_RX Port Mixer",
24003 SND_SOC_NOPM, 0, 0, quin_auxpcm_rx_port_mixer_controls,
24004 ARRAY_SIZE(quin_auxpcm_rx_port_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024005 SND_SOC_DAPM_MIXER("SEN_AUXPCM_RX Port Mixer",
24006 SND_SOC_NOPM, 0, 0, sen_auxpcm_rx_port_mixer_controls,
24007 ARRAY_SIZE(sen_auxpcm_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024008 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24009 sbus_1_rx_port_mixer_controls,
24010 ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
24011 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24012 bt_sco_rx_port_mixer_controls,
24013 ARRAY_SIZE(bt_sco_rx_port_mixer_controls)),
24014 SND_SOC_DAPM_MIXER("AFE_PCM_RX Port Mixer",
24015 SND_SOC_NOPM, 0, 0, afe_pcm_rx_port_mixer_controls,
24016 ARRAY_SIZE(afe_pcm_rx_port_mixer_controls)),
24017 SND_SOC_DAPM_MIXER("HDMI_RX Port Mixer",
24018 SND_SOC_NOPM, 0, 0, hdmi_rx_port_mixer_controls,
24019 ARRAY_SIZE(hdmi_rx_port_mixer_controls)),
24020 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
24021 SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
24022 ARRAY_SIZE(display_port_rx_port_mixer_controls)),
Karthikeyan Manifbea92f2018-06-14 16:38:15 -070024023 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1 Port Mixer",
Karthikeyan Mani57550082018-05-03 18:43:58 -070024024 SND_SOC_NOPM, 0, 0, display_port_rx1_port_mixer_controls,
24025 ARRAY_SIZE(display_port_rx1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024026 SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
24027 SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
24028 ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
24029 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX Port Mixer",
24030 SND_SOC_NOPM, 0, 0, sbus_3_rx_port_mixer_controls,
24031 ARRAY_SIZE(sbus_3_rx_port_mixer_controls)),
24032 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Port Mixer",
24033 SND_SOC_NOPM, 0, 0, sbus_6_rx_port_mixer_controls,
24034 ARRAY_SIZE(sbus_6_rx_port_mixer_controls)),
24035 SND_SOC_DAPM_MIXER("MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24036 mi2s_rx_port_mixer_controls, ARRAY_SIZE(mi2s_rx_port_mixer_controls)),
24037 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24038 primary_mi2s_rx_port_mixer_controls,
24039 ARRAY_SIZE(primary_mi2s_rx_port_mixer_controls)),
24040 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24041 sec_mi2s_rx_port_mixer_controls,
24042 ARRAY_SIZE(sec_mi2s_rx_port_mixer_controls)),
24043 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24044 tert_mi2s_rx_port_mixer_controls,
24045 ARRAY_SIZE(tert_mi2s_rx_port_mixer_controls)),
24046 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24047 quat_mi2s_rx_port_mixer_controls,
24048 ARRAY_SIZE(quat_mi2s_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024049 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24050 quin_mi2s_rx_port_mixer_controls,
24051 ARRAY_SIZE(quin_mi2s_rx_port_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024052 SND_SOC_DAPM_MIXER("SEN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24053 sen_mi2s_rx_port_mixer_controls,
24054 ARRAY_SIZE(sen_mi2s_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024055 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24056 pri_tdm_rx_0_port_mixer_controls,
24057 ARRAY_SIZE(pri_tdm_rx_0_port_mixer_controls)),
24058 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24059 pri_tdm_rx_1_port_mixer_controls,
24060 ARRAY_SIZE(pri_tdm_rx_1_port_mixer_controls)),
24061 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24062 pri_tdm_rx_2_port_mixer_controls,
24063 ARRAY_SIZE(pri_tdm_rx_2_port_mixer_controls)),
24064 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24065 pri_tdm_rx_3_port_mixer_controls,
24066 ARRAY_SIZE(pri_tdm_rx_3_port_mixer_controls)),
24067 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24068 sec_tdm_rx_0_port_mixer_controls,
24069 ARRAY_SIZE(sec_tdm_rx_0_port_mixer_controls)),
24070 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24071 sec_tdm_rx_1_port_mixer_controls,
24072 ARRAY_SIZE(sec_tdm_rx_1_port_mixer_controls)),
24073 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24074 sec_tdm_rx_2_port_mixer_controls,
24075 ARRAY_SIZE(sec_tdm_rx_2_port_mixer_controls)),
24076 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24077 sec_tdm_rx_3_port_mixer_controls,
24078 ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
Derek Chenfdcc0982018-10-02 15:14:03 -070024079 SND_SOC_DAPM_MIXER("SEC_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
24080 sec_tdm_rx_7_port_mixer_controls,
24081 ARRAY_SIZE(sec_tdm_rx_7_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024082 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24083 tert_tdm_rx_0_port_mixer_controls,
24084 ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
24085 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24086 tert_tdm_rx_1_port_mixer_controls,
24087 ARRAY_SIZE(tert_tdm_rx_1_port_mixer_controls)),
24088 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24089 tert_tdm_rx_2_port_mixer_controls,
24090 ARRAY_SIZE(tert_tdm_rx_2_port_mixer_controls)),
24091 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24092 tert_tdm_rx_3_port_mixer_controls,
24093 ARRAY_SIZE(tert_tdm_rx_3_port_mixer_controls)),
24094 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24095 quat_tdm_rx_0_port_mixer_controls,
24096 ARRAY_SIZE(quat_tdm_rx_0_port_mixer_controls)),
24097 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24098 quat_tdm_rx_1_port_mixer_controls,
24099 ARRAY_SIZE(quat_tdm_rx_1_port_mixer_controls)),
24100 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24101 quat_tdm_rx_2_port_mixer_controls,
24102 ARRAY_SIZE(quat_tdm_rx_2_port_mixer_controls)),
24103 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24104 quat_tdm_rx_3_port_mixer_controls,
24105 ARRAY_SIZE(quat_tdm_rx_3_port_mixer_controls)),
Derek Chenb9048cb2019-03-07 14:54:13 -050024106 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
24107 quat_tdm_rx_7_port_mixer_controls,
24108 ARRAY_SIZE(quat_tdm_rx_7_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024109 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24110 quin_tdm_rx_0_port_mixer_controls,
24111 ARRAY_SIZE(quin_tdm_rx_0_port_mixer_controls)),
24112 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24113 quin_tdm_rx_1_port_mixer_controls,
24114 ARRAY_SIZE(quin_tdm_rx_1_port_mixer_controls)),
24115 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24116 quin_tdm_rx_2_port_mixer_controls,
24117 ARRAY_SIZE(quin_tdm_rx_2_port_mixer_controls)),
24118 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24119 quin_tdm_rx_3_port_mixer_controls,
24120 ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)),
Han Lu7b6c5882019-06-09 16:03:21 +080024121 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
24122 quin_tdm_rx_7_port_mixer_controls,
24123 ARRAY_SIZE(quin_tdm_rx_7_port_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024124 SND_SOC_DAPM_MIXER("SEN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24125 sen_tdm_rx_0_port_mixer_controls,
24126 ARRAY_SIZE(sen_tdm_rx_0_port_mixer_controls)),
24127 SND_SOC_DAPM_MIXER("SEN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24128 sen_tdm_rx_1_port_mixer_controls,
24129 ARRAY_SIZE(sen_tdm_rx_1_port_mixer_controls)),
24130 SND_SOC_DAPM_MIXER("SEN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24131 sen_tdm_rx_2_port_mixer_controls,
24132 ARRAY_SIZE(sen_tdm_rx_2_port_mixer_controls)),
24133 SND_SOC_DAPM_MIXER("SEN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24134 sen_tdm_rx_3_port_mixer_controls,
24135 ARRAY_SIZE(sen_tdm_rx_3_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024136 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24137 int0_mi2s_rx_port_mixer_controls,
24138 ARRAY_SIZE(int0_mi2s_rx_port_mixer_controls)),
24139 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24140 int4_mi2s_rx_port_mixer_controls,
24141 ARRAY_SIZE(int4_mi2s_rx_port_mixer_controls)),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053024142 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24143 wsa_cdc_dma_rx_0_port_mixer_controls,
24144 ARRAY_SIZE(wsa_cdc_dma_rx_0_port_mixer_controls)),
24145 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24146 rx_cdc_dma_rx_0_port_mixer_controls,
24147 ARRAY_SIZE(rx_cdc_dma_rx_0_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024148 SND_SOC_DAPM_MIXER("QCHAT_Tx Mixer",
24149 SND_SOC_NOPM, 0, 0, tx_qchat_mixer_controls,
24150 ARRAY_SIZE(tx_qchat_mixer_controls)),
24151 SND_SOC_DAPM_MIXER("USB_AUDIO_RX_Voice Mixer",
24152 SND_SOC_NOPM, 0, 0, usb_audio_rx_voice_mixer_controls,
24153 ARRAY_SIZE(usb_audio_rx_voice_mixer_controls)),
24154 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
24155 SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
24156 ARRAY_SIZE(usb_rx_port_mixer_controls)),
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080024157 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
24158 SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
24159 ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070024160 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1_Voice Mixer",
24161 SND_SOC_NOPM, 0, 0, display_port_rx1_voice_mixer_controls,
24162 ARRAY_SIZE(display_port_rx1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024163 /* lsm mixer definitions */
24164 SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
24165 lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
24166 SND_SOC_DAPM_MIXER("LSM2 Mixer", SND_SOC_NOPM, 0, 0,
24167 lsm2_mixer_controls, ARRAY_SIZE(lsm2_mixer_controls)),
24168 SND_SOC_DAPM_MIXER("LSM3 Mixer", SND_SOC_NOPM, 0, 0,
24169 lsm3_mixer_controls, ARRAY_SIZE(lsm3_mixer_controls)),
24170 SND_SOC_DAPM_MIXER("LSM4 Mixer", SND_SOC_NOPM, 0, 0,
24171 lsm4_mixer_controls, ARRAY_SIZE(lsm4_mixer_controls)),
24172 SND_SOC_DAPM_MIXER("LSM5 Mixer", SND_SOC_NOPM, 0, 0,
24173 lsm5_mixer_controls, ARRAY_SIZE(lsm5_mixer_controls)),
24174 SND_SOC_DAPM_MIXER("LSM6 Mixer", SND_SOC_NOPM, 0, 0,
24175 lsm6_mixer_controls, ARRAY_SIZE(lsm6_mixer_controls)),
24176 SND_SOC_DAPM_MIXER("LSM7 Mixer", SND_SOC_NOPM, 0, 0,
24177 lsm7_mixer_controls, ARRAY_SIZE(lsm7_mixer_controls)),
24178 SND_SOC_DAPM_MIXER("LSM8 Mixer", SND_SOC_NOPM, 0, 0,
24179 lsm8_mixer_controls, ARRAY_SIZE(lsm8_mixer_controls)),
24180 /* Virtual Pins to force backends ON atm */
24181 SND_SOC_DAPM_OUTPUT("BE_OUT"),
24182 SND_SOC_DAPM_INPUT("BE_IN"),
24183
24184 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
24185 &slim0_rx_vi_fb_lch_mux),
24186 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
24187 &slim0_rx_vi_fb_rch_mux),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024188 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
24189 &wsa_rx_0_vi_fb_lch_mux),
24190 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
24191 &wsa_rx_0_vi_fb_rch_mux),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024192 SND_SOC_DAPM_MUX("PRI_MI2S_RX_VI_FB_MUX", SND_SOC_NOPM, 0, 0,
24193 &mi2s_rx_vi_fb_mux),
24194 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_MONO_CH_MUX", SND_SOC_NOPM, 0, 0,
24195 &int4_mi2s_rx_vi_fb_mono_ch_mux),
24196 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", SND_SOC_NOPM, 0, 0,
24197 &int4_mi2s_rx_vi_fb_stereo_ch_mux),
24198
24199 SND_SOC_DAPM_MUX("VOC_EXT_EC MUX", SND_SOC_NOPM, 0, 0,
24200 &voc_ext_ec_mux),
24201 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL1 MUX", SND_SOC_NOPM, 0, 0,
24202 &ext_ec_ref_mux_ul1),
24203 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL2 MUX", SND_SOC_NOPM, 0, 0,
24204 &ext_ec_ref_mux_ul2),
24205 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL3 MUX", SND_SOC_NOPM, 0, 0,
24206 &ext_ec_ref_mux_ul3),
24207 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL4 MUX", SND_SOC_NOPM, 0, 0,
24208 &ext_ec_ref_mux_ul4),
24209 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL5 MUX", SND_SOC_NOPM, 0, 0,
24210 &ext_ec_ref_mux_ul5),
24211 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL6 MUX", SND_SOC_NOPM, 0, 0,
24212 &ext_ec_ref_mux_ul6),
24213 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL8 MUX", SND_SOC_NOPM, 0, 0,
24214 &ext_ec_ref_mux_ul8),
24215 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL9 MUX", SND_SOC_NOPM, 0, 0,
24216 &ext_ec_ref_mux_ul9),
Laxminath Kasam38070be2017-08-17 18:21:59 +053024217 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL10 MUX", SND_SOC_NOPM, 0, 0,
24218 &ext_ec_ref_mux_ul10),
Asish Bhattacharya34504582017-08-08 12:55:01 +053024219 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL16 MUX", SND_SOC_NOPM, 0, 0,
24220 &ext_ec_ref_mux_ul16),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024221 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL17 MUX", SND_SOC_NOPM, 0, 0,
24222 &ext_ec_ref_mux_ul17),
24223 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL18 MUX", SND_SOC_NOPM, 0, 0,
24224 &ext_ec_ref_mux_ul18),
24225 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL19 MUX", SND_SOC_NOPM, 0, 0,
24226 &ext_ec_ref_mux_ul19),
Meng Wang5c4bab72018-04-25 10:40:01 +080024227 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL28 MUX", SND_SOC_NOPM, 0, 0,
24228 &ext_ec_ref_mux_ul28),
24229 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL29 MUX", SND_SOC_NOPM, 0, 0,
24230 &ext_ec_ref_mux_ul29),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024231};
24232
24233static const struct snd_soc_dapm_route intercon[] = {
24234 {"PRI_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24235 {"PRI_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24236 {"PRI_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24237 {"PRI_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24238 {"PRI_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24239 {"PRI_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24240 {"PRI_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24241 {"PRI_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24242 {"PRI_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24243 {"PRI_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24244 {"PRI_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24245 {"PRI_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24246 {"PRI_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24247 {"PRI_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24248 {"PRI_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24249 {"PRI_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024250 {"PRI_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024251 {"PRI_I2S_RX", NULL, "PRI_RX Audio Mixer"},
24252
24253 {"SEC_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24254 {"SEC_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24255 {"SEC_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24256 {"SEC_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24257 {"SEC_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24258 {"SEC_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24259 {"SEC_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24260 {"SEC_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24261 {"SEC_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24262 {"SEC_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24263 {"SEC_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24264 {"SEC_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24265 {"SEC_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24266 {"SEC_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24267 {"SEC_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24268 {"SEC_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024269 {"SEC_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024270 {"SEC_I2S_RX", NULL, "SEC_RX Audio Mixer"},
24271
24272 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24273 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24274 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24275 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24276 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24277 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24278 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24279 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24280 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24281 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24282 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24283 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24284 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24285 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24286 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24287 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024288 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024289 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Audio Mixer"},
24290
24291 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24292 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24293 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24294 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24295 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24296 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24297 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24298 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24299 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24300 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24301 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24302 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24303 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24304 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24305 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24306 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024307 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024308 {"SLIMBUS_2_RX", NULL, "SLIMBUS_2_RX Audio Mixer"},
24309
24310 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24311 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24312 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24313 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24314 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24315 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24316 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24317 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24318 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24319 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24320 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24321 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24322 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24323 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24324 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24325 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024326 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024327 {"SLIMBUS_5_RX", NULL, "SLIMBUS_5_RX Audio Mixer"},
24328
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024329 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24330 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24331 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24332 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24333 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24334 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24335 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24336 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24337 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24338 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24339 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24340 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24341 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24342 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24343 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24344 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024345 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024346 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Audio Mixer"},
24347
24348 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
24349 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
24350 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
24351 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
24352 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
24353 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
24354 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
24355 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
24356 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
24357 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
24358 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
24359 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
24360 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
24361 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
24362 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
24363 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024364 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024365 {"WSA_CDC_DMA_RX_1", NULL, "WSA_CDC_DMA_RX_1 Audio Mixer"},
24366
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024367 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24368 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24369 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24370 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24371 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24372 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24373 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24374 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24375 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24376 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24377 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24378 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24379 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24380 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24381 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24382 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024383 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024384 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Audio Mixer"},
24385
24386 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
24387 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
24388 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
24389 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
24390 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
24391 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
24392 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
24393 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
24394 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
24395 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
24396 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
24397 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
24398 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
24399 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
24400 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
24401 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024402 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024403 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Audio Mixer"},
24404
24405 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
24406 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
24407 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
24408 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
24409 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
24410 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
24411 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
24412 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
24413 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
24414 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
24415 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
24416 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
24417 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
24418 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
24419 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
24420 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024421 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024422 {"RX_CDC_DMA_RX_2", NULL, "RX_CDC_DMA_RX_2 Audio Mixer"},
24423
24424 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
24425 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
24426 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
24427 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
24428 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
24429 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
24430 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
24431 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
24432 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
24433 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
24434 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
24435 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
24436 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
24437 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
24438 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
24439 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024440 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024441 {"RX_CDC_DMA_RX_3", NULL, "RX_CDC_DMA_RX_3 Audio Mixer"},
24442
24443 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
24444 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
24445 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
24446 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
24447 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
24448 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
24449 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
24450 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
24451 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
24452 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
24453 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
24454 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
24455 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
24456 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
24457 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
24458 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024459 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024460 {"RX_CDC_DMA_RX_4", NULL, "RX_CDC_DMA_RX_4 Audio Mixer"},
24461
24462 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia1", "MM_DL1"},
24463 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia2", "MM_DL2"},
24464 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia3", "MM_DL3"},
24465 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia4", "MM_DL4"},
24466 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia5", "MM_DL5"},
24467 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia6", "MM_DL6"},
24468 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia7", "MM_DL7"},
24469 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia8", "MM_DL8"},
24470 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia9", "MM_DL9"},
24471 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia10", "MM_DL10"},
24472 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia11", "MM_DL11"},
24473 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia12", "MM_DL12"},
24474 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia13", "MM_DL13"},
24475 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia14", "MM_DL14"},
24476 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia15", "MM_DL15"},
24477 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024478 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024479 {"RX_CDC_DMA_RX_5", NULL, "RX_CDC_DMA_RX_5 Audio Mixer"},
24480
24481 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia1", "MM_DL1"},
24482 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia2", "MM_DL2"},
24483 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia3", "MM_DL3"},
24484 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia4", "MM_DL4"},
24485 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia5", "MM_DL5"},
24486 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia6", "MM_DL6"},
24487 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia7", "MM_DL7"},
24488 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia8", "MM_DL8"},
24489 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia9", "MM_DL9"},
24490 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia10", "MM_DL10"},
24491 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia11", "MM_DL11"},
24492 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia12", "MM_DL12"},
24493 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia13", "MM_DL13"},
24494 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia14", "MM_DL14"},
24495 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia15", "MM_DL15"},
24496 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024497 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024498 {"RX_CDC_DMA_RX_6", NULL, "RX_CDC_DMA_RX_6 Audio Mixer"},
24499
24500 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia1", "MM_DL1"},
24501 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia2", "MM_DL2"},
24502 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia3", "MM_DL3"},
24503 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia4", "MM_DL4"},
24504 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia5", "MM_DL5"},
24505 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia6", "MM_DL6"},
24506 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia7", "MM_DL7"},
24507 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia8", "MM_DL8"},
24508 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia9", "MM_DL9"},
24509 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia10", "MM_DL10"},
24510 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia11", "MM_DL11"},
24511 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia12", "MM_DL12"},
24512 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia13", "MM_DL13"},
24513 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia14", "MM_DL14"},
24514 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia15", "MM_DL15"},
24515 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024516 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024517 {"RX_CDC_DMA_RX_7", NULL, "RX_CDC_DMA_RX_7 Audio Mixer"},
24518
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024519 {"HDMI Mixer", "MultiMedia1", "MM_DL1"},
24520 {"HDMI Mixer", "MultiMedia2", "MM_DL2"},
24521 {"HDMI Mixer", "MultiMedia3", "MM_DL3"},
24522 {"HDMI Mixer", "MultiMedia4", "MM_DL4"},
24523 {"HDMI Mixer", "MultiMedia5", "MM_DL5"},
24524 {"HDMI Mixer", "MultiMedia6", "MM_DL6"},
24525 {"HDMI Mixer", "MultiMedia7", "MM_DL7"},
24526 {"HDMI Mixer", "MultiMedia8", "MM_DL8"},
24527 {"HDMI Mixer", "MultiMedia9", "MM_DL9"},
24528 {"HDMI Mixer", "MultiMedia10", "MM_DL10"},
24529 {"HDMI Mixer", "MultiMedia11", "MM_DL11"},
24530 {"HDMI Mixer", "MultiMedia12", "MM_DL12"},
24531 {"HDMI Mixer", "MultiMedia13", "MM_DL13"},
24532 {"HDMI Mixer", "MultiMedia14", "MM_DL14"},
24533 {"HDMI Mixer", "MultiMedia15", "MM_DL15"},
24534 {"HDMI Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024535 {"HDMI Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024536 {"HDMI", NULL, "HDMI Mixer"},
24537
24538 {"DISPLAY_PORT Mixer", "MultiMedia1", "MM_DL1"},
24539 {"DISPLAY_PORT Mixer", "MultiMedia2", "MM_DL2"},
24540 {"DISPLAY_PORT Mixer", "MultiMedia3", "MM_DL3"},
24541 {"DISPLAY_PORT Mixer", "MultiMedia4", "MM_DL4"},
24542 {"DISPLAY_PORT Mixer", "MultiMedia5", "MM_DL5"},
24543 {"DISPLAY_PORT Mixer", "MultiMedia6", "MM_DL6"},
24544 {"DISPLAY_PORT Mixer", "MultiMedia7", "MM_DL7"},
24545 {"DISPLAY_PORT Mixer", "MultiMedia8", "MM_DL8"},
24546 {"DISPLAY_PORT Mixer", "MultiMedia9", "MM_DL9"},
24547 {"DISPLAY_PORT Mixer", "MultiMedia10", "MM_DL10"},
24548 {"DISPLAY_PORT Mixer", "MultiMedia11", "MM_DL11"},
24549 {"DISPLAY_PORT Mixer", "MultiMedia12", "MM_DL12"},
24550 {"DISPLAY_PORT Mixer", "MultiMedia13", "MM_DL13"},
24551 {"DISPLAY_PORT Mixer", "MultiMedia14", "MM_DL14"},
24552 {"DISPLAY_PORT Mixer", "MultiMedia15", "MM_DL15"},
24553 {"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024554 {"DISPLAY_PORT Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024555 {"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
24556
Karthikeyan Mani57550082018-05-03 18:43:58 -070024557 {"DISPLAY_PORT1 Mixer", "MultiMedia1", "MM_DL1"},
24558 {"DISPLAY_PORT1 Mixer", "MultiMedia2", "MM_DL2"},
24559 {"DISPLAY_PORT1 Mixer", "MultiMedia3", "MM_DL3"},
24560 {"DISPLAY_PORT1 Mixer", "MultiMedia4", "MM_DL4"},
24561 {"DISPLAY_PORT1 Mixer", "MultiMedia5", "MM_DL5"},
24562 {"DISPLAY_PORT1 Mixer", "MultiMedia6", "MM_DL6"},
24563 {"DISPLAY_PORT1 Mixer", "MultiMedia7", "MM_DL7"},
24564 {"DISPLAY_PORT1 Mixer", "MultiMedia8", "MM_DL8"},
24565 {"DISPLAY_PORT1 Mixer", "MultiMedia9", "MM_DL9"},
24566 {"DISPLAY_PORT1 Mixer", "MultiMedia10", "MM_DL10"},
24567 {"DISPLAY_PORT1 Mixer", "MultiMedia11", "MM_DL11"},
24568 {"DISPLAY_PORT1 Mixer", "MultiMedia12", "MM_DL12"},
24569 {"DISPLAY_PORT1 Mixer", "MultiMedia13", "MM_DL13"},
24570 {"DISPLAY_PORT1 Mixer", "MultiMedia14", "MM_DL14"},
24571 {"DISPLAY_PORT1 Mixer", "MultiMedia15", "MM_DL15"},
24572 {"DISPLAY_PORT1 Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024573 {"DISPLAY_PORT1 Mixer", "MultiMedia26", "MM_DL26"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070024574 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT1 Mixer"},
24575
Ralf Herzc8701f72018-06-20 11:37:35 +020024576 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24577 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24578 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24579 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24580 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24581 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24582 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24583 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24584 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24585 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24586 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24587 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24588 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24589 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24590 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24591 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024592 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024593 {"PRI_SPDIF_RX", NULL, "PRI_SPDIF_RX Audio Mixer"},
24594
24595 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24596 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24597 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24598 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24599 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24600 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24601 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24602 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24603 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24604 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24605 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24606 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24607 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24608 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24609 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24610 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024611 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024612 {"SEC_SPDIF_RX", NULL, "SEC_SPDIF_RX Audio Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024613
24614 /* incall */
24615 {"Incall_Music Audio Mixer", "MultiMedia1", "MM_DL1"},
24616 {"Incall_Music Audio Mixer", "MultiMedia2", "MM_DL2"},
24617 {"Incall_Music Audio Mixer", "MultiMedia5", "MM_DL5"},
24618 {"Incall_Music Audio Mixer", "MultiMedia9", "MM_DL9"},
24619 {"VOICE_PLAYBACK_TX", NULL, "Incall_Music Audio Mixer"},
24620 {"Incall_Music_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
24621 {"Incall_Music_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
24622 {"Incall_Music_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
24623 {"Incall_Music_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
24624 {"VOICE2_PLAYBACK_TX", NULL, "Incall_Music_2 Audio Mixer"},
24625 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24626 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24627 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24628 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24629 {"SLIMBUS_4_RX", NULL, "SLIMBUS_4_RX Audio Mixer"},
24630
24631 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24632 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24633 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24634 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24635 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24636 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24637 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24638 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24639 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24640 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24641 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24642 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24643 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24644 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24645 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24646 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024647 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024648 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Audio Mixer"},
24649
24650 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24651 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24652 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24653 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24654 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24655 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24656 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24657 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24658 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24659 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24660 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24661 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24662 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24663 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24664 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24665 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024666 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024667 {"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
24668
Surendar Karka3ef3d812018-09-28 18:52:35 +053024669 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24670 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24671 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24672 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24673 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24674 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24675 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24676 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24677 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24678 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24679 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24680 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24681 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24682 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24683 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24684 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24685 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
24686 {"SLIMBUS_9_RX", NULL, "SLIMBUS_9_RX Audio Mixer"},
24687
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024688 {"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24689 {"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24690 {"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24691 {"USB_AUDIO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24692 {"USB_AUDIO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24693 {"USB_AUDIO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24694 {"USB_AUDIO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24695 {"USB_AUDIO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24696 {"USB_AUDIO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24697 {"USB_AUDIO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24698 {"USB_AUDIO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24699 {"USB_AUDIO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24700 {"USB_AUDIO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24701 {"USB_AUDIO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24702 {"USB_AUDIO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24703 {"USB_AUDIO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024704 {"USB_AUDIO_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024705 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Audio Mixer"},
24706
24707 {"MultiMedia1 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
24708 {"MultiMedia4 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
24709 {"MultiMedia8 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
24710 {"MultiMedia1 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
24711 {"MultiMedia4 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
24712 {"MultiMedia8 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
24713 {"MultiMedia1 Mixer", "SLIM_4_TX", "SLIMBUS_4_TX"},
24714 {"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
24715 {"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
24716 {"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053024717 {"MultiMedia1 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024718 {"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
24719 {"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053024720 {"MultiMedia8 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024721 {"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024722 {"MultiMedia4 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024723 {"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024724 {"MultiMedia17 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024725 {"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024726 {"MultiMedia18 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024727 {"MultiMedia19 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024728 {"MultiMedia19 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024729 {"MultiMedia28 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024730 {"MultiMedia28 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024731 {"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024732 {"MultiMedia29 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024733 {"MultiMedia30 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
24734 {"MultiMedia30 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024735 {"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024736 {"MultiMedia8 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024737 {"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24738 {"MultiMedia4 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24739 {"MultiMedia17 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24740 {"MultiMedia18 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24741 {"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024742 {"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24743 {"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024744 {"MultiMedia30 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024745 {"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024746 {"MultiMedia18 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010024747 {"MultiMedia19 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
24748 {"MultiMedia28 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
24749 {"MultiMedia29 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024750 {"MultiMedia30 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024751 {"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
24752 {"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
24753 {"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
24754 {"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
24755 {"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024756 {"MultiMedia30 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024757 {"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024758 {"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024759 {"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
24760 {"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
24761 {"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024762 {"MultiMedia30 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024763 {"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
24764 {"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024765 {"MultiMedia3 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024766 {"MultiMedia5 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024767 {"MultiMedia5 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053024768 {"MultiMedia10 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024769 {"MultiMedia10 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053024770 {"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024771 {"MultiMedia16 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024772 {"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
24773 {"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053024774 {"MultiMedia5 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053024775 {"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053024776 {"MultiMedia10 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024777 {"MultiMedia18 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010024778 {"MultiMedia19 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
24779 {"MultiMedia28 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
24780 {"MultiMedia29 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024781 {"MultiMedia30 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024782 {"MultiMedia18 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010024783 {"MultiMedia19 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
24784 {"MultiMedia28 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
24785 {"MultiMedia29 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024786 {"MultiMedia30 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024787
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024788 {"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24789 {"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24790 {"MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24791 {"MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24792 {"MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24793 {"MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24794 {"MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24795 {"MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24796 {"MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24797 {"MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24798 {"MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24799 {"MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24800 {"MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24801 {"MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24802 {"MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24803 {"MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024804 {"MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024805 {"MI2S_RX", NULL, "MI2S_RX Audio Mixer"},
24806
24807 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24808 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24809 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24810 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24811 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24812 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24813 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24814 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24815 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24816 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24817 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24818 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24819 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24820 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24821 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024822 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024823 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Audio Mixer"},
24824
24825 {"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24826 {"TERT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24827 {"TERT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24828 {"TERT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24829 {"TERT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24830 {"TERT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24831 {"TERT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24832 {"TERT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24833 {"TERT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24834 {"TERT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24835 {"TERT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24836 {"TERT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24837 {"TERT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24838 {"TERT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024839 {"TERT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024840 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Audio Mixer"},
24841
24842 {"SEC_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24843 {"SEC_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24844 {"SEC_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24845 {"SEC_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24846 {"SEC_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24847 {"SEC_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24848 {"SEC_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24849 {"SEC_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24850 {"SEC_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24851 {"SEC_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24852 {"SEC_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24853 {"SEC_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24854 {"SEC_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24855 {"SEC_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024856 {"SEC_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024857 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Audio Mixer"},
24858
24859 {"SEC_MI2S_RX_SD1 Audio Mixer", "MultiMedia6", "MM_DL6"},
24860 {"SEC_MI2S_RX_SD1", NULL, "SEC_MI2S_RX_SD1 Audio Mixer"},
24861
24862 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24863 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
24864
24865 {"PRI_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24866 {"PRI_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24867 {"PRI_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24868 {"PRI_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24869 {"PRI_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24870 {"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24871 {"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24872 {"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053024873 {"PRI_MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024874 {"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24875 {"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24876 {"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24877 {"PRI_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24878 {"PRI_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24879 {"PRI_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24880 {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024881 {"PRI_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024882 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
24883
24884 {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24885 {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24886 {"INT0_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24887 {"INT0_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24888 {"INT0_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24889 {"INT0_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24890 {"INT0_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24891 {"INT0_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24892 {"INT0_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24893 {"INT0_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24894 {"INT0_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24895 {"INT0_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24896 {"INT0_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24897 {"INT0_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24898 {"INT0_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24899 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Audio Mixer"},
24900
24901 {"INT4_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24902 {"INT4_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24903 {"INT4_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24904 {"INT4_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24905 {"INT4_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24906 {"INT4_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24907 {"INT4_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24908 {"INT4_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24909 {"INT4_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24910 {"INT4_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24911 {"INT4_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24912 {"INT4_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24913 {"INT4_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24914 {"INT4_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24915 {"INT4_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24916 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Audio Mixer"},
24917
24918 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24919 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24920 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24921 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24922 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24923 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24924 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24925 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24926 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24927 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24928 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24929 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24930 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24931 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24932 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24933 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24934 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24935 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Audio Mixer"},
24936
Karthikeyan Manic3700752019-03-11 18:33:53 -070024937 {"SEN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24938 {"SEN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24939 {"SEN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24940 {"SEN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24941 {"SEN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24942 {"SEN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24943 {"SEN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24944 {"SEN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24945 {"SEN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24946 {"SEN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24947 {"SEN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24948 {"SEN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24949 {"SEN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24950 {"SEN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24951 {"SEN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24952 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX Audio Mixer"},
24953
Ralf Herz29e07132019-07-26 15:15:21 +020024954 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24955 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24956 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24957 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24958 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24959 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24960 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24961 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24962 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24963 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24964 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24965 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24966 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24967 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24968 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24969 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24970 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
24971 {"PRI_META_MI2S_RX", NULL, "PRI_META_MI2S_RX Audio Mixer"},
24972
24973 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24974 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24975 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24976 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24977 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24978 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24979 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24980 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24981 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24982 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24983 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24984 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24985 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24986 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24987 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24988 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24989 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
24990 {"SEC_META_MI2S_RX", NULL, "SEC_META_MI2S_RX Audio Mixer"},
24991
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024992 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24993 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24994 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24995 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24996 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24997 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24998 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24999 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25000 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25001 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25002 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25003 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25004 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25005 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25006 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25007 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025008 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025009 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025010 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Audio Mixer"},
25011
25012 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25013 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25014 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25015 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25016 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25017 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25018 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25019 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25020 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25021 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25022 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25023 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25024 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25025 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25026 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25027 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025028 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025029 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025030 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Audio Mixer"},
25031
25032 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25033 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25034 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25035 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25036 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25037 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25038 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25039 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25040 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25041 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25042 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25043 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25044 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25045 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25046 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25047 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025048 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025049 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025050 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Audio Mixer"},
25051
25052 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25053 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25054 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25055 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25056 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25057 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25058 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25059 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25060 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25061 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25062 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25063 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25064 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25065 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25066 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25067 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025068 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025069 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025070 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Audio Mixer"},
25071
25072 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25073 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25074 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25075 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25076 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25077 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25078 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25079 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25080 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25081 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25082 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25083 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25084 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25085 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25086 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25087 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25088 {"PRI_TDM_TX_0", NULL, "PRI_TDM_TX_0 Audio Mixer"},
25089
25090 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25091 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25092 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25093 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25094 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25095 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25096 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25097 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25098 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25099 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25100 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25101 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25102 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25103 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25104 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25105 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025106 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025107 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025108 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Audio Mixer"},
25109
25110 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25111 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25112 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25113 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25114 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25115 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25116 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25117 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25118 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25119 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25120 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25121 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25122 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25123 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25124 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25125 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025126 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025127 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025128 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Audio Mixer"},
25129
25130 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25131 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25132 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25133 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25134 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25135 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25136 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25137 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25138 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25139 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25140 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25141 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25142 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25143 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25144 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25145 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025146 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025147 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025148 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Audio Mixer"},
25149
25150 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25151 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25152 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25153 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25154 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25155 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25156 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25157 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25158 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25159 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25160 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25161 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25162 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25163 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25164 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25165 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025166 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025167 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025168 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Audio Mixer"},
25169
25170 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25171 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25172 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25173 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25174 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25175 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25176 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25177 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25178 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25179 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25180 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25181 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25182 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25183 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25184 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25185 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25186 {"SEC_TDM_TX_0", NULL, "SEC_TDM_TX_0 Audio Mixer"},
25187
25188 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25189 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25190 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25191 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25192 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25193 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25194 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25195 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25196 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25197 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25198 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25199 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25200 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25201 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25202 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25203 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025204 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025205 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025206 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Audio Mixer"},
25207
25208 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25209 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25210 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25211 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25212 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25213 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25214 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25215 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25216 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25217 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25218 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25219 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25220 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25221 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25222 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25223 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25224 {"TERT_TDM_TX_0", NULL, "TERT_TDM_TX_0 Audio Mixer"},
25225
25226 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25227 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25228 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25229 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25230 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25231 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25232 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25233 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25234 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25235 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25236 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25237 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25238 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25239 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25240 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25241 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025242 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025243 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025244 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Audio Mixer"},
25245
25246 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25247 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25248 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25249 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25250 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25251 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25252 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25253 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25254 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25255 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25256 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25257 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25258 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25259 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25260 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25261 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025262 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025263 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025264 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Audio Mixer"},
25265
25266 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25267 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25268 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25269 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25270 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25271 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25272 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25273 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25274 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25275 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25276 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25277 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25278 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25279 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25280 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25281 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025282 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025283 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025284 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Audio Mixer"},
25285
25286 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
25287 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
25288 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
25289 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
25290 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
25291 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
25292 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
25293 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
25294 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
25295 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
25296 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
25297 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
25298 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
25299 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
25300 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
25301 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025302 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025303 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025304 {"TERT_TDM_RX_4", NULL, "TERT_TDM_RX_4 Audio Mixer"},
25305
25306 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25307 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25308 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25309 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25310 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25311 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25312 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25313 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25314 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25315 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25316 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25317 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25318 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25319 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25320 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25321 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25322 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025323 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025324 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025325 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Audio Mixer"},
25326
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025327 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25328 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25329 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25330 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25331 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25332 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25333 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25334 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25335 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25336 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25337 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25338 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25339 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25340 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25341 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25342 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25343 {"QUAT_TDM_TX_0", NULL, "QUAT_TDM_TX_0 Audio Mixer"},
25344
25345 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25346 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25347 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25348 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25349 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25350 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25351 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25352 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25353 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25354 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25355 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25356 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25357 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25358 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25359 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25360 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
25361 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025362 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025363 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025364 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Audio Mixer"},
25365
25366 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25367 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25368 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25369 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25370 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25371 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25372 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25373 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25374 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25375 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25376 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25377 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25378 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25379 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25380 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25381 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
25382 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025383 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025384 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025385 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Audio Mixer"},
25386
25387 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25388 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25389 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25390 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25391 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25392 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25393 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25394 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25395 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25396 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25397 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25398 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25399 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25400 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25401 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25402 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
25403 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025404 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025405 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025406 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
25407
Rohit Kumara5077932017-09-10 22:05:05 +053025408 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25409 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25410 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25411 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25412 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25413 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25414 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25415 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25416 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25417 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25418 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25419 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25420 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25421 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25422 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25423 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25424 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025425 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025426 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Rohit Kumara5077932017-09-10 22:05:05 +053025427 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Audio Mixer"},
25428
25429 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25430 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25431 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25432 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25433 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25434 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25435 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25436 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25437 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25438 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25439 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25440 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25441 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25442 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25443 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25444 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25445 {"QUIN_TDM_TX_0", NULL, "QUIN_TDM_TX_0 Audio Mixer"},
25446
25447 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25448 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25449 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25450 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25451 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25452 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25453 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25454 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25455 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25456 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25457 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25458 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25459 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25460 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25461 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25462 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
25463 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025464 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025465 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Rohit Kumara5077932017-09-10 22:05:05 +053025466 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Audio Mixer"},
25467
25468 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25469 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25470 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25471 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25472 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25473 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25474 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25475 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25476 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25477 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25478 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25479 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25480 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25481 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25482 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25483 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
25484 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025485 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025486 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Rohit Kumara5077932017-09-10 22:05:05 +053025487 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Audio Mixer"},
25488
25489 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25490 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25491 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25492 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25493 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25494 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25495 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25496 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25497 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25498 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25499 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25500 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25501 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25502 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25503 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25504 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
25505 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025506 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025507 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Rohit Kumara5077932017-09-10 22:05:05 +053025508 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Audio Mixer"},
25509
Karthikeyan Manic3700752019-03-11 18:33:53 -070025510 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25511 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25512 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25513 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25514 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25515 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25516 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25517 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25518 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25519 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25520 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25521 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25522 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25523 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25524 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25525 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25526 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
25527 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
25528 {"SEN_TDM_RX_0", NULL, "SEN_TDM_RX_0 Audio Mixer"},
25529
25530 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25531 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25532 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25533 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25534 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25535 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25536 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25537 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25538 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25539 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25540 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25541 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25542 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25543 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25544 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25545 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25546 {"SEN_TDM_TX_0", NULL, "SEN_TDM_TX_0 Audio Mixer"},
25547
25548 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25549 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25550 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25551 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25552 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25553 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25554 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25555 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25556 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25557 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25558 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25559 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25560 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25561 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25562 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25563 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
25564 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
25565 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
25566 {"SEN_TDM_RX_1", NULL, "SEN_TDM_RX_1 Audio Mixer"},
25567
25568 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25569 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25570 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25571 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25572 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25573 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25574 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25575 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25576 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25577 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25578 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25579 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25580 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25581 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25582 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25583 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
25584 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
25585 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
25586 {"SEN_TDM_RX_2", NULL, "SEN_TDM_RX_2 Audio Mixer"},
25587
25588 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25589 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25590 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25591 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25592 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25593 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25594 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25595 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25596 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25597 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25598 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25599 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25600 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25601 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25602 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25603 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
25604 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
25605 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
25606 {"SEN_TDM_RX_3", NULL, "SEN_TDM_RX_3 Audio Mixer"},
25607
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025608 {"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
25609 {"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
25610 {"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
25611 {"MultiMedia3 Mixer", "MI2S_TX", "MI2S_TX"},
25612 {"MultiMedia5 Mixer", "MI2S_TX", "MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025613 {"MultiMedia10 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025614 {"MultiMedia16 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025615 {"MultiMedia1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25616 {"MultiMedia2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25617 {"MultiMedia6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25618 {"MultiMedia1 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
25619 {"MultiMedia2 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025620 {"MultiMedia1 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
25621 {"MultiMedia2 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025622 {"MultiMedia1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25623 {"MultiMedia2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25624 {"MultiMedia1 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
25625 {"MultiMedia2 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
25626 {"MultiMedia1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25627 {"MultiMedia2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25628 {"MultiMedia1 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025629 {"MultiMedia1 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025630 {"MultiMedia1 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25631 {"MultiMedia3 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
25632 {"MultiMedia5 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025633 {"MultiMedia10 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025634 {"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharyaf4d24122019-07-30 12:39:15 +053025635 {"MultiMedia2 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025636 {"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
25637 {"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025638 {"MultiMedia10 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025639 {"MultiMedia16 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
25640 {"MultiMedia16 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025641 {"MultiMedia1 Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
25642 {"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
25643 {"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025644 {"MultiMedia10 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025645 {"MultiMedia1 Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
25646 {"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
25647 {"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025648 {"MultiMedia10 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025649 {"MultiMedia16 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025650 {"MultiMedia1 Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
25651 {"MultiMedia3 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
25652 {"MultiMedia5 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025653 {"MultiMedia1 Mixer", "SEN_AUXPCM_UL_TX", "SEN_AUX_PCM_TX"},
25654 {"MultiMedia3 Mixer", "SEN_AUX_PCM_TX", "SEN_AUX_PCM_TX"},
25655 {"MultiMedia5 Mixer", "SEN_AUX_PCM_TX", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025656 {"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
25657 {"MultiMedia2 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
25658 {"MultiMedia2 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
25659 {"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
25660 {"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25661 {"MultiMedia1 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25662 {"MultiMedia2 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25663 {"MultiMedia6 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025664 {"MultiMedia6 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025665 {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25666 {"MultiMedia3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25667 {"MultiMedia5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025668 {"MultiMedia10 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025669 {"MultiMedia6 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
25670 {"MultiMedia3 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
25671 {"MultiMedia5 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025672 {"MultiMedia10 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025673 {"MultiMedia16 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025674 {"MultiMedia6 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25675 {"MultiMedia3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25676 {"MultiMedia5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025677 {"MultiMedia10 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025678 {"MultiMedia16 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025679 {"MultiMedia17 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25680 {"MultiMedia18 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25681 {"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25682 {"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25683 {"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025684 {"MultiMedia30 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025685 {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25686 {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25687 {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25688 {"MultiMedia6 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025689 {"MultiMedia6 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025690 {"MultiMedia6 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025691
25692 {"MultiMedia1 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25693 {"MultiMedia1 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25694 {"MultiMedia1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25695 {"MultiMedia1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25696 {"MultiMedia1 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25697 {"MultiMedia1 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25698 {"MultiMedia1 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25699 {"MultiMedia1 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25700 {"MultiMedia1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25701 {"MultiMedia1 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25702 {"MultiMedia1 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25703 {"MultiMedia1 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25704 {"MultiMedia1 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25705 {"MultiMedia1 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25706 {"MultiMedia1 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25707 {"MultiMedia1 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025708 {"MultiMedia1 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025709 {"MultiMedia1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25710 {"MultiMedia1 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25711 {"MultiMedia1 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25712 {"MultiMedia1 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025713 {"MultiMedia1 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25714 {"MultiMedia1 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25715 {"MultiMedia1 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25716 {"MultiMedia1 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025717 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25718 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25719 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25720 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25721 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025722 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025723 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25724 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25725 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25726 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25727 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25728 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025729 {"MultiMedia1 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25730 {"MultiMedia1 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025731
25732 {"MultiMedia2 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25733 {"MultiMedia2 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25734 {"MultiMedia2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25735 {"MultiMedia2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25736 {"MultiMedia2 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25737 {"MultiMedia2 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25738 {"MultiMedia2 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25739 {"MultiMedia2 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25740 {"MultiMedia2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25741 {"MultiMedia2 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25742 {"MultiMedia2 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25743 {"MultiMedia2 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25744 {"MultiMedia2 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25745 {"MultiMedia2 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25746 {"MultiMedia2 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25747 {"MultiMedia2 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025748 {"MultiMedia2 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025749 {"MultiMedia2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25750 {"MultiMedia2 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25751 {"MultiMedia2 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25752 {"MultiMedia2 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025753 {"MultiMedia2 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25754 {"MultiMedia2 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25755 {"MultiMedia2 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25756 {"MultiMedia2 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025757 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25758 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25759 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25760 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25761 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025762 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025763 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25764 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25765 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25766 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25767 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25768 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025769 {"MultiMedia2 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25770 {"MultiMedia2 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025771
25772 {"MultiMedia3 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25773 {"MultiMedia3 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25774 {"MultiMedia3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25775 {"MultiMedia3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25776 {"MultiMedia3 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25777 {"MultiMedia3 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25778 {"MultiMedia3 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25779 {"MultiMedia3 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25780 {"MultiMedia3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25781 {"MultiMedia3 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25782 {"MultiMedia3 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25783 {"MultiMedia3 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25784 {"MultiMedia3 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25785 {"MultiMedia3 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25786 {"MultiMedia3 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25787 {"MultiMedia3 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025788 {"MultiMedia3 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025789 {"MultiMedia3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25790 {"MultiMedia3 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25791 {"MultiMedia3 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25792 {"MultiMedia3 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025793 {"MultiMedia3 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25794 {"MultiMedia3 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25795 {"MultiMedia3 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25796 {"MultiMedia3 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025797 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25798 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25799 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25800 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25801 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025802 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025803 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25804 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25805 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25806 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25807 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25808 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025809 {"MultiMedia3 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25810 {"MultiMedia3 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025811
25812 {"MultiMedia4 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25813 {"MultiMedia4 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25814 {"MultiMedia4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25815 {"MultiMedia4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25816 {"MultiMedia4 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25817 {"MultiMedia4 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25818 {"MultiMedia4 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25819 {"MultiMedia4 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25820 {"MultiMedia4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25821 {"MultiMedia4 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25822 {"MultiMedia4 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25823 {"MultiMedia4 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25824 {"MultiMedia4 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25825 {"MultiMedia4 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25826 {"MultiMedia4 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25827 {"MultiMedia4 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025828 {"MultiMedia4 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025829 {"MultiMedia4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25830 {"MultiMedia4 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25831 {"MultiMedia4 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25832 {"MultiMedia4 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025833 {"MultiMedia4 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25834 {"MultiMedia4 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25835 {"MultiMedia4 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25836 {"MultiMedia4 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025837 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25838 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25839 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25840 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25841 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025842 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025843 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25844 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25845 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25846 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25847 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25848 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025849 {"MultiMedia4 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25850 {"MultiMedia4 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025851
25852 {"MultiMedia5 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25853 {"MultiMedia5 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25854 {"MultiMedia5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25855 {"MultiMedia5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25856 {"MultiMedia5 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25857 {"MultiMedia5 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25858 {"MultiMedia5 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25859 {"MultiMedia5 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25860 {"MultiMedia5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25861 {"MultiMedia5 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25862 {"MultiMedia5 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25863 {"MultiMedia5 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25864 {"MultiMedia5 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25865 {"MultiMedia5 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25866 {"MultiMedia5 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25867 {"MultiMedia5 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025868 {"MultiMedia5 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025869 {"MultiMedia5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25870 {"MultiMedia5 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25871 {"MultiMedia5 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25872 {"MultiMedia5 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025873 {"MultiMedia5 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25874 {"MultiMedia5 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25875 {"MultiMedia5 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25876 {"MultiMedia5 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025877 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25878 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25879 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25880 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25881 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025882 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025883 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25884 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25885 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25886 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25887 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25888 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025889 {"MultiMedia5 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25890 {"MultiMedia5 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025891
25892 {"MultiMedia6 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25893 {"MultiMedia6 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25894 {"MultiMedia6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25895 {"MultiMedia6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25896 {"MultiMedia6 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25897 {"MultiMedia6 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25898 {"MultiMedia6 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25899 {"MultiMedia6 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25900 {"MultiMedia6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25901 {"MultiMedia6 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25902 {"MultiMedia6 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25903 {"MultiMedia6 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25904 {"MultiMedia6 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25905 {"MultiMedia6 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25906 {"MultiMedia6 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25907 {"MultiMedia6 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025908 {"MultiMedia6 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025909 {"MultiMedia6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25910 {"MultiMedia6 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25911 {"MultiMedia6 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25912 {"MultiMedia6 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025913 {"MultiMedia6 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25914 {"MultiMedia6 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25915 {"MultiMedia6 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25916 {"MultiMedia6 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025917 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25918 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25919 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25920 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25921 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025922 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025923 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25924 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25925 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25926 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25927 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25928 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025929 {"MultiMedia6 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25930 {"MultiMedia6 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025931
25932 {"MultiMedia8 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25933 {"MultiMedia8 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25934 {"MultiMedia8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25935 {"MultiMedia8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25936 {"MultiMedia8 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25937 {"MultiMedia8 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25938 {"MultiMedia8 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25939 {"MultiMedia8 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25940 {"MultiMedia8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25941 {"MultiMedia8 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25942 {"MultiMedia8 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25943 {"MultiMedia8 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25944 {"MultiMedia8 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25945 {"MultiMedia8 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25946 {"MultiMedia8 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25947 {"MultiMedia8 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025948 {"MultiMedia8 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025949 {"MultiMedia8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25950 {"MultiMedia8 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25951 {"MultiMedia8 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25952 {"MultiMedia8 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025953 {"MultiMedia8 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25954 {"MultiMedia8 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25955 {"MultiMedia8 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25956 {"MultiMedia8 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025957 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25958 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25959 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25960 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25961 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025962 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025963 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25964 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25965 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25966 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25967 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25968 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025969 {"MultiMedia8 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25970 {"MultiMedia8 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025971
Samyak Jain810e42a2019-01-07 17:53:34 +053025972 {"MultiMedia9 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025973 {"MultiMedia9 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25974 {"MultiMedia9 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25975 {"MultiMedia9 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25976 {"MultiMedia9 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25977 {"MultiMedia9 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25978 {"MultiMedia9 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25979 {"MultiMedia9 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25980 {"MultiMedia9 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053025981 {"MultiMedia9 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25982 {"MultiMedia9 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25983 {"MultiMedia9 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25984 {"MultiMedia9 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025985 {"MultiMedia9 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25986 {"MultiMedia9 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25987 {"MultiMedia9 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25988 {"MultiMedia9 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025989 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25990 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25991 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25992 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25993 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025994 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025995 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25996 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25997 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25998 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25999 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26000 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026001 {"MultiMedia9 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26002 {"MultiMedia9 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026003 {"MultiMedia9 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026004
Laxminath Kasam38070be2017-08-17 18:21:59 +053026005 {"MultiMedia10 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26006 {"MultiMedia10 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26007 {"MultiMedia10 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26008 {"MultiMedia10 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26009 {"MultiMedia10 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26010 {"MultiMedia10 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26011 {"MultiMedia10 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26012 {"MultiMedia10 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026013 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26014 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26015 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26016 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26017 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26018 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026019 {"MultiMedia10 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026020
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026021 {"MultiMedia20 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26022 {"MultiMedia20 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26023 {"MultiMedia20 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26024 {"MultiMedia20 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026025 {"MultiMedia20 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026026 {"MultiMedia20 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026027 {"MultiMedia20 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26028 {"MultiMedia20 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26029 {"MultiMedia20 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26030 {"MultiMedia20 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26031 {"MultiMedia20 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26032 {"MultiMedia20 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26033 {"MultiMedia20 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26034 {"MultiMedia20 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26035 {"MultiMedia20 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26036 {"MultiMedia20 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26037 {"MultiMedia20 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26038 {"MultiMedia20 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26039 {"MultiMedia20 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26040 {"MultiMedia20 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26041 {"MultiMedia20 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26042 {"MultiMedia20 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026043 {"MultiMedia20 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26044 {"MultiMedia20 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26045 {"MultiMedia20 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26046 {"MultiMedia20 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026047 {"MultiMedia20 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26048 {"MultiMedia20 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26049 {"MultiMedia20 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26050 {"MultiMedia20 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026051 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26052 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26053 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26054 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26055 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026056 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026057 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26058 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26059 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26060 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26061 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26062 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026063 {"MultiMedia20 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26064 {"MultiMedia20 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026065 {"MultiMedia20 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026066
Derek Chen07c6d1c2018-07-05 10:39:25 -070026067 {"MultiMedia21 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26068 {"MultiMedia21 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26069 {"MultiMedia21 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26070 {"MultiMedia21 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26071 {"MultiMedia21 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26072 {"MultiMedia21 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26073 {"MultiMedia21 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26074 {"MultiMedia21 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26075 {"MultiMedia21 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26076 {"MultiMedia21 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26077 {"MultiMedia21 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26078 {"MultiMedia21 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26079 {"MultiMedia21 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26080 {"MultiMedia21 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26081 {"MultiMedia21 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26082 {"MultiMedia21 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26083 {"MultiMedia21 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26084 {"MultiMedia21 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26085 {"MultiMedia21 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26086 {"MultiMedia21 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26087 {"MultiMedia21 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26088 {"MultiMedia21 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026089 {"MultiMedia21 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26090 {"MultiMedia21 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26091 {"MultiMedia21 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26092 {"MultiMedia21 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053026093 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26094 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26095 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26096 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26097 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026098 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053026099 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26100 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26101 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26102 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26103 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26104 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
26105 {"MultiMedia21 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26106 {"MultiMedia21 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026107 {"MultiMedia21 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026108
Derek Chenb097d922019-07-31 17:28:02 -070026109 {"MultiMedia22 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26110 {"MultiMedia22 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26111 {"MultiMedia22 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26112 {"MultiMedia22 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26113 {"MultiMedia22 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26114 {"MultiMedia22 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26115 {"MultiMedia22 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26116 {"MultiMedia22 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26117 {"MultiMedia22 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26118 {"MultiMedia22 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26119 {"MultiMedia22 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26120 {"MultiMedia22 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26121 {"MultiMedia22 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26122 {"MultiMedia22 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26123 {"MultiMedia22 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26124 {"MultiMedia22 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26125 {"MultiMedia22 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26126 {"MultiMedia22 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26127 {"MultiMedia22 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26128 {"MultiMedia22 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
26129
Surendar Karkac1cde372018-08-14 18:56:24 +053026130 {"MultiMedia27 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053026131 {"MultiMedia27 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026132 {"MultiMedia27 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
26133 {"MultiMedia27 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053026134 {"MultiMedia27 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026135 {"MultiMedia27 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26136 {"MultiMedia27 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26137 {"MultiMedia27 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26138 {"MultiMedia27 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26139 {"MultiMedia27 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026140 {"MultiMedia27 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026141 {"MultiMedia27 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26142 {"MultiMedia27 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026143 {"MultiMedia27 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026144
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026145 {"MultiMedia1 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26146 {"MultiMedia2 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26147 {"MultiMedia4 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26148 {"MultiMedia5 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26149 {"MultiMedia6 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26150 {"MultiMedia8 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026151 {"MultiMedia10 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026152
Asish Bhattacharya34504582017-08-08 12:55:01 +053026153 {"MultiMedia16 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26154 {"MultiMedia16 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26155 {"MultiMedia16 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26156 {"MultiMedia16 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26157 {"MultiMedia16 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26158 {"MultiMedia16 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26159 {"MultiMedia16 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26160 {"MultiMedia16 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26161 {"MultiMedia16 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26162 {"MultiMedia16 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26163 {"MultiMedia16 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26164 {"MultiMedia16 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26165 {"MultiMedia16 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26166 {"MultiMedia16 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26167 {"MultiMedia16 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26168 {"MultiMedia16 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26169 {"MultiMedia16 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026170 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26171 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26172 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26173 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26174 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026175 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026176 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26177 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26178 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26179 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26180 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26181 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026182 {"MultiMedia16 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26183 {"MultiMedia16 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026184 {"MultiMedia16 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026185
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026186 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26187 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26188 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26189 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26190 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26191 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026192 {"MultiMedia17 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026193
26194 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26195 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26196 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26197 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26198 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26199 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026200 {"MultiMedia18 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053026201 {"MultiMedia18 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26202 {"MultiMedia18 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026203
26204 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26205 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26206 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26207 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26208 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26209 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026210 {"MultiMedia19 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053026211 {"MultiMedia19 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26212 {"MultiMedia19 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026213
26214 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26215 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26216 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26217 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26218 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26219 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026220 {"MultiMedia28 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053026221 {"MultiMedia28 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26222 {"MultiMedia28 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026223
26224 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26225 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26226 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26227 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26228 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26229 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026230 {"MultiMedia29 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053026231 {"MultiMedia29 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26232 {"MultiMedia29 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026233
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026234 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26235 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26236 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26237 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26238 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26239 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
26240 {"MultiMedia30 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
26241 {"MultiMedia30 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26242 {"MultiMedia30 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
26243
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026244 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26245 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26246 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26247 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26248 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26249 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26250 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26251 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26252 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26253 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26254 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26255 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26256 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26257 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26258 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26259 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26260 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
26261 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Audio Mixer"},
26262
26263 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26264 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26265 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26266 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26267 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26268 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26269 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26270 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26271 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26272 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26273 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26274 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26275 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26276 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26277 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26278 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26279 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
26280 {"INT_BT_A2DP_RX", NULL, "INTERNAL_A2DP_RX Audio Mixer"},
26281
26282 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26283 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26284 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26285 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26286 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26287 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26288 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26289 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26290 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26291 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26292 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26293 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26294 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26295 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26296 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26297 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26298 {"INT_FM_RX", NULL, "INTERNAL_FM_RX Audio Mixer"},
26299
26300 {"AFE_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26301 {"AFE_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26302 {"AFE_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26303 {"AFE_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26304 {"AFE_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26305 {"AFE_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26306 {"AFE_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26307 {"AFE_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26308 {"AFE_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26309 {"AFE_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26310 {"AFE_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26311 {"AFE_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26312 {"AFE_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26313 {"AFE_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26314 {"AFE_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26315 {"AFE_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26316 {"PCM_RX", NULL, "AFE_PCM_RX Audio Mixer"},
26317
26318 {"MultiMedia1 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26319 {"MultiMedia3 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26320 {"MultiMedia4 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026321 {"MultiMedia10 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026322 {"MultiMedia17 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26323 {"MultiMedia18 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26324 {"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026325 {"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26326 {"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026327 {"MultiMedia30 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026328 {"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26329 {"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026330 {"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026331 {"MultiMedia1 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26332 {"MultiMedia4 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026333 {"MultiMedia16 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026334 {"MultiMedia17 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26335 {"MultiMedia18 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26336 {"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026337 {"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26338 {"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026339 {"MultiMedia30 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026340 {"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26341 {"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26342 {"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26343
26344 {"MultiMedia1 Mixer", "AFE_PCM_TX", "PCM_TX"},
26345 {"MultiMedia3 Mixer", "AFE_PCM_TX", "PCM_TX"},
26346 {"MultiMedia4 Mixer", "AFE_PCM_TX", "PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026347 {"MultiMedia10 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026348 {"MultiMedia17 Mixer", "AFE_PCM_TX", "PCM_TX"},
26349 {"MultiMedia18 Mixer", "AFE_PCM_TX", "PCM_TX"},
26350 {"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026351 {"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
26352 {"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026353 {"MultiMedia30 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026354 {"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
26355 {"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026356 {"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026357 {"MM_UL1", NULL, "MultiMedia1 Mixer"},
26358 {"MultiMedia2 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26359 {"MM_UL2", NULL, "MultiMedia2 Mixer"},
26360 {"MM_UL3", NULL, "MultiMedia3 Mixer"},
26361 {"MM_UL4", NULL, "MultiMedia4 Mixer"},
26362 {"MM_UL5", NULL, "MultiMedia5 Mixer"},
26363 {"MM_UL6", NULL, "MultiMedia6 Mixer"},
26364 {"MM_UL8", NULL, "MultiMedia8 Mixer"},
26365 {"MM_UL9", NULL, "MultiMedia9 Mixer"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026366 {"MM_UL10", NULL, "MultiMedia10 Mixer"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026367 {"MM_UL16", NULL, "MultiMedia16 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026368 {"MM_UL17", NULL, "MultiMedia17 Mixer"},
26369 {"MM_UL18", NULL, "MultiMedia18 Mixer"},
26370 {"MM_UL19", NULL, "MultiMedia19 Mixer"},
26371 {"MM_UL20", NULL, "MultiMedia20 Mixer"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026372 {"MM_UL21", NULL, "MultiMedia21 Mixer"},
Derek Chenb097d922019-07-31 17:28:02 -070026373 {"MM_UL22", NULL, "MultiMedia22 Mixer"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026374 {"MM_UL27", NULL, "MultiMedia27 Mixer"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026375 {"MM_UL28", NULL, "MultiMedia28 Mixer"},
26376 {"MM_UL29", NULL, "MultiMedia29 Mixer"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026377 {"MM_UL30", NULL, "MultiMedia30 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026378
26379 {"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26380 {"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26381 {"AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26382 {"AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26383 {"AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26384 {"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26385 {"AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26386 {"AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26387 {"AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26388 {"AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26389 {"AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26390 {"AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26391 {"AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26392 {"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26393 {"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26394 {"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026395 {"AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026396 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
26397
26398 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26399 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26400 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26401 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26402 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26403 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26404 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26405 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26406 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26407 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26408 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26409 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26410 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26411 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26412 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26413 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026414 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026415 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
26416
26417 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26418 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26419 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26420 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26421 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26422 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26423 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26424 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26425 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26426 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26427 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26428 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26429 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26430 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26431 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26432 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26433 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
26434
26435 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26436 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26437 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26438 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26439 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26440 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26441 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26442 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26443 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26444 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26445 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26446 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26447 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26448 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26449 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26450 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26451 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
26452
Rohit Kumara5077932017-09-10 22:05:05 +053026453 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26454 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26455 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26456 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26457 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26458 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26459 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26460 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26461 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26462 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26463 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26464 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26465 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26466 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26467 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26468 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26469 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX Audio Mixer"},
26470
Karthikeyan Manic3700752019-03-11 18:33:53 -070026471 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26472 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26473 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26474 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26475 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26476 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26477 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26478 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26479 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26480 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26481 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26482 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26483 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26484 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26485 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26486 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26487 {"SEN_AUX_PCM_RX", NULL, "SEN_AUX_PCM_RX Audio Mixer"},
26488
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026489 {"PRI_RX_Voice Mixer", "Voip", "VOIP_DL"},
26490 {"PRI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26491 {"PRI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26492 {"PRI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26493 {"PRI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26494 {"PRI_I2S_RX", NULL, "PRI_RX_Voice Mixer"},
26495
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026496 {"SEC_RX_Voice Mixer", "Voip", "VOIP_DL"},
26497 {"SEC_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26498 {"SEC_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26499 {"SEC_I2S_RX", NULL, "SEC_RX_Voice Mixer"},
26500
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026501 {"SEC_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026502 {"SEC_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26503 {"SEC_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026504 {"SEC_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26505 {"SEC_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26506 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26507 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26508 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_Voice Mixer"},
26509
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026510 {"SLIM_0_RX_Voice Mixer", "Voip", "VOIP_DL"},
26511 {"SLIM_0_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026512 {"SLIM_0_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26513 {"SLIM_0_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26514 {"SLIM_0_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26515 {"SLIMBUS_0_RX", NULL, "SLIM_0_RX_Voice Mixer"},
26516
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026517 {"SLIM_6_RX_Voice Mixer", "Voip", "VOIP_DL"},
26518 {"SLIM_6_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026519 {"SLIM_6_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26520 {"SLIM_6_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26521 {"SLIM_6_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26522 {"SLIMBUS_6_RX", NULL, "SLIM_6_RX_Voice Mixer"},
26523
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026524 {"USB_AUDIO_RX_Voice Mixer", "Voip", "VOIP_DL"},
26525 {"USB_AUDIO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026526 {"USB_AUDIO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26527 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26528 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26529 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
26530
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080026531 {"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
26532 {"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080026533 {"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26534 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26535 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26536 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
26537
Karthikeyan Mani57550082018-05-03 18:43:58 -070026538 {"DISPLAY_PORT_RX1_Voice Mixer", "Voip", "VOIP_DL"},
26539 {"DISPLAY_PORT_RX1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26540 {"DISPLAY_PORT_RX1_Voice Mixer", "QCHAT", "QCHAT_DL"},
26541 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26542 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26543 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1_Voice Mixer"},
26544
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026545 {"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
26546 {"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26547 {"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26548 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26549 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026550 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX_Voice Mixer"},
26551
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026552 {"AFE_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26553 {"AFE_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26554 {"AFE_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26555 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26556 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26557 {"PCM_RX", NULL, "AFE_PCM_RX_Voice Mixer"},
26558
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026559 {"AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26560 {"AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026561 {"AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26562 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26563 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26564 {"AUX_PCM_RX", NULL, "AUX_PCM_RX_Voice Mixer"},
26565
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026566 {"SEC_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26567 {"SEC_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026568 {"SEC_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26569 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26570 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26571 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
26572
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026573 {"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26574 {"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026575 {"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26576 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26577 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26578 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
26579
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026580 {"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26581 {"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026582 {"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26583 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26584 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26585 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
26586
Rohit Kumara5077932017-09-10 22:05:05 +053026587 {"QUIN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26588 {"QUIN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053026589 {"QUIN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26590 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26591 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26592 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX_Voice Mixer"},
26593
Karthikeyan Manic3700752019-03-11 18:33:53 -070026594 {"SEN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26595 {"SEN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26596 {"SEN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26597 {"SEN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26598 {"SEN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26599 {"SEN_AUX_PCM_RX", NULL, "SEN_AUX_PCM_RX_Voice Mixer"},
26600
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026601 {"HDMI_RX_Voice Mixer", "Voip", "VOIP_DL"},
26602 {"HDMI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26603 {"HDMI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26604 {"HDMI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26605 {"HDMI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26606 {"HDMI", NULL, "HDMI_RX_Voice Mixer"},
26607 {"HDMI", NULL, "HDMI_DL_HL"},
26608
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026609 {"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026610 {"MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26611 {"MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026612 {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26613 {"MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26614 {"MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
kunleiz8a60b822017-10-11 15:04:02 +080026615 {"MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026616 {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
26617
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026618 {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026619 {"PRI_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26620 {"PRI_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026621 {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26622 {"PRI_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26623 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26624 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26625 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"},
26626
26627 {"INT0_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
26628 {"INT0_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26629 {"INT0_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26630 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26631 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26632 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_Voice Mixer"},
26633
26634 {"INT4_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
26635 {"INT4_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26636 {"INT4_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26637 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26638 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26639 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_Voice Mixer"},
26640
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026641 {"TERT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026642 {"TERT_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26643 {"TERT_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026644 {"TERT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26645 {"TERT_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26646 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26647 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26648 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_Voice Mixer"},
26649
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026650 {"QUAT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026651 {"QUAT_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26652 {"QUAT_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026653 {"QUAT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26654 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26655 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26656 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_Voice Mixer"},
26657
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026658 {"QUIN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026659 {"QUIN_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26660 {"QUIN_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026661 {"QUIN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26662 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26663 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26664 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"},
26665
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026666 {"PRI_TDM_RX_0_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026667 {"PRI_TDM_RX_0_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
26668 {"PRI_TDM_RX_0_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26669 {"PRI_TDM_RX_0_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
26670 {"PRI_TDM_RX_0_Voice Mixer", "QCHAT", "QCHAT_DL"},
26671 {"PRI_TDM_RX_0_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26672 {"PRI_TDM_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26673 {"PRI_TDM_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26674 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_Voice Mixer"},
26675
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026676 {"PRI_TDM_RX_1_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026677 {"PRI_TDM_RX_1_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
26678 {"PRI_TDM_RX_1_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26679 {"PRI_TDM_RX_1_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
26680 {"PRI_TDM_RX_1_Voice Mixer", "QCHAT", "QCHAT_DL"},
26681 {"PRI_TDM_RX_1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26682 {"PRI_TDM_RX_1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26683 {"PRI_TDM_RX_1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26684 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_Voice Mixer"},
26685
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026686 {"PRI_TDM_RX_2_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026687 {"PRI_TDM_RX_2_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
26688 {"PRI_TDM_RX_2_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26689 {"PRI_TDM_RX_2_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
26690 {"PRI_TDM_RX_2_Voice Mixer", "QCHAT", "QCHAT_DL"},
26691 {"PRI_TDM_RX_2_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26692 {"PRI_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26693 {"PRI_TDM_RX_2_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26694 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_Voice Mixer"},
26695
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026696 {"PRI_TDM_RX_3_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026697 {"PRI_TDM_RX_3_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
26698 {"PRI_TDM_RX_3_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26699 {"PRI_TDM_RX_3_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
26700 {"PRI_TDM_RX_3_Voice Mixer", "QCHAT", "QCHAT_DL"},
26701 {"PRI_TDM_RX_3_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26702 {"PRI_TDM_RX_3_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26703 {"PRI_TDM_RX_3_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26704 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_Voice Mixer"},
26705
Karthikeyan Manic3700752019-03-11 18:33:53 -070026706 {"SEN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
26707 {"SEN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26708 {"SEN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26709 {"SEN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26710 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX_Voice Mixer"},
26711
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026712 {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26713 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"},
26714
Kunlei Zhang478379f2019-08-01 17:05:33 +080026715 {"WSA_CDC_DMA_RX_0_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053026716 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26717 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26718 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_Voice Mixer"},
26719
Kunlei Zhang478379f2019-08-01 17:05:33 +080026720 {"RX_CDC_DMA_RX_0_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053026721 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26722 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26723 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_Voice Mixer"},
26724
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026725 {"VOC_EXT_EC MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26726 {"VOC_EXT_EC MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26727 {"VOC_EXT_EC MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26728 {"VOC_EXT_EC MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026729 {"VOC_EXT_EC MUX", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026730 {"VOC_EXT_EC MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Karthikeyan Mani925413e2019-09-10 16:57:28 -070026731 {"VOC_EXT_EC MUX", "PRI_TDM_TX", "PRI_TDM_TX_0"},
Karthikeyan Mania1eb9382018-07-25 10:52:58 -070026732 {"VOC_EXT_EC MUX", "SEC_TDM_TX", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026733 {"VOIP_UL", NULL, "VOC_EXT_EC MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026734 {"VOICEMMODE1_UL", NULL, "VOC_EXT_EC MUX"},
26735 {"VOICEMMODE2_UL", NULL, "VOC_EXT_EC MUX"},
26736
26737 {"AUDIO_REF_EC_UL1 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26738 {"AUDIO_REF_EC_UL1 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26739 {"AUDIO_REF_EC_UL1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26740 {"AUDIO_REF_EC_UL1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26741 {"AUDIO_REF_EC_UL1 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
26742 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26743 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
26744 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
26745 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
26746 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070026747 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
26748 {"AUDIO_REF_EC_UL1 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026749
26750 {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26751 {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26752 {"AUDIO_REF_EC_UL2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26753 {"AUDIO_REF_EC_UL2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26754
26755 {"AUDIO_REF_EC_UL3 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26756 {"AUDIO_REF_EC_UL3 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26757 {"AUDIO_REF_EC_UL3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26758 {"AUDIO_REF_EC_UL3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26759
26760 {"AUDIO_REF_EC_UL4 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26761 {"AUDIO_REF_EC_UL4 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26762 {"AUDIO_REF_EC_UL4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26763 {"AUDIO_REF_EC_UL4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26764
26765 {"AUDIO_REF_EC_UL5 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26766 {"AUDIO_REF_EC_UL5 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26767 {"AUDIO_REF_EC_UL5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26768 {"AUDIO_REF_EC_UL5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26769
26770 {"AUDIO_REF_EC_UL6 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26771 {"AUDIO_REF_EC_UL6 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26772 {"AUDIO_REF_EC_UL6 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26773 {"AUDIO_REF_EC_UL6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26774
26775 {"AUDIO_REF_EC_UL8 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26776 {"AUDIO_REF_EC_UL8 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26777 {"AUDIO_REF_EC_UL8 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26778 {"AUDIO_REF_EC_UL8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26779
26780 {"AUDIO_REF_EC_UL9 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26781 {"AUDIO_REF_EC_UL9 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26782 {"AUDIO_REF_EC_UL9 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26783 {"AUDIO_REF_EC_UL9 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26784
Laxminath Kasam38070be2017-08-17 18:21:59 +053026785 {"AUDIO_REF_EC_UL10 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26786 {"AUDIO_REF_EC_UL10 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26787 {"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26788 {"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26789 {"AUDIO_REF_EC_UL10 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
26790 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26791 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
26792 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
26793 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
26794 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070026795 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
26796 {"AUDIO_REF_EC_UL10 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Vikram Panduranga016c49f2017-09-11 15:15:56 -070026797
26798 {"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26799 {"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26800 {"AUDIO_REF_EC_UL16 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26801 {"AUDIO_REF_EC_UL16 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26802
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026803 {"AUDIO_REF_EC_UL17 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26804 {"AUDIO_REF_EC_UL17 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26805 {"AUDIO_REF_EC_UL17 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26806 {"AUDIO_REF_EC_UL17 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26807
26808 {"AUDIO_REF_EC_UL18 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26809 {"AUDIO_REF_EC_UL18 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26810 {"AUDIO_REF_EC_UL18 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26811 {"AUDIO_REF_EC_UL18 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26812
26813 {"AUDIO_REF_EC_UL19 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26814 {"AUDIO_REF_EC_UL19 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26815 {"AUDIO_REF_EC_UL19 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26816 {"AUDIO_REF_EC_UL19 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26817
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026818 {"AUDIO_REF_EC_UL28 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26819 {"AUDIO_REF_EC_UL28 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26820 {"AUDIO_REF_EC_UL28 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26821 {"AUDIO_REF_EC_UL28 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26822
26823 {"AUDIO_REF_EC_UL29 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26824 {"AUDIO_REF_EC_UL29 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26825 {"AUDIO_REF_EC_UL29 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26826 {"AUDIO_REF_EC_UL29 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Yunfei Zhang3efc4a22017-11-07 16:30:13 +080026827
26828 {"LSM1_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
26829 {"LSM2_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
26830 {"LSM3_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
26831 {"LSM4_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
26832 {"LSM5_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
26833 {"LSM6_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
26834 {"LSM7_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
26835 {"LSM8_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
26836
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026837 {"MM_UL1", NULL, "AUDIO_REF_EC_UL1 MUX"},
26838 {"MM_UL2", NULL, "AUDIO_REF_EC_UL2 MUX"},
26839 {"MM_UL3", NULL, "AUDIO_REF_EC_UL3 MUX"},
26840 {"MM_UL4", NULL, "AUDIO_REF_EC_UL4 MUX"},
26841 {"MM_UL5", NULL, "AUDIO_REF_EC_UL5 MUX"},
26842 {"MM_UL6", NULL, "AUDIO_REF_EC_UL6 MUX"},
26843 {"MM_UL8", NULL, "AUDIO_REF_EC_UL8 MUX"},
26844 {"MM_UL9", NULL, "AUDIO_REF_EC_UL9 MUX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026845 {"MM_UL10", NULL, "AUDIO_REF_EC_UL10 MUX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026846 {"MM_UL16", NULL, "AUDIO_REF_EC_UL16 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026847 {"MM_UL17", NULL, "AUDIO_REF_EC_UL17 MUX"},
26848 {"MM_UL18", NULL, "AUDIO_REF_EC_UL18 MUX"},
26849 {"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026850 {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
26851 {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026852 {"MM_UL30", NULL, "AUDIO_REF_EC_UL30 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026853
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026854 {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
26855 {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
26856 {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"},
Meng Wang93b92622019-07-24 14:45:19 +080026857 {"VoiceMMode1_Tx Mixer", "SEC_MI2S_TX_MMode1", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026858 {"VoiceMMode1_Tx Mixer", "TERT_MI2S_TX_MMode1", "TERT_MI2S_TX"},
26859 {"VoiceMMode1_Tx Mixer", "INT3_MI2S_TX_MMode1", "INT3_MI2S_TX"},
26860 {"VoiceMMode1_Tx Mixer", "SLIM_0_TX_MMode1", "SLIMBUS_0_TX"},
26861 {"VoiceMMode1_Tx Mixer", "SLIM_7_TX_MMode1", "SLIMBUS_7_TX"},
26862 {"VoiceMMode1_Tx Mixer", "SLIM_8_TX_MMode1", "SLIMBUS_8_TX"},
26863 {"VoiceMMode1_Tx Mixer", "USB_AUDIO_TX_MMode1", "USB_AUDIO_TX"},
26864 {"VoiceMMode1_Tx Mixer", "INT_BT_SCO_TX_MMode1", "INT_BT_SCO_TX"},
26865 {"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
26866 {"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
26867 {"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
26868 {"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
26869 {"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026870 {"VoiceMMode1_Tx Mixer", "QUIN_AUX_PCM_TX_MMode1", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026871 {"VoiceMMode1_Tx Mixer", "SEN_AUX_PCM_TX_MMode1", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026872 {"VoiceMMode1_Tx Mixer", "QUAT_TDM_TX_0_MMode1", "QUAT_TDM_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053026873 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_0_MMode1", "TX_CDC_DMA_TX_0"},
26874 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_1_MMode1", "TX_CDC_DMA_TX_1"},
26875 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_2_MMode1", "TX_CDC_DMA_TX_2"},
26876 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_3_MMode1", "TX_CDC_DMA_TX_3"},
26877 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_4_MMode1", "TX_CDC_DMA_TX_4"},
26878 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_5_MMode1", "TX_CDC_DMA_TX_5"},
Aditya Bavanari1e349b82018-02-23 16:34:40 +053026879 {"VoiceMMode1_Tx Mixer", "QUAT_MI2S_TX_MMode1", "QUAT_MI2S_TX"},
26880 {"VoiceMMode1_Tx Mixer", "QUIN_MI2S_TX_MMode1", "QUIN_MI2S_TX"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026881 {"VoiceMMode1_Tx Mixer", "PRI_TDM_TX_3_MMode1", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026882 {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
26883
26884 {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
26885 {"VoiceMMode2_Tx Mixer", "PRI_MI2S_TX_MMode2", "PRI_MI2S_TX"},
Meng Wang93b92622019-07-24 14:45:19 +080026886 {"VoiceMMode2_Tx Mixer", "SEC_MI2S_TX_MMode2", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026887 {"VoiceMMode2_Tx Mixer", "MI2S_TX_MMode2", "MI2S_TX"},
26888 {"VoiceMMode2_Tx Mixer", "TERT_MI2S_TX_MMode2", "TERT_MI2S_TX"},
26889 {"VoiceMMode2_Tx Mixer", "INT3_MI2S_TX_MMode2", "INT3_MI2S_TX"},
26890 {"VoiceMMode2_Tx Mixer", "SLIM_0_TX_MMode2", "SLIMBUS_0_TX"},
26891 {"VoiceMMode2_Tx Mixer", "SLIM_7_TX_MMode2", "SLIMBUS_7_TX"},
26892 {"VoiceMMode2_Tx Mixer", "SLIM_8_TX_MMode2", "SLIMBUS_8_TX"},
26893 {"VoiceMMode2_Tx Mixer", "USB_AUDIO_TX_MMode2", "USB_AUDIO_TX"},
26894 {"VoiceMMode2_Tx Mixer", "INT_BT_SCO_TX_MMode2", "INT_BT_SCO_TX"},
26895 {"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
26896 {"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
26897 {"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
26898 {"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
26899 {"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026900 {"VoiceMMode2_Tx Mixer", "QUIN_AUX_PCM_TX_MMode2", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026901 {"VoiceMMode2_Tx Mixer", "SEN_AUX_PCM_TX_MMode2", "SEN_AUX_PCM_TX"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053026902 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_0_MMode2", "TX_CDC_DMA_TX_0"},
26903 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_1_MMode2", "TX_CDC_DMA_TX_1"},
26904 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_2_MMode2", "TX_CDC_DMA_TX_2"},
26905 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_3_MMode2", "TX_CDC_DMA_TX_3"},
26906 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_4_MMode2", "TX_CDC_DMA_TX_4"},
26907 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_5_MMode2", "TX_CDC_DMA_TX_5"},
Aditya Bavanari1e349b82018-02-23 16:34:40 +053026908 {"VoiceMMode2_Tx Mixer", "QUAT_MI2S_TX_MMode2", "QUAT_MI2S_TX"},
26909 {"VoiceMMode2_Tx Mixer", "QUIN_MI2S_TX_MMode2", "QUIN_MI2S_TX"},
Vignesh Kulothungan1572b9f2019-05-16 14:56:31 -070026910 {"VoiceMMode2_Tx Mixer", "PRI_TDM_TX_3_MMode2", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026911 {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
26912
26913 {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
26914 {"Voip_Tx Mixer", "MI2S_TX_Voip", "MI2S_TX"},
Meng Wang93b92622019-07-24 14:45:19 +080026915 {"Voip_Tx Mixer", "SEC_MI2S_TX_Voip", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026916 {"Voip_Tx Mixer", "TERT_MI2S_TX_Voip", "TERT_MI2S_TX"},
26917 {"Voip_Tx Mixer", "INT3_MI2S_TX_Voip", "INT3_MI2S_TX"},
26918 {"Voip_Tx Mixer", "SLIM_0_TX_Voip", "SLIMBUS_0_TX"},
26919 {"Voip_Tx Mixer", "SLIM_7_TX_Voip", "SLIMBUS_7_TX"},
26920 {"Voip_Tx Mixer", "SLIM_8_TX_Voip", "SLIMBUS_8_TX"},
26921 {"Voip_Tx Mixer", "USB_AUDIO_TX_Voip", "USB_AUDIO_TX"},
26922 {"Voip_Tx Mixer", "INTERNAL_BT_SCO_TX_Voip", "INT_BT_SCO_TX"},
26923 {"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
26924 {"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
26925 {"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
26926 {"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
26927 {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026928 {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026929 {"Voip_Tx Mixer", "SEN_AUX_PCM_TX_Voip", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026930 {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026931 {"Voip_Tx Mixer", "PRI_TDM_TX_3_Voip", "PRI_TDM_TX_3"},
Kunlei Zhang478379f2019-08-01 17:05:33 +080026932 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_0_Voip", "TX_CDC_DMA_TX_0"},
26933 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_1_Voip", "TX_CDC_DMA_TX_1"},
26934 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_2_Voip", "TX_CDC_DMA_TX_2"},
26935 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_3_Voip", "TX_CDC_DMA_TX_3"},
26936 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_4_Voip", "TX_CDC_DMA_TX_4"},
26937 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_5_Voip", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026938 {"VOIP_UL", NULL, "Voip_Tx Mixer"},
26939
26940 {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},
26941 {"SLIMBUS_0_RX", NULL, "SLIMBUS_DL_HL"},
26942 {"SLIMBUS1_DL_HL", "Switch", "SLIM1_DL_HL"},
26943 {"SLIMBUS_1_RX", NULL, "SLIMBUS1_DL_HL"},
26944 {"SLIMBUS3_DL_HL", "Switch", "SLIM3_DL_HL"},
26945 {"SLIMBUS_3_RX", NULL, "SLIMBUS3_DL_HL"},
26946 {"SLIMBUS4_DL_HL", "Switch", "SLIM4_DL_HL"},
26947 {"SLIMBUS_4_RX", NULL, "SLIMBUS4_DL_HL"},
26948 {"SLIMBUS6_DL_HL", "Switch", "SLIM0_DL_HL"},
26949 {"SLIMBUS_6_RX", NULL, "SLIMBUS6_DL_HL"},
Zhou Songcaa541d2019-02-19 18:37:47 +080026950 {"SCO_SLIM7_DL_HL", "Switch", "SLIM7_DL_HL"},
26951 {"SLIMBUS_7_RX", NULL, "SCO_SLIM7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026952 {"SLIM0_UL_HL", NULL, "SLIMBUS_0_TX"},
26953 {"SLIM1_UL_HL", NULL, "SLIMBUS_1_TX"},
26954 {"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
26955 {"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
26956 {"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053026957 {"WSA_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
26958 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_DL_HL"},
26959 {"CDC_DMA_UL_HL", NULL, "VA_CDC_DMA_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053026960 {"RX_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
26961 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_DL_HL"},
26962 {"TX3_CDC_DMA_UL_HL", NULL, "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026963 {"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
26964 {"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
26965 {"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
26966 {"LSM1 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
26967 {"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
26968 {"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26969 {"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26970 {"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053026971 {"LSM1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26972 {"LSM1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026973 {"LSM1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053026974 {"LSM1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053026975 {"LSM1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026976 {"LSM1_UL_HL", NULL, "LSM1 Mixer"},
26977
26978 {"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
26979 {"LSM2 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
26980 {"LSM2 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
26981 {"LSM2 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
26982 {"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
26983 {"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26984 {"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26985 {"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053026986 {"LSM2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26987 {"LSM2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026988 {"LSM2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053026989 {"LSM2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053026990 {"LSM2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026991 {"LSM2_UL_HL", NULL, "LSM2 Mixer"},
26992
26993
26994 {"LSM3 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
26995 {"LSM3 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
26996 {"LSM3 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
26997 {"LSM3 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
26998 {"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
26999 {"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27000 {"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27001 {"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027002 {"LSM3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27003 {"LSM3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027004 {"LSM3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027005 {"LSM3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027006 {"LSM3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027007 {"LSM3_UL_HL", NULL, "LSM3 Mixer"},
27008
27009
27010 {"LSM4 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27011 {"LSM4 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27012 {"LSM4 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27013 {"LSM4 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27014 {"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27015 {"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27016 {"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27017 {"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027018 {"LSM4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27019 {"LSM4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027020 {"LSM4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027021 {"LSM4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027022 {"LSM4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027023 {"LSM4_UL_HL", NULL, "LSM4 Mixer"},
27024
27025 {"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27026 {"LSM5 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27027 {"LSM5 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27028 {"LSM5 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27029 {"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27030 {"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27031 {"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27032 {"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027033 {"LSM5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27034 {"LSM5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027035 {"LSM5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027036 {"LSM5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027037 {"LSM5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027038 {"LSM5_UL_HL", NULL, "LSM5 Mixer"},
27039
27040 {"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27041 {"LSM6 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27042 {"LSM6 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27043 {"LSM6 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27044 {"LSM6 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27045 {"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027046 {"LSM6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27047 {"LSM6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027048 {"LSM6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027049 {"LSM6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027050 {"LSM6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027051 {"LSM6_UL_HL", NULL, "LSM6 Mixer"},
27052
27053 {"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27054 {"LSM7 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27055 {"LSM7 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27056 {"LSM7 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27057 {"LSM7 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27058 {"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027059 {"LSM7 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27060 {"LSM7 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027061 {"LSM7 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027062 {"LSM7 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027063 {"LSM7 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027064 {"LSM7_UL_HL", NULL, "LSM7 Mixer"},
27065
27066 {"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27067 {"LSM8 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27068 {"LSM8 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27069 {"LSM8 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27070 {"LSM8 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27071 {"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027072 {"LSM8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27073 {"LSM8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027074 {"LSM8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027075 {"LSM8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027076 {"LSM8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027077 {"LSM8_UL_HL", NULL, "LSM8 Mixer"},
27078
27079
27080 {"CPE_LSM_UL_HL", NULL, "BE_IN"},
27081 {"QCHAT_Tx Mixer", "PRI_TX_QCHAT", "PRI_I2S_TX"},
27082 {"QCHAT_Tx Mixer", "SLIM_0_TX_QCHAT", "SLIMBUS_0_TX"},
27083 {"QCHAT_Tx Mixer", "SLIM_7_TX_QCHAT", "SLIMBUS_7_TX"},
27084 {"QCHAT_Tx Mixer", "SLIM_8_TX_QCHAT", "SLIMBUS_8_TX"},
27085 {"QCHAT_Tx Mixer", "INTERNAL_BT_SCO_TX_QCHAT", "INT_BT_SCO_TX"},
27086 {"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
27087 {"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
27088 {"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
27089 {"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
27090 {"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027091 {"QCHAT_Tx Mixer", "QUIN_AUX_PCM_TX_QCHAT", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027092 {"QCHAT_Tx Mixer", "SEN_AUX_PCM_TX_QCHAT", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027093 {"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
27094 {"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
27095 {"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
27096 {"QCHAT_Tx Mixer", "INT3_MI2S_TX_QCHAT", "INT3_MI2S_TX"},
27097 {"QCHAT_Tx Mixer", "USB_AUDIO_TX_QCHAT", "USB_AUDIO_TX"},
27098 {"QCHAT_UL", NULL, "QCHAT_Tx Mixer"},
27099
27100 {"INT_FM_RX", NULL, "INTFM_DL_HL"},
27101 {"INTFM_UL_HL", NULL, "INT_FM_TX"},
27102 {"INTHFP_UL_HL", NULL, "HFP_PRI_AUX_UL_HL"},
27103 {"HFP_PRI_AUX_UL_HL", "Switch", "AUX_PCM_TX"},
27104 {"INTHFP_UL_HL", NULL, "HFP_AUX_UL_HL"},
27105 {"HFP_AUX_UL_HL", "Switch", "SEC_AUX_PCM_TX"},
27106 {"INTHFP_UL_HL", NULL, "HFP_INT_UL_HL"},
27107 {"HFP_INT_UL_HL", "Switch", "INT_BT_SCO_TX"},
27108 {"SLIM7_UL_HL", NULL, "HFP_SLIM7_UL_HL"},
27109 {"HFP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
27110 {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"},
27111 {"AUX_PCM_RX", NULL, "INTHFP_DL_HL"},
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080027112 {"SLIM7_UL_HL", NULL, "A2DP_SLIM7_UL_HL"},
27113 {"A2DP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080027114 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027115 {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080027116 {"SEC_AUXPCM_UL_HL", NULL, "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027117 {"MI2S_RX", NULL, "MI2S_DL_HL"},
27118 {"MI2S_UL_HL", NULL, "MI2S_TX"},
27119 {"PCM_RX_DL_HL", "Switch", "SLIM0_DL_HL"},
27120 {"PCM_RX", NULL, "PCM_RX_DL_HL"},
27121
27122 /* connect to INT4_MI2S_DL_HL since same pcm_id */
27123 {"INT0_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
27124 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_DL_HL"},
27125 {"INT4_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
27126 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_DL_HL"},
27127 {"PRI_MI2S_RX_DL_HL", "Switch", "PRI_MI2S_DL_HL"},
27128 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_DL_HL"},
27129 {"SEC_MI2S_RX_DL_HL", "Switch", "SEC_MI2S_DL_HL"},
27130 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_DL_HL"},
27131 {"TERT_MI2S_RX_DL_HL", "Switch", "TERT_MI2S_DL_HL"},
27132 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_DL_HL"},
27133
27134 {"QUAT_MI2S_RX_DL_HL", "Switch", "QUAT_MI2S_DL_HL"},
27135 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053027136 {"QUIN_MI2S_RX_DL_HL", "Switch", "QUIN_MI2S_DL_HL"},
27137 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_DL_HL"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027138 {"SEN_MI2S_RX_DL_HL", "Switch", "SEN_MI2S_DL_HL"},
27139 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027140 {"MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
27141 {"INT3_MI2S_UL_HL", NULL, "INT3_MI2S_TX"},
27142 {"TERT_MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
27143 {"SEC_I2S_RX", NULL, "SEC_I2S_DL_HL"},
27144 {"PRI_MI2S_UL_HL", NULL, "PRI_MI2S_TX"},
27145 {"SEC_MI2S_UL_HL", NULL, "SEC_MI2S_TX"},
27146 {"SEC_MI2S_RX", NULL, "SEC_MI2S_DL_HL"},
27147 {"PRI_MI2S_RX", NULL, "PRI_MI2S_DL_HL"},
27148 {"TERT_MI2S_RX", NULL, "TERT_MI2S_DL_HL"},
27149 {"QUAT_MI2S_UL_HL", NULL, "QUAT_MI2S_TX"},
27150
27151 {"PRI_TDM_TX_0_UL_HL", NULL, "PRI_TDM_TX_0"},
27152 {"PRI_TDM_TX_1_UL_HL", NULL, "PRI_TDM_TX_1"},
27153 {"PRI_TDM_TX_2_UL_HL", NULL, "PRI_TDM_TX_2"},
27154 {"PRI_TDM_TX_3_UL_HL", NULL, "PRI_TDM_TX_3"},
27155 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_DL_HL"},
27156 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_DL_HL"},
27157 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_DL_HL"},
27158 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_DL_HL"},
27159 {"SEC_TDM_TX_0_UL_HL", NULL, "SEC_TDM_TX_0"},
27160 {"SEC_TDM_TX_1_UL_HL", NULL, "SEC_TDM_TX_1"},
27161 {"SEC_TDM_TX_2_UL_HL", NULL, "SEC_TDM_TX_2"},
27162 {"SEC_TDM_TX_3_UL_HL", NULL, "SEC_TDM_TX_3"},
27163 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0_DL_HL"},
27164 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
27165 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
27166 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
Derek Chenfdcc0982018-10-02 15:14:03 -070027167 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027168 {"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
27169 {"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
27170 {"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
27171 {"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070027172 {"TERT_TDM_TX_7_UL_HL", NULL, "TERT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027173 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
27174 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
27175 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
27176 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3_DL_HL"},
27177 {"QUAT_TDM_TX_0_UL_HL", NULL, "QUAT_TDM_TX_0"},
27178 {"QUAT_TDM_TX_1_UL_HL", NULL, "QUAT_TDM_TX_1"},
27179 {"QUAT_TDM_TX_2_UL_HL", NULL, "QUAT_TDM_TX_2"},
27180 {"QUAT_TDM_TX_3_UL_HL", NULL, "QUAT_TDM_TX_3"},
Derek Chenb9048cb2019-03-07 14:54:13 -050027181 {"QUAT_TDM_TX_7_UL_HL", NULL, "QUAT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027182 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0_DL_HL"},
27183 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1_DL_HL"},
27184 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_DL_HL"},
27185 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3_DL_HL"},
Derek Chenb9048cb2019-03-07 14:54:13 -050027186 {"QUAT_TDM_RX_7", NULL, "QUAT_TDM_RX_7_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053027187 {"QUIN_TDM_TX_0_UL_HL", NULL, "QUIN_TDM_TX_0"},
27188 {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"},
27189 {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"},
27190 {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"},
Han Lu7b6c5882019-06-09 16:03:21 +080027191 {"QUIN_TDM_TX_7_UL_HL", NULL, "QUIN_TDM_TX_7"},
Rohit Kumara5077932017-09-10 22:05:05 +053027192 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"},
27193 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"},
27194 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"},
27195 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"},
Han Lu7b6c5882019-06-09 16:03:21 +080027196 {"QUIN_TDM_RX_7", NULL, "QUIN_TDM_RX_7_DL_HL"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027197 {"SEN_TDM_TX_0_UL_HL", NULL, "SEN_TDM_TX_0"},
27198 {"SEN_TDM_TX_1_UL_HL", NULL, "SEN_TDM_TX_1"},
27199 {"SEN_TDM_TX_2_UL_HL", NULL, "SEN_TDM_TX_2"},
27200 {"SEN_TDM_TX_3_UL_HL", NULL, "SEN_TDM_TX_3"},
27201 {"SEN_TDM_RX_0", NULL, "SEN_TDM_RX_0_DL_HL"},
27202 {"SEN_TDM_RX_1", NULL, "SEN_TDM_RX_1_DL_HL"},
27203 {"SEN_TDM_RX_2", NULL, "SEN_TDM_RX_2_DL_HL"},
27204 {"SEN_TDM_RX_3", NULL, "SEN_TDM_RX_3_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027205
27206 {"PRI_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27207 {"PRI_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27208 {"PRI_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27209 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27210 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27211 {"PRI_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27212 {"PRI_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27213 {"PRI_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27214 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
27215 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
27216 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
27217 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
27218 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27219 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27220 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27221 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027222 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27223 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27224 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27225 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027226 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27227 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27228 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27229 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027230 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Port Mixer"},
27231
27232 {"PRI_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27233 {"PRI_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27234 {"PRI_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27235 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27236 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27237 {"PRI_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27238 {"PRI_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27239 {"PRI_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27240 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
27241 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
27242 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
27243 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
27244 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27245 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27246 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27247 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027248 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27249 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27250 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27251 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027252 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27253 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27254 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27255 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027256 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Port Mixer"},
27257
27258 {"PRI_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27259 {"PRI_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27260 {"PRI_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27261 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27262 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27263 {"PRI_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27264 {"PRI_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27265 {"PRI_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27266 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
27267 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
27268 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
27269 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
27270 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27271 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27272 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27273 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027274 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27275 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27276 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27277 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027278 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27279 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27280 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27281 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027282 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Port Mixer"},
27283
27284 {"PRI_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27285 {"PRI_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27286 {"PRI_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27287 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27288 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27289 {"PRI_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27290 {"PRI_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27291 {"PRI_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27292 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
27293 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
27294 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
27295 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
27296 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27297 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27298 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27299 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027300 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27301 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27302 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27303 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027304 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27305 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27306 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27307 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027308 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Port Mixer"},
27309
27310 {"SEC_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27311 {"SEC_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27312 {"SEC_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27313 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27314 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27315 {"SEC_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27316 {"SEC_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27317 {"SEC_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27318 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
27319 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
27320 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
27321 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
27322 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27323 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27324 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27325 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027326 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27327 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27328 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27329 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027330 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27331 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27332 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27333 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027334 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Port Mixer"},
27335
27336 {"SEC_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27337 {"SEC_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27338 {"SEC_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27339 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27340 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27341 {"SEC_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27342 {"SEC_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27343 {"SEC_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27344 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
27345 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
27346 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
27347 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
27348 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27349 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27350 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27351 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027352 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27353 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27354 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27355 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027356 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27357 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27358 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27359 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027360 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Port Mixer"},
27361
27362 {"SEC_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27363 {"SEC_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27364 {"SEC_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27365 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27366 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27367 {"SEC_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27368 {"SEC_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27369 {"SEC_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27370 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
27371 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
27372 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
27373 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
27374 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27375 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27376 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27377 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027378 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27379 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27380 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27381 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027382 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27383 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27384 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27385 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027386 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Port Mixer"},
27387
27388 {"SEC_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27389 {"SEC_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27390 {"SEC_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27391 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27392 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27393 {"SEC_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27394 {"SEC_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27395 {"SEC_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27396 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
27397 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
27398 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
27399 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
27400 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27401 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27402 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27403 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027404 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27405 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27406 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27407 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027408 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27409 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27410 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27411 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027412 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
27413
Derek Chenfdcc0982018-10-02 15:14:03 -070027414 {"SEC_TDM_RX_7 Port Mixer", "TERT_TDM_TX_7", "TERT_TDM_TX_7"},
27415 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7 Port Mixer"},
27416
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027417 {"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27418 {"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27419 {"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27420 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27421 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27422 {"TERT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27423 {"TERT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27424 {"TERT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27425 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27426 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27427 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27428 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27429 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27430 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27431 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27432 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027433 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27434 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27435 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27436 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027437 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27438 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27439 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27440 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027441 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Port Mixer"},
27442
27443 {"TERT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27444 {"TERT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27445 {"TERT_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27446 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27447 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27448 {"TERT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27449 {"TERT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27450 {"TERT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27451 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27452 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27453 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27454 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27455 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27456 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27457 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27458 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027459 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27460 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27461 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27462 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027463 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27464 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27465 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27466 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027467 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Port Mixer"},
27468
27469 {"TERT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27470 {"TERT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27471 {"TERT_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27472 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27473 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27474 {"TERT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27475 {"TERT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27476 {"TERT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27477 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27478 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27479 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27480 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27481 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27482 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27483 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27484 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027485 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27486 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27487 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27488 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027489 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27490 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27491 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27492 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027493 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Port Mixer"},
27494
27495 {"TERT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27496 {"TERT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27497 {"TERT_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27498 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27499 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27500 {"TERT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27501 {"TERT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27502 {"TERT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27503 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27504 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27505 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27506 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27507 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27508 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27509 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27510 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027511 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27512 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27513 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27514 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027515 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27516 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27517 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27518 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027519 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Port Mixer"},
27520
27521 {"QUAT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27522 {"QUAT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27523 {"QUAT_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27524 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27525 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27526 {"QUAT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27527 {"QUAT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27528 {"QUAT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27529 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27530 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27531 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27532 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27533 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27534 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27535 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27536 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027537 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27538 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27539 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27540 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027541 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27542 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27543 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27544 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027545 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Port Mixer"},
27546
27547 {"QUAT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27548 {"QUAT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27549 {"QUAT_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27550 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27551 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27552 {"QUAT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27553 {"QUAT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27554 {"QUAT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27555 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27556 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27557 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27558 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27559 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27560 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27561 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27562 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027563 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27564 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27565 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27566 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027567 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27568 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27569 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27570 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027571 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Port Mixer"},
27572
27573 {"QUAT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27574 {"QUAT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27575 {"QUAT_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27576 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27577 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27578 {"QUAT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27579 {"QUAT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27580 {"QUAT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27581 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27582 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27583 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27584 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27585 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27586 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27587 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27588 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027589 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27590 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27591 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27592 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027593 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27594 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27595 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27596 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027597 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Port Mixer"},
27598
27599 {"QUAT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27600 {"QUAT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27601 {"QUAT_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27602 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27603 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27604 {"QUAT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27605 {"QUAT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27606 {"QUAT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27607 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27608 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27609 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27610 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27611 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27612 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27613 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27614 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027615 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27616 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27617 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27618 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027619 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27620 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27621 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27622 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027623 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Port Mixer"},
27624
Derek Chenb9048cb2019-03-07 14:54:13 -050027625 {"QUAT_TDM_RX_7 Port Mixer", "QUAT_TDM_TX_7", "QUAT_TDM_TX_7"},
Derek Chen728c5cc2019-06-26 14:21:52 -070027626 {"QUAT_TDM_RX_7 Port Mixer", "QUIN_TDM_TX_7", "QUIN_TDM_TX_7"},
Derek Chenb9048cb2019-03-07 14:54:13 -050027627 {"QUAT_TDM_RX_7", NULL, "QUAT_TDM_RX_7 Port Mixer"},
27628
Rohit Kumara5077932017-09-10 22:05:05 +053027629 {"QUIN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27630 {"QUIN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27631 {"QUIN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27632 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27633 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27634 {"QUIN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27635 {"QUIN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27636 {"QUIN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27637 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27638 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27639 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27640 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27641 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27642 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27643 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27644 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27645 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27646 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27647 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27648 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027649 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27650 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27651 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27652 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053027653 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053027654
27655 {"QUIN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27656 {"QUIN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27657 {"QUIN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27658 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27659 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27660 {"QUIN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27661 {"QUIN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27662 {"QUIN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27663 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27664 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27665 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27666 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27667 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27668 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27669 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27670 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27671 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27672 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27673 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27674 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027675 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27676 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27677 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27678 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053027679 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053027680
27681 {"QUIN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27682 {"QUIN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27683 {"QUIN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27684 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27685 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27686 {"QUIN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27687 {"QUIN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27688 {"QUIN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27689 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27690 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27691 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27692 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27693 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27694 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27695 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27696 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27697 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27698 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27699 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27700 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027701 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27702 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27703 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27704 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053027705 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053027706
27707 {"QUIN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27708 {"QUIN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27709 {"QUIN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27710 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27711 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27712 {"QUIN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27713 {"QUIN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27714 {"QUIN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27715 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27716 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27717 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27718 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27719 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27720 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27721 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27722 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27723 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27724 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27725 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27726 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027727 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27728 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27729 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27730 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053027731 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"},
Derek Chen728c5cc2019-06-26 14:21:52 -070027732
27733 {"QUIN_TDM_RX_7 Port Mixer", "TERT_TDM_TX_7", "TERT_TDM_TX_7"},
27734 {"QUIN_TDM_RX_7 Port Mixer", "QUAT_TDM_TX_7", "QUAT_TDM_TX_7"},
Han Lu7b6c5882019-06-09 16:03:21 +080027735 {"QUIN_TDM_RX_7 Port Mixer", "QUIN_TDM_TX_7", "QUIN_TDM_TX_7"},
27736 {"QUIN_TDM_RX_7", NULL, "QUIN_TDM_RX_7 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053027737
Karthikeyan Manic3700752019-03-11 18:33:53 -070027738 {"SEN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27739 {"SEN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27740 {"SEN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27741 {"SEN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27742 {"SEN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27743 {"SEN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27744 {"SEN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27745 {"SEN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27746 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27747 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27748 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27749 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27750 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27751 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27752 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27753 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27754 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27755 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27756 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27757 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
27758 {"SEN_TDM_RX_0", NULL, "SEN_TDM_RX_0 Port Mixer"},
27759
27760 {"SEN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27761 {"SEN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27762 {"SEN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27763 {"SEN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27764 {"SEN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27765 {"SEN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27766 {"SEN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27767 {"SEN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27768 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27769 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27770 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27771 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27772 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27773 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27774 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27775 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27776 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27777 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27778 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27779 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
27780 {"SEN_TDM_RX_1", NULL, "SEN_TDM_RX_1 Port Mixer"},
27781
27782 {"SEN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27783 {"SEN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27784 {"SEN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27785 {"SEN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27786 {"SEN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27787 {"SEN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27788 {"SEN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27789 {"SEN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27790 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27791 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27792 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27793 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27794 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27795 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27796 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27797 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27798 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27799 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27800 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27801 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
27802 {"SEN_TDM_RX_2", NULL, "SEN_TDM_RX_2 Port Mixer"},
27803
27804 {"SEN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27805 {"SEN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27806 {"SEN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27807 {"SEN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27808 {"SEN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27809 {"SEN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27810 {"SEN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27811 {"SEN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27812 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27813 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27814 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27815 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27816 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27817 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27818 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27819 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27820 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27821 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27822 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27823 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
27824 {"SEN_TDM_RX_3", NULL, "SEN_TDM_RX_3 Port Mixer"},
27825
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027826 {"INT0_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27827 {"INT0_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27828 {"INT0_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27829 {"INT0_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027830 {"INT0_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027831 {"INT0_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027832 {"INT0_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
27833 {"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
27834 {"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
27835 {"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053027836 {"INT0_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027837 {"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27838 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
27839
27840 {"INT4_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27841 {"INT4_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27842 {"INT4_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27843 {"INT4_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027844 {"INT4_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027845 {"INT4_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027846 {"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
27847 {"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
27848 {"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053027849 {"INT4_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027850 {"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27851 {"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27852 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
27853
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053027854 {"WSA_CDC_DMA_RX_0 Port Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27855 {"WSA_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080027856 {"WSA_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080027857 {"WSA_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Meng Wangbbf77922019-03-01 13:24:14 +080027858 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Port Mixer"},
27859
27860 {"RX_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
27861 {"RX_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080027862 {"RX_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Meng Wangbbf77922019-03-01 13:24:14 +080027863 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Port Mixer"},
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053027864
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027865 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27866 {"SLIMBUS_0_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27867 {"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27868 {"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
27869 {"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053027870 {"SLIMBUS_0_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027871 {"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27872 {"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27873 {"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
27874 {"SLIMBUS_0_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027875 {"SLIMBUS_0_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027876 {"SLIMBUS_0_RX Port Mixer", "SEN_AUXPCM_UL_TX", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027877 {"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
27878 {"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27879 {"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27880 {"SLIMBUS_0_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27881 {"SLIMBUS_0_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027882 {"SLIMBUS_0_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027883 {"SLIMBUS_0_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027884 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27885 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
27886 {"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27887 {"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27888 {"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
27889 {"USB_AUDIO_RX Port Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
27890 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Port Mixer"},
27891 {"USB_DL_HL", "Switch", "USBAUDIO_DL_HL"},
27892 {"USB_AUDIO_RX", NULL, "USB_DL_HL"},
27893 {"USBAUDIO_UL_HL", NULL, "USB_AUDIO_TX"},
27894
27895
27896 {"AUX_PCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27897 {"AUX_PCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27898 {"AUX_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27899 {"AUX_PCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27900 {"AUX_PCM_RX Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
Suprith Malligere Shankaregowda467f2c92019-04-19 19:35:41 +053027901 {"AUX_PCM_RX Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080027902 {"AUX_PCM_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027903 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Port Mixer"},
27904
27905 {"SEC_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27906 {"SEC_AUXPCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27907 {"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080027908 {"SEC_AUXPCM_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027909 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
27910
27911 {"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27912 {"TERT_AUXPCM_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
27913 {"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27914 {"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
27915
27916 {"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27917 {"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
27918 {"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27919 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
27920
Rohit Kumara5077932017-09-10 22:05:05 +053027921 {"QUIN_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27922 {"QUIN_AUXPCM_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
27923 {"QUIN_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27924 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUXPCM_RX Port Mixer"},
27925
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027926 {"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
27927 {"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27928 {"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27929 {"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
27930 {"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27931 {"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27932 {"Voice Stub Tx Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
27933 {"Voice Stub Tx Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027934 {"Voice Stub Tx Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027935 {"Voice Stub Tx Mixer", "SEN_AUXPCM_UL_TX", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027936 {"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
27937 {"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27938 {"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27939 {"Voice Stub Tx Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
27940 {"Voice Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27941 {"Voice Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27942 {"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
27943 {"Voice Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
27944 {"Voice Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
27945 {"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
27946 {"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
27947
27948 {"VoLTE Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
27949 {"VoLTE Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27950 {"VoLTE Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
27951 {"VoLTE Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27952 {"VoLTE Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27953 {"VoLTE Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
27954 {"VoLTE Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
27955 {"VoLTE Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
27956 {"VoLTE Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
27957 {"VoLTE Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27958 {"VoLTE Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27959 {"VOLTE_STUB_UL", NULL, "VoLTE Stub Tx Mixer"},
27960
27961 {"Voice2 Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
27962 {"Voice2 Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
27963 {"Voice2 Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
27964 {"Voice2 Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27965 {"Voice2 Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
27966 {"Voice2 Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
27967 {"Voice2 Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
27968 {"Voice2 Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
27969 {"Voice2 Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
27970 {"Voice2 Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27971 {"Voice2 Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Josh Kirsch9d769302018-04-10 17:25:42 -070027972 {"Voice2 Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027973 {"VOICE2_STUB_UL", NULL, "Voice2 Stub Tx Mixer"},
27974
kunleizdf5a00a2017-11-27 15:27:36 +080027975 {"STUB_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27976 {"STUB_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027977 {"STUB_RX", NULL, "STUB_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080027978
27979 {"SLIMBUS_1_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27980 {"SLIMBUS_1_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027981 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080027982
27983 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27984 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027985 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
27986
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027987 {"SLIM_7_RX_Voice Mixer", "Voip", "VOIP_DL"},
27988 {"SLIM_7_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027989 {"SLIM_7_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27990 {"SLIM_7_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27991 {"SLIM_7_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27992 {"SLIMBUS_7_RX", NULL, "SLIM_7_RX_Voice Mixer"},
27993
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027994 {"SLIM_8_RX_Voice Mixer", "Voip", "VOIP_DL"},
27995 {"SLIM_8_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027996 {"SLIM_8_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
27997 {"SLIM_8_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
27998 {"SLIM_8_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
27999 {"SLIMBUS_8_RX", NULL, "SLIM_8_RX_Voice Mixer"},
28000
28001 {"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28002 {"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28003 {"SLIMBUS_1_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28004 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
28005 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28006 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28007 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
28008 {"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
28009 {"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28010 {"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
28011 {"SLIMBUS_3_RX Port Mixer", "AUX_PCM_RX", "AUX_PCM_RX"},
28012 {"SLIMBUS_3_RX Port Mixer", "SLIM_0_RX", "SLIMBUS_0_RX"},
28013 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
28014
28015 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28016 {"SLIMBUS_6_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28017 {"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28018 {"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
28019 {"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053028020 {"SLIMBUS_6_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028021 {"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28022 {"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28023 {"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28024 {"SLIMBUS_6_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28025 {"SLIMBUS_6_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28026 {"SLIMBUS_6_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28027 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28028 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Port Mixer"},
28029
28030 {"HDMI_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28031 {"HDMI", NULL, "HDMI_RX Port Mixer"},
28032
28033 {"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28034 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
28035
Karthikeyan Mani57550082018-05-03 18:43:58 -070028036 {"DISPLAY_PORT_RX1 Port Mixer", "MI2S_TX", "MI2S_TX"},
28037 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1 Port Mixer"},
28038
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028039 {"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28040 {"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
28041
28042 {"MI2S_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28043 {"MI2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28044 {"MI2S_RX", NULL, "MI2S_RX Port Mixer"},
28045
28046 {"PRI_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28047 {"PRI_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28048 {"PRI_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28049 {"PRI_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028050 {"PRI_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028051 {"PRI_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028052 {"PRI_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28053 {"PRI_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28054 {"PRI_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28055 {"PRI_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080028056 {"PRI_MI2S_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028057 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Port Mixer"},
28058
28059 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28060 {"SEC_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28061 {"SEC_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28062 {"SEC_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028063 {"SEC_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028064 {"SEC_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028065 {"SEC_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28066 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28067 {"SEC_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080028068 {"SEC_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028069 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Port Mixer"},
28070
28071 {"TERT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28072 {"TERT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28073 {"TERT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28074 {"TERT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028075 {"TERT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028076 {"TERT_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028077 {"TERT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28078 {"TERT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28079 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Port Mixer"},
28080
28081 {"QUAT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28082 {"QUAT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28083 {"QUAT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28084 {"QUAT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028085 {"QUAT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028086 {"SEN_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028087 {"QUAT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28088 {"QUAT_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28089 {"QUAT_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28090 {"QUAT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28091 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Port Mixer"},
28092
Rohit Kumara5077932017-09-10 22:05:05 +053028093 {"QUIN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28094 {"QUIN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28095 {"QUIN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28096 {"QUIN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28097 {"QUIN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028098 {"QUIN_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028099 {"QUIN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28100 {"QUIN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28101 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Port Mixer"},
28102
Karthikeyan Manic3700752019-03-11 18:33:53 -070028103 {"SEN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28104 {"SEN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28105 {"SEN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28106 {"SEN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28107 {"SEN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
28108 {"SEN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28109 {"SEN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28110 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX Port Mixer"},
28111
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028112 /* Backend Enablement */
28113
28114 {"BE_OUT", NULL, "PRI_I2S_RX"},
28115 {"BE_OUT", NULL, "SEC_I2S_RX"},
28116 {"BE_OUT", NULL, "SLIMBUS_0_RX"},
28117 {"BE_OUT", NULL, "SLIMBUS_1_RX"},
28118 {"BE_OUT", NULL, "SLIMBUS_2_RX"},
28119 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
28120 {"BE_OUT", NULL, "SLIMBUS_4_RX"},
28121 {"BE_OUT", NULL, "SLIMBUS_5_RX"},
28122 {"BE_OUT", NULL, "SLIMBUS_6_RX"},
28123 {"BE_OUT", NULL, "SLIMBUS_7_RX"},
28124 {"BE_OUT", NULL, "SLIMBUS_8_RX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053028125 {"BE_OUT", NULL, "SLIMBUS_9_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028126 {"BE_OUT", NULL, "USB_AUDIO_RX"},
28127 {"BE_OUT", NULL, "HDMI"},
28128 {"BE_OUT", NULL, "DISPLAY_PORT"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070028129 {"BE_OUT", NULL, "DISPLAY_PORT1"},
Ralf Herzc8701f72018-06-20 11:37:35 +020028130 {"BE_OUT", NULL, "PRI_SPDIF_RX"},
28131 {"BE_OUT", NULL, "SEC_SPDIF_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028132 {"BE_OUT", NULL, "MI2S_RX"},
28133 {"BE_OUT", NULL, "QUAT_MI2S_RX"},
28134 {"BE_OUT", NULL, "QUIN_MI2S_RX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028135 {"BE_OUT", NULL, "SEN_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028136 {"BE_OUT", NULL, "TERT_MI2S_RX"},
28137 {"BE_OUT", NULL, "SEC_MI2S_RX"},
28138 {"BE_OUT", NULL, "SEC_MI2S_RX_SD1"},
28139 {"BE_OUT", NULL, "PRI_MI2S_RX"},
28140 {"BE_OUT", NULL, "INT0_MI2S_RX"},
28141 {"BE_OUT", NULL, "INT4_MI2S_RX"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053028142 {"BE_OUT", NULL, "INT2_MI2S_RX"},
28143 {"BE_OUT", NULL, "INT3_MI2S_RX"},
28144 {"BE_OUT", NULL, "INT5_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028145 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
28146 {"BE_OUT", NULL, "INT_BT_A2DP_RX"},
28147 {"BE_OUT", NULL, "INT_FM_RX"},
28148 {"BE_OUT", NULL, "PCM_RX"},
28149 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
28150 {"BE_OUT", NULL, "AUX_PCM_RX"},
28151 {"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
28152 {"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
28153 {"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028154 {"BE_OUT", NULL, "QUIN_AUX_PCM_RX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028155 {"BE_OUT", NULL, "SEN_AUX_PCM_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028156 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
28157 {"BE_OUT", NULL, "INT_FM_RX"},
28158 {"BE_OUT", NULL, "PCM_RX"},
28159 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
28160 {"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
28161 {"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
28162 {"BE_OUT", NULL, "PRI_TDM_RX_0"},
28163 {"BE_OUT", NULL, "PRI_TDM_RX_1"},
28164 {"BE_OUT", NULL, "PRI_TDM_RX_2"},
28165 {"BE_OUT", NULL, "PRI_TDM_RX_3"},
28166 {"BE_OUT", NULL, "SEC_TDM_RX_0"},
28167 {"BE_OUT", NULL, "SEC_TDM_RX_1"},
28168 {"BE_OUT", NULL, "SEC_TDM_RX_2"},
28169 {"BE_OUT", NULL, "SEC_TDM_RX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070028170 {"BE_OUT", NULL, "SEC_TDM_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028171 {"BE_OUT", NULL, "TERT_TDM_RX_0"},
28172 {"BE_OUT", NULL, "TERT_TDM_RX_1"},
28173 {"BE_OUT", NULL, "TERT_TDM_RX_2"},
28174 {"BE_OUT", NULL, "TERT_TDM_RX_3"},
28175 {"BE_OUT", NULL, "TERT_TDM_RX_4"},
28176 {"BE_OUT", NULL, "QUAT_TDM_RX_0"},
28177 {"BE_OUT", NULL, "QUAT_TDM_RX_1"},
28178 {"BE_OUT", NULL, "QUAT_TDM_RX_2"},
28179 {"BE_OUT", NULL, "QUAT_TDM_RX_3"},
Derek Chenb9048cb2019-03-07 14:54:13 -050028180 {"BE_OUT", NULL, "QUAT_TDM_RX_7"},
Rohit Kumara5077932017-09-10 22:05:05 +053028181 {"BE_OUT", NULL, "QUIN_TDM_RX_0"},
28182 {"BE_OUT", NULL, "QUIN_TDM_RX_1"},
28183 {"BE_OUT", NULL, "QUIN_TDM_RX_2"},
28184 {"BE_OUT", NULL, "QUIN_TDM_RX_3"},
Han Lu7b6c5882019-06-09 16:03:21 +080028185 {"BE_OUT", NULL, "QUIN_TDM_RX_7"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028186 {"BE_OUT", NULL, "SEN_TDM_RX_0"},
28187 {"BE_OUT", NULL, "SEN_TDM_RX_1"},
28188 {"BE_OUT", NULL, "SEN_TDM_RX_2"},
28189 {"BE_OUT", NULL, "SEN_TDM_RX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053028190 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_0"},
28191 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053028192 {"BE_OUT", NULL, "RX_CDC_DMA_RX_0"},
28193 {"BE_OUT", NULL, "RX_CDC_DMA_RX_1"},
28194 {"BE_OUT", NULL, "RX_CDC_DMA_RX_2"},
28195 {"BE_OUT", NULL, "RX_CDC_DMA_RX_3"},
28196 {"BE_OUT", NULL, "RX_CDC_DMA_RX_4"},
28197 {"BE_OUT", NULL, "RX_CDC_DMA_RX_5"},
28198 {"BE_OUT", NULL, "RX_CDC_DMA_RX_6"},
28199 {"BE_OUT", NULL, "RX_CDC_DMA_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028200
28201 {"PRI_I2S_TX", NULL, "BE_IN"},
28202 {"MI2S_TX", NULL, "BE_IN"},
28203 {"QUAT_MI2S_TX", NULL, "BE_IN"},
28204 {"QUIN_MI2S_TX", NULL, "BE_IN"},
28205 {"PRI_MI2S_TX", NULL, "BE_IN"},
28206 {"TERT_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053028207 {"INT0_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028208 {"INT2_MI2S_TX", NULL, "BE_IN"},
28209 {"INT3_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053028210 {"INT4_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028211 {"INT5_MI2S_TX", NULL, "BE_IN"},
28212 {"SEC_MI2S_TX", NULL, "BE_IN"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028213 {"SENARY_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028214 {"SLIMBUS_0_TX", NULL, "BE_IN" },
28215 {"SLIMBUS_1_TX", NULL, "BE_IN" },
28216 {"SLIMBUS_3_TX", NULL, "BE_IN" },
28217 {"SLIMBUS_4_TX", NULL, "BE_IN" },
28218 {"SLIMBUS_5_TX", NULL, "BE_IN" },
28219 {"SLIMBUS_6_TX", NULL, "BE_IN" },
28220 {"SLIMBUS_7_TX", NULL, "BE_IN" },
28221 {"SLIMBUS_8_TX", NULL, "BE_IN" },
Surendar Karka3ef3d812018-09-28 18:52:35 +053028222 {"SLIMBUS_9_TX", NULL, "BE_IN" },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028223 {"USB_AUDIO_TX", NULL, "BE_IN" },
28224 {"INT_BT_SCO_TX", NULL, "BE_IN"},
28225 {"INT_FM_TX", NULL, "BE_IN"},
28226 {"PCM_TX", NULL, "BE_IN"},
28227 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
28228 {"BE_OUT", NULL, "STUB_RX"},
28229 {"STUB_TX", NULL, "BE_IN"},
28230 {"STUB_1_TX", NULL, "BE_IN"},
28231 {"BE_OUT", NULL, "AUX_PCM_RX"},
28232 {"AUX_PCM_TX", NULL, "BE_IN"},
28233 {"SEC_AUX_PCM_TX", NULL, "BE_IN"},
28234 {"TERT_AUX_PCM_TX", NULL, "BE_IN"},
28235 {"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053028236 {"QUIN_AUX_PCM_TX", NULL, "BE_IN"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028237 {"SEN_AUX_PCM_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028238 {"INCALL_RECORD_TX", NULL, "BE_IN"},
28239 {"INCALL_RECORD_RX", NULL, "BE_IN"},
28240 {"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
28241 {"SLIM0_RX_VI_FB_RCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053028242 {"WSA_RX_0_VI_FB_LCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
28243 {"WSA_RX_0_VI_FB_RCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028244 {"PRI_MI2S_RX_VI_FB_MUX", "SENARY_TX", "SENARY_TX"},
28245 {"INT4_MI2S_RX_VI_FB_MONO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
28246 {"INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
28247 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_LCH_MUX"},
28248 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_RCH_MUX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053028249 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_LCH_MUX"},
28250 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_RCH_MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028251 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_VI_FB_MUX"},
28252 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_MONO_CH_MUX"},
28253 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_STEREO_CH_MUX"},
28254 {"PRI_TDM_TX_0", NULL, "BE_IN"},
28255 {"PRI_TDM_TX_1", NULL, "BE_IN"},
28256 {"PRI_TDM_TX_2", NULL, "BE_IN"},
28257 {"PRI_TDM_TX_3", NULL, "BE_IN"},
28258 {"SEC_TDM_TX_0", NULL, "BE_IN"},
28259 {"SEC_TDM_TX_1", NULL, "BE_IN"},
28260 {"SEC_TDM_TX_2", NULL, "BE_IN"},
28261 {"SEC_TDM_TX_3", NULL, "BE_IN"},
28262 {"TERT_TDM_TX_0", NULL, "BE_IN"},
28263 {"TERT_TDM_TX_1", NULL, "BE_IN"},
28264 {"TERT_TDM_TX_2", NULL, "BE_IN"},
28265 {"TERT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenfdcc0982018-10-02 15:14:03 -070028266 {"TERT_TDM_TX_7", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028267 {"QUAT_TDM_TX_0", NULL, "BE_IN"},
28268 {"QUAT_TDM_TX_1", NULL, "BE_IN"},
28269 {"QUAT_TDM_TX_2", NULL, "BE_IN"},
28270 {"QUAT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenb9048cb2019-03-07 14:54:13 -050028271 {"QUAT_TDM_TX_7", NULL, "BE_IN"},
Surendar Karkad47fda42018-05-20 19:21:10 +053028272 {"AFE_LOOPBACK_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053028273 {"QUIN_TDM_TX_0", NULL, "BE_IN"},
28274 {"QUIN_TDM_TX_1", NULL, "BE_IN"},
28275 {"QUIN_TDM_TX_2", NULL, "BE_IN"},
28276 {"QUIN_TDM_TX_3", NULL, "BE_IN"},
Han Lu7b6c5882019-06-09 16:03:21 +080028277 {"QUIN_TDM_TX_7", NULL, "BE_IN"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028278 {"SEN_TDM_TX_0", NULL, "BE_IN"},
28279 {"SEN_TDM_TX_1", NULL, "BE_IN"},
28280 {"SEN_TDM_TX_2", NULL, "BE_IN"},
28281 {"SEN_TDM_TX_3", NULL, "BE_IN"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053028282 {"WSA_CDC_DMA_TX_0", NULL, "BE_IN"},
28283 {"WSA_CDC_DMA_TX_1", NULL, "BE_IN"},
28284 {"WSA_CDC_DMA_TX_2", NULL, "BE_IN"},
28285 {"VA_CDC_DMA_TX_0", NULL, "BE_IN"},
28286 {"VA_CDC_DMA_TX_1", NULL, "BE_IN"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080028287 {"VA_CDC_DMA_TX_2", NULL, "BE_IN"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053028288 {"TX_CDC_DMA_TX_0", NULL, "BE_IN"},
28289 {"TX_CDC_DMA_TX_1", NULL, "BE_IN"},
28290 {"TX_CDC_DMA_TX_2", NULL, "BE_IN"},
28291 {"TX_CDC_DMA_TX_3", NULL, "BE_IN"},
28292 {"TX_CDC_DMA_TX_4", NULL, "BE_IN"},
28293 {"TX_CDC_DMA_TX_5", NULL, "BE_IN"},
Ralf Herzc8701f72018-06-20 11:37:35 +020028294 {"PRI_SPDIF_TX", NULL, "BE_IN"},
28295 {"SEC_SPDIF_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028296};
28297
28298static int msm_pcm_routing_hw_params(struct snd_pcm_substream *substream,
28299 struct snd_pcm_hw_params *params)
28300{
28301 struct snd_soc_pcm_runtime *rtd = substream->private_data;
28302 unsigned int be_id = rtd->dai_link->id;
28303
28304 if (be_id >= MSM_BACKEND_DAI_MAX) {
28305 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
28306 return -EINVAL;
28307 }
28308
28309 mutex_lock(&routing_lock);
28310 msm_bedais[be_id].sample_rate = params_rate(params);
28311 msm_bedais[be_id].channel = params_channels(params);
28312 msm_bedais[be_id].format = params_format(params);
28313 pr_debug("%s: BE Sample Rate (%d) format (%d) BE id %d\n",
28314 __func__, msm_bedais[be_id].sample_rate,
28315 msm_bedais[be_id].format, be_id);
28316 mutex_unlock(&routing_lock);
28317 return 0;
28318}
28319
28320static int msm_pcm_routing_close(struct snd_pcm_substream *substream)
28321{
28322 struct snd_soc_pcm_runtime *rtd = substream->private_data;
28323 unsigned int be_id = rtd->dai_link->id;
28324 int i, session_type, path_type, topology;
28325 struct msm_pcm_routing_bdai_data *bedai;
28326 struct msm_pcm_routing_fdai_data *fdai;
28327
28328 pr_debug("%s: substream->pcm->id:%s\n",
28329 __func__, substream->pcm->id);
28330
28331 if (be_id >= MSM_BACKEND_DAI_MAX) {
28332 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
28333 return -EINVAL;
28334 }
28335
28336 bedai = &msm_bedais[be_id];
28337 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
28338 0 : 1);
28339 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
28340 path_type = ADM_PATH_PLAYBACK;
28341 else
28342 path_type = ADM_PATH_LIVE_REC;
28343
28344 mutex_lock(&routing_lock);
28345 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
28346 if (!is_mm_lsm_fe_id(i))
28347 continue;
28348 fdai = &fe_dai_map[i][session_type];
28349 if (fdai->strm_id != INVALID_SESSION) {
28350 int idx;
28351 int port_id;
28352 unsigned long copp =
28353 session_copp_map[i][session_type][be_id];
28354 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
28355 if (test_bit(idx, &copp))
28356 break;
Vignesh Kulothungane59d3152018-10-10 14:19:59 -070028357
28358 if (idx >= MAX_COPPS_PER_PORT) {
28359 pr_debug("%s: copp idx is invalid, exiting\n",
28360 __func__);
28361 continue;
28362 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028363 fdai->be_srate = bedai->sample_rate;
Surendar Karkae7507512018-07-20 15:46:54 +053028364 port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028365 topology = adm_get_topology_for_port_copp_idx(port_id,
28366 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070028367 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +053028368 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028369 pr_debug("%s: copp:%ld,idx bit fe:%d, type:%d,be:%d topology=0x%x\n",
28370 __func__, copp, i, session_type, be_id,
28371 topology);
28372 clear_bit(idx,
28373 &session_copp_map[i][session_type][be_id]);
28374 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028375 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053028376 msm_pcm_routing_deinit_pp(port_id,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028377 topology);
28378 }
28379 }
28380
28381 bedai->active = 0;
28382 bedai->sample_rate = 0;
28383 bedai->channel = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028384 mutex_unlock(&routing_lock);
28385
28386 return 0;
28387}
28388
28389static int msm_pcm_routing_prepare(struct snd_pcm_substream *substream)
28390{
28391 struct snd_soc_pcm_runtime *rtd = substream->private_data;
28392 unsigned int be_id = rtd->dai_link->id;
28393 int i, path_type, topology;
28394 int session_type = INVALID_SESSION;
28395 struct msm_pcm_routing_bdai_data *bedai;
28396 u32 channels, sample_rate;
Prasad Kumpatla6db89c72019-09-24 14:51:22 +053028397 uint16_t bits_per_sample = 16, voc_path_type, be_bit_width;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028398 struct msm_pcm_routing_fdai_data *fdai;
28399 u32 session_id;
28400 struct media_format_info voc_be_media_format;
28401 bool is_lsm;
28402
28403 pr_debug("%s: substream->pcm->id:%s\n",
28404 __func__, substream->pcm->id);
28405
28406 if (be_id >= MSM_BACKEND_DAI_MAX) {
28407 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
28408 return -EINVAL;
28409 }
28410
28411 bedai = &msm_bedais[be_id];
28412
28413 mutex_lock(&routing_lock);
28414 if (bedai->active == 1)
28415 goto done; /* Ignore prepare if back-end already active */
28416
28417 /* AFE port is not active at this point. However, still
28418 * go ahead setting active flag under the notion that
28419 * QDSP6 is able to handle ADM starting before AFE port
28420 * is started.
28421 */
28422 bedai->active = 1;
28423
28424 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
28425 if (!(is_mm_lsm_fe_id(i) &&
28426 route_check_fe_id_adm_support(i)))
28427 continue;
28428
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028429 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
28430 SESSION_TYPE_RX : SESSION_TYPE_TX;
28431 fdai = &fe_dai_map[i][session_type];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028432 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028433 if (fdai->passthr_mode != LEGACY_PCM)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028434 path_type = ADM_PATH_COMPRESSED_RX;
28435 else
28436 path_type = ADM_PATH_PLAYBACK;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028437 } else {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028438 if ((fdai->passthr_mode != LEGACY_PCM) &&
28439 (fdai->passthr_mode != LISTEN))
Ralf Herzc8701f72018-06-20 11:37:35 +020028440 path_type = ADM_PATH_COMPRESSED_TX;
28441 else
28442 path_type = ADM_PATH_LIVE_REC;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028443 }
28444
28445 is_lsm = (i >= MSM_FRONTEND_DAI_LSM1) &&
28446 (i <= MSM_FRONTEND_DAI_LSM8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028447 if (fdai->strm_id != INVALID_SESSION) {
28448 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +053028449 int port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028450
28451 if (session_type == SESSION_TYPE_TX &&
28452 fdai->be_srate &&
28453 (fdai->be_srate != bedai->sample_rate)) {
28454 pr_debug("%s: flush strm %d diff BE rates\n",
28455 __func__,
28456 fdai->strm_id);
28457
28458 if (fdai->event_info.event_func)
28459 fdai->event_info.event_func(
28460 MSM_PCM_RT_EVT_BUF_RECFG,
28461 fdai->event_info.priv_data);
28462 fdai->be_srate = 0; /* might not need it */
28463 }
28464 bits_per_sample = msm_routing_get_bit_width(
28465 bedai->format);
28466
28467 app_type =
28468 fe_dai_app_type_cfg[i][session_type][be_id].app_type;
28469 if (app_type && is_lsm) {
28470 app_type_idx =
28471 msm_pcm_routing_get_lsm_app_type_idx(app_type);
28472 sample_rate =
28473 fe_dai_app_type_cfg[i][session_type][be_id]
28474 .sample_rate;
28475 bits_per_sample =
28476 lsm_app_type_cfg[app_type_idx].bit_width;
28477 } else if (app_type) {
28478 app_type_idx =
28479 msm_pcm_routing_get_app_type_idx(app_type);
28480 sample_rate =
28481 fe_dai_app_type_cfg[i][session_type]
28482 [be_id].sample_rate;
28483 bits_per_sample =
28484 app_type_cfg[app_type_idx].bit_width;
28485 } else
28486 sample_rate = bedai->sample_rate;
28487 /*
28488 * check if ADM needs to be configured with different
28489 * channel mapping than backend
28490 */
28491 if (!bedai->adm_override_ch)
28492 channels = bedai->channel;
28493 else
28494 channels = bedai->adm_override_ch;
28495 acdb_dev_id =
28496 fe_dai_app_type_cfg[i][session_type][be_id].acdb_dev_id;
28497 topology = msm_routing_get_adm_topology(i, session_type,
28498 be_id);
Ralf Herzc8701f72018-06-20 11:37:35 +020028499
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028500 if ((fdai->passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
28501 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_GEN)
28502 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_IEC61937))
Ralf Herzc8701f72018-06-20 11:37:35 +020028503 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
28504
Prasad Kumpatla6db89c72019-09-24 14:51:22 +053028505 be_bit_width = msm_routing_get_bit_width(
28506 bedai->format);
28507
28508 if (hifi_filter_enabled && (bedai->sample_rate == 384000
28509 || bedai->sample_rate == 352800) &&
28510 be_bit_width == 32)
Ramlal Karrab6ef9e02019-08-14 17:53:29 +053028511 bits_per_sample = msm_routing_get_bit_width(
28512 SNDRV_PCM_FORMAT_S32_LE);
Surendar Karkae7507512018-07-20 15:46:54 +053028513 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028514 sample_rate, channels, topology,
28515 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +053028516 app_type, acdb_dev_id,
28517 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028518 if ((copp_idx < 0) ||
28519 (copp_idx >= MAX_COPPS_PER_PORT)) {
28520 pr_err("%s: adm open failed\n", __func__);
28521 mutex_unlock(&routing_lock);
28522 return -EINVAL;
28523 }
28524 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
28525 __func__, i, session_type, be_id);
28526 set_bit(copp_idx,
28527 &session_copp_map[i][session_type][be_id]);
28528
28529 if (msm_is_resample_needed(
28530 sample_rate,
28531 bedai->sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +053028532 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028533 bedai->sample_rate);
28534
28535 msm_pcm_routing_build_matrix(i, session_type, path_type,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028536 fdai->perf_mode, fdai->passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028537 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028538 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053028539 msm_pcm_routing_cfg_pp(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028540 topology, channels);
28541 }
28542 }
28543
28544 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
28545 session_id = msm_pcm_routing_get_voc_sessionid(i);
28546 if (session_id) {
28547 pr_debug("%s voice session_id: 0x%x\n", __func__,
28548 session_id);
28549
28550 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
28551 voc_path_type = RX_PATH;
28552 else
28553 voc_path_type = TX_PATH;
28554
28555 voc_set_route_flag(session_id, voc_path_type, 1);
28556
28557 memset(&voc_be_media_format, 0,
28558 sizeof(struct media_format_info));
28559
28560 voc_be_media_format.port_id = bedai->port_id;
28561 voc_be_media_format.num_channels = bedai->channel;
28562 voc_be_media_format.sample_rate = bedai->sample_rate;
28563 voc_be_media_format.bits_per_sample = bedai->format;
28564 /* Defaulting this to 1 for voice call usecases */
28565 voc_be_media_format.channel_mapping[0] = 1;
28566
28567 voc_set_device_config(session_id, voc_path_type,
28568 &voc_be_media_format);
28569
28570 if (voc_get_route_flag(session_id, RX_PATH) &&
28571 voc_get_route_flag(session_id, TX_PATH))
28572 voc_enable_device(session_id);
28573 }
28574 }
28575
28576 /* Check if backend is an external ec ref port and set as needed */
28577 if (unlikely(bedai->port_id == voc_get_ext_ec_ref_port_id())) {
28578
28579 memset(&voc_be_media_format, 0,
28580 sizeof(struct media_format_info));
28581
28582 /* Get format info for ec ref port from msm_bedais[] */
28583 voc_be_media_format.port_id = bedai->port_id;
28584 voc_be_media_format.num_channels = bedai->channel;
28585 voc_be_media_format.bits_per_sample = bedai->format;
28586 voc_be_media_format.sample_rate = bedai->sample_rate;
28587 /* Defaulting this to 1 for voice call usecases */
28588 voc_be_media_format.channel_mapping[0] = 1;
28589 voc_set_ext_ec_ref_media_fmt_info(&voc_be_media_format);
28590 pr_debug("%s: EC Ref media format info set to port_id=%d, num_channels=%d, bits_per_sample=%d, sample_rate=%d\n",
28591 __func__, voc_be_media_format.port_id,
28592 voc_be_media_format.num_channels,
28593 voc_be_media_format.bits_per_sample,
28594 voc_be_media_format.sample_rate);
28595 }
28596
28597done:
28598 mutex_unlock(&routing_lock);
28599
28600 return 0;
28601}
28602
28603static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
28604 int fe_id)
28605{
28606 int index, topo_id, be_idx;
28607 unsigned long pp_config = 0;
28608 bool mute_on;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028609 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028610 bool compr_passthr_mode = true;
28611
28612 pr_debug("%s: port_id %d, copp_idx %d\n", __func__, port_id, copp_idx);
28613
28614 if (port_id != HDMI_RX && port_id != DISPLAY_PORT_RX) {
28615 pr_err("%s: Device pp params on invalid port %d\n",
28616 __func__, port_id);
28617 return -EINVAL;
28618 }
28619
28620 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
28621 if (port_id == msm_bedais[be_idx].port_id)
28622 break;
28623 }
28624
28625 if (be_idx >= MSM_BACKEND_DAI_MAX) {
28626 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
28627 return -EINVAL;
28628 }
28629
28630 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
28631 if (msm_bedais_pp_params[index].port_id == port_id)
28632 break;
28633 }
28634 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
28635 pr_err("%s: Invalid backend pp params index %d\n",
28636 __func__, index);
28637 return -EINVAL;
28638 }
28639
28640 topo_id = adm_get_topology_for_port_copp_idx(port_id, copp_idx);
28641 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY) {
28642 pr_err("%s: Invalid passthrough topology 0x%x\n",
28643 __func__, topo_id);
28644 return -EINVAL;
28645 }
28646
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028647 session_type =
28648 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
28649 SESSION_TYPE_RX : SESSION_TYPE_TX;
28650
28651 if ((fe_dai_map[fe_id][session_type].passthr_mode == LEGACY_PCM) ||
28652 (fe_dai_map[fe_id][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028653 compr_passthr_mode = false;
28654
28655 pp_config = msm_bedais_pp_params[index].pp_params_config;
28656 if (test_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config)) {
28657 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
28658 clear_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config);
28659 mute_on = msm_bedais_pp_params[index].mute_on;
28660 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
28661 adm_send_compressed_device_mute(port_id,
28662 copp_idx,
28663 mute_on);
28664 }
28665 if (test_bit(ADM_PP_PARAM_LATENCY_BIT, &pp_config)) {
28666 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
28667 clear_bit(ADM_PP_PARAM_LATENCY_BIT,
28668 &pp_config);
28669 latency = msm_bedais_pp_params[index].latency;
28670 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
28671 adm_send_compressed_device_latency(port_id,
28672 copp_idx,
28673 latency);
28674 }
28675 return 0;
28676}
28677
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070028678static uint32_t msm_routing_get_topology(size_t data_size, void *data)
28679{
28680 uint32_t topology = NULL_COPP_TOPOLOGY;
28681 void *cal_info = NULL;
28682 uint32_t size = 0;
28683
28684 /* Retrieve cal_info size from cal data*/
Aditya Bavanariaf708a82019-03-08 19:17:57 +053028685 if (data_size < sizeof(struct audio_cal_type_basic) +
28686 sizeof(struct audio_cal_info_adm_top)) {
28687 pr_err("%s: Invalid data size: %zd\n", __func__, data_size);
28688 goto done;
28689 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070028690 size = data_size - sizeof(struct audio_cal_type_basic);
28691 cal_info = kzalloc(size, GFP_KERNEL);
28692
28693 if (!cal_info)
28694 goto done;
28695
28696 memcpy(cal_info,
28697 ((uint8_t *)data + sizeof(struct audio_cal_type_basic)), size);
28698
28699 topology = ((struct audio_cal_info_adm_top *)cal_info)->topology;
28700 kfree(cal_info);
28701 cal_info = NULL;
28702
28703done:
28704 pr_debug("%s: Using topology %d\n", __func__, topology);
28705
28706 return topology;
28707}
28708
28709static void msm_routing_load_topology(size_t data_size, void *data)
28710{
28711 uint32_t topology_id;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053028712 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070028713
28714 topology_id = msm_routing_get_topology(data_size, data);
28715 if (topology_id != NULL_COPP_TOPOLOGY)
28716 ret = q6core_load_unload_topo_modules(topology_id,
28717 CORE_LOAD_TOPOLOGY);
28718 if (ret < 0)
28719 pr_debug("%s %d load topology failed\n",
28720 __func__, topology_id);
28721
28722}
28723
28724static void msm_routing_unload_topology(uint32_t topology_id)
28725{
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053028726 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070028727
28728 if (topology_id != NULL_COPP_TOPOLOGY)
28729 ret = q6core_load_unload_topo_modules(topology_id,
28730 CORE_UNLOAD_TOPOLOGY);
28731 if (ret < 0)
28732 pr_debug("%s %d unload topology failed\n",
28733 __func__, topology_id);
28734
28735}
28736
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028737static int msm_routing_put_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
28738 struct snd_ctl_elem_value *ucontrol)
28739{
28740 int pp_id = ucontrol->value.integer.value[0];
28741 int port_id = 0;
28742 int index, be_idx, i, topo_id, idx;
28743 bool mute;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028744 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028745 bool compr_passthr_mode = true;
28746
28747 pr_debug("%s: pp_id: 0x%x\n", __func__, pp_id);
28748
28749 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
28750 port_id = msm_bedais[be_idx].port_id;
28751 if (port_id == HDMI_RX || port_id == DISPLAY_PORT_RX)
28752 break;
28753 }
28754
28755 if (be_idx >= MSM_BACKEND_DAI_MAX) {
28756 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
28757 return -EINVAL;
28758 }
28759
28760 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
28761 if (msm_bedais_pp_params[index].port_id == port_id)
28762 break;
28763 }
28764 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
28765 pr_err("%s: Invalid pp params backend index %d\n",
28766 __func__, index);
28767 return -EINVAL;
28768 }
28769
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028770 session_type =
28771 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
28772 SESSION_TYPE_RX : SESSION_TYPE_TX;
28773
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028774 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
28775 MSM_FRONTEND_DAI_MM_SIZE) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028776 if ((fe_dai_map[i][session_type].passthr_mode == LEGACY_PCM) ||
28777 (fe_dai_map[i][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028778 compr_passthr_mode = false;
28779
28780 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
28781 unsigned long copp =
28782 session_copp_map[i]
28783 [SESSION_TYPE_RX][be_idx];
28784 if (!test_bit(idx, &copp))
28785 continue;
28786 topo_id = adm_get_topology_for_port_copp_idx(port_id,
28787 idx);
28788 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY)
28789 continue;
28790 pr_debug("%s: port: 0x%x, copp %ld, be active: %d, passt: %d\n",
28791 __func__, port_id, copp, msm_bedais[be_idx].active,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028792 fe_dai_map[i][session_type].passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028793 switch (pp_id) {
28794 case ADM_PP_PARAM_MUTE_ID:
28795 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
28796 mute = ucontrol->value.integer.value[1] ? true : false;
28797 msm_bedais_pp_params[index].mute_on = mute;
28798 set_bit(ADM_PP_PARAM_MUTE_BIT,
28799 &msm_bedais_pp_params[index].pp_params_config);
28800 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
28801 adm_send_compressed_device_mute(port_id,
28802 idx, mute);
28803 break;
28804 case ADM_PP_PARAM_LATENCY_ID:
28805 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
28806 msm_bedais_pp_params[index].latency =
28807 ucontrol->value.integer.value[1];
28808 set_bit(ADM_PP_PARAM_LATENCY_BIT,
28809 &msm_bedais_pp_params[index].pp_params_config);
28810 latency = msm_bedais_pp_params[index].latency =
28811 ucontrol->value.integer.value[1];
28812 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
28813 adm_send_compressed_device_latency(port_id,
28814 idx, latency);
28815 break;
28816 default:
28817 pr_info("%s, device pp param %d not supported\n",
28818 __func__, pp_id);
28819 break;
28820 }
28821 }
28822 }
28823 return 0;
28824}
28825
28826static int msm_routing_get_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
28827 struct snd_ctl_elem_value *ucontrol)
28828{
28829 pr_debug("%s:msm_routing_get_device_pp_params_mixer", __func__);
28830 return 0;
28831}
28832
28833static const struct snd_kcontrol_new device_pp_params_mixer_controls[] = {
28834 SOC_SINGLE_MULTI_EXT("Device PP Params", SND_SOC_NOPM, 0, 0xFFFFFFFF,
28835 0, 3, msm_routing_get_device_pp_params_mixer,
28836 msm_routing_put_device_pp_params_mixer),
28837};
28838
28839static int msm_aptx_dec_license_control_get(struct snd_kcontrol *kcontrol,
28840 struct snd_ctl_elem_value *ucontrol)
28841{
28842 ucontrol->value.integer.value[0] =
28843 core_get_license_status(ASM_MEDIA_FMT_APTX);
28844 pr_debug("%s: status %ld\n", __func__,
28845 ucontrol->value.integer.value[0]);
28846 return 0;
28847}
28848
28849static int msm_aptx_dec_license_control_put(struct snd_kcontrol *kcontrol,
28850 struct snd_ctl_elem_value *ucontrol)
28851{
28852 int32_t status = 0;
28853
28854 status = core_set_license(ucontrol->value.integer.value[0],
28855 APTX_CLASSIC_DEC_LICENSE_ID);
28856 pr_debug("%s: status %d\n", __func__, status);
28857 return status;
28858}
28859
28860static const struct snd_kcontrol_new aptx_dec_license_controls[] = {
28861 SOC_SINGLE_EXT("APTX Dec License", SND_SOC_NOPM, 0,
28862 0xFFFF, 0, msm_aptx_dec_license_control_get,
28863 msm_aptx_dec_license_control_put),
28864};
28865
Rohit kumar63ffaa72019-02-01 18:05:33 +053028866static int msm_routing_put_port_chmap_mixer(struct snd_kcontrol *kcontrol,
28867 struct snd_ctl_elem_value *ucontrol)
28868{
28869 uint8_t channel_map[PCM_FORMAT_MAX_NUM_CHANNEL_V8];
28870 uint32_t be_idx = ucontrol->value.integer.value[0];
28871 int i;
28872
28873 for (i = 0; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; i++) {
28874 channel_map[i] = (char)(ucontrol->value.integer.value[i + 1]);
28875 if (channel_map[i] > PCM_MAX_CHMAP_ID) {
28876 pr_err("%s: Invalid channel map %d\n",
28877 __func__, channel_map[i]);
28878 return -EINVAL;
28879 }
28880 }
28881 adm_set_port_multi_ch_map(channel_map, msm_bedais[be_idx].port_id);
28882
28883 return 0;
28884}
28885
28886static const struct snd_kcontrol_new port_multi_channel_map_mixer_controls[] = {
28887 SOC_SINGLE_MULTI_EXT("Backend Device Channel Map", SND_SOC_NOPM, 0,
28888 MSM_BACKEND_DAI_MAX, 0,
28889 PCM_FORMAT_MAX_NUM_CHANNEL_V8 + 1, NULL,
28890 msm_routing_put_port_chmap_mixer),
28891};
28892
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028893static int msm_routing_be_dai_name_table_info(struct snd_kcontrol *kcontrol,
28894 struct snd_ctl_elem_info *uinfo)
28895{
28896 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
28897 uinfo->count = sizeof(be_dai_name_table);
28898 return 0;
28899}
28900
28901static int msm_routing_be_dai_name_table_tlv_get(struct snd_kcontrol *kcontrol,
28902 unsigned int __user *bytes,
28903 unsigned int size)
28904{
28905 int i;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053028906 int ret = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028907
28908 if (size < sizeof(be_dai_name_table)) {
28909 pr_err("%s: invalid size %d requested, returning\n",
28910 __func__, size);
28911 ret = -EINVAL;
28912 goto done;
28913 }
28914
28915 /*
28916 * Fill be_dai_name_table from msm_bedais table to reduce code changes
28917 * needed when adding new backends
28918 */
28919 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
28920 be_dai_name_table[i].be_id = i;
28921 strlcpy(be_dai_name_table[i].be_name,
28922 msm_bedais[i].name,
28923 LPASS_BE_NAME_MAX_LENGTH);
28924 }
28925
28926 ret = copy_to_user(bytes, &be_dai_name_table,
28927 sizeof(be_dai_name_table));
28928 if (ret) {
28929 pr_err("%s: failed to copy be_dai_name_table\n", __func__);
28930 ret = -EFAULT;
28931 }
28932
28933done:
28934 return ret;
28935}
28936
28937static const struct snd_kcontrol_new
28938 msm_routing_be_dai_name_table_mixer_controls[] = {
28939 {
28940 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
28941 SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
28942 .info = msm_routing_be_dai_name_table_info,
28943 .name = "Backend DAI Name Table",
28944 .tlv.c = snd_soc_bytes_tlv_callback,
28945 .private_value = (unsigned long) &(struct soc_bytes_ext) {
28946 .max = sizeof(be_dai_name_table),
28947 .get = msm_routing_be_dai_name_table_tlv_get,
28948 }
28949 },
28950};
28951
28952static int msm_routing_stereo_channel_reverse_control_get(
28953 struct snd_kcontrol *kcontrol,
28954 struct snd_ctl_elem_value *ucontrol)
28955{
28956 ucontrol->value.integer.value[0] = swap_ch;
28957 pr_debug("%s: Swap channel value: %ld\n", __func__,
28958 ucontrol->value.integer.value[0]);
28959 return 0;
28960}
28961
28962static int msm_routing_stereo_channel_reverse_control_put(
28963 struct snd_kcontrol *kcontrol,
28964 struct snd_ctl_elem_value *ucontrol)
28965{
28966 int i, idx, be_index, port_id;
28967 int ret = 0;
28968 unsigned long copp;
28969
28970 pr_debug("%s Swap channel value:%ld\n", __func__,
28971 ucontrol->value.integer.value[0]);
28972
28973 swap_ch = ucontrol->value.integer.value[0];
28974
28975 mutex_lock(&routing_lock);
28976 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
28977 port_id = msm_bedais[be_index].port_id;
28978 if (!msm_bedais[be_index].active)
28979 continue;
28980
28981 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
28982 MSM_FRONTEND_DAI_MM_SIZE) {
28983 copp = session_copp_map[i][SESSION_TYPE_RX][be_index];
28984 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
28985 if (!test_bit(idx, &copp))
28986 continue;
28987
28988 pr_debug("%s: swap channel control of portid:%d, coppid:%d\n",
28989 __func__, port_id, idx);
28990 ret = adm_swap_speaker_channels(
28991 port_id, idx,
28992 msm_bedais[be_index].sample_rate,
28993 swap_ch);
28994 if (ret) {
28995 pr_err("%s:Swap_channel failed, err=%d\n",
28996 __func__, ret);
28997 goto done;
28998 }
28999 }
29000 }
29001 }
29002done:
29003 mutex_unlock(&routing_lock);
29004 return ret;
29005}
29006
29007static const struct snd_kcontrol_new stereo_channel_reverse_control[] = {
29008 SOC_SINGLE_EXT("Swap channel", SND_SOC_NOPM, 0,
29009 1, 0, msm_routing_stereo_channel_reverse_control_get,
29010 msm_routing_stereo_channel_reverse_control_put),
29011};
29012
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080029013static int msm_routing_instance_id_support_info(struct snd_kcontrol *kcontrol,
29014 struct snd_ctl_elem_info *uinfo)
29015{
29016 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
29017 uinfo->count = 1;
29018 return 0;
29019}
29020
29021static int msm_routing_instance_id_support_put(
29022 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
29023{
29024 bool supported = ucontrol->value.integer.value[0] ? true : false;
29025
29026 q6common_update_instance_id_support(supported);
29027 return 0;
29028}
29029
29030static int msm_routing_instance_id_support_get(
29031 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
29032{
29033 bool supported = false;
29034
29035 supported = q6common_is_instance_id_supported();
29036 ucontrol->value.integer.value[0] = supported ? 1 : 0;
29037
29038 return 0;
29039}
29040
29041static const struct snd_kcontrol_new
29042 msm_routing_feature_support_mixer_controls[] = {
29043 {
29044 .access = SNDRV_CTL_ELEM_ACCESS_READ |
29045 SNDRV_CTL_ELEM_ACCESS_WRITE,
29046 .info = msm_routing_instance_id_support_info,
29047 .name = "Instance ID Support",
29048 .put = msm_routing_instance_id_support_put,
29049 .get = msm_routing_instance_id_support_get,
29050 },
29051};
29052
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029053static const struct snd_pcm_ops msm_routing_pcm_ops = {
29054 .hw_params = msm_pcm_routing_hw_params,
29055 .close = msm_pcm_routing_close,
29056 .prepare = msm_pcm_routing_prepare,
29057};
29058
29059/* Not used but frame seems to require it */
Meng Wangee084a02018-09-04 16:11:58 +080029060static int msm_routing_probe(struct snd_soc_component *component)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029061{
Meng Wangee084a02018-09-04 16:11:58 +080029062 snd_soc_dapm_new_controls(&component->dapm, msm_qdsp6_widgets,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029063 ARRAY_SIZE(msm_qdsp6_widgets));
Meng Wangddca6862019-05-21 09:31:44 +080029064 snd_soc_dapm_ignore_suspend(&component->dapm, "BE_OUT");
29065 snd_soc_dapm_ignore_suspend(&component->dapm, "BE_IN");
Meng Wangee084a02018-09-04 16:11:58 +080029066 snd_soc_dapm_add_routes(&component->dapm, intercon,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029067 ARRAY_SIZE(intercon));
29068
Meng Wangee084a02018-09-04 16:11:58 +080029069 snd_soc_dapm_new_widgets(component->dapm.card);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029070
Meng Wangee084a02018-09-04 16:11:58 +080029071 snd_soc_add_component_controls(component, lsm_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029072 ARRAY_SIZE(lsm_controls));
29073
Meng Wangee084a02018-09-04 16:11:58 +080029074 snd_soc_add_component_controls(component, aanc_slim_0_rx_mux,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029075 ARRAY_SIZE(aanc_slim_0_rx_mux));
29076
Meng Wangee084a02018-09-04 16:11:58 +080029077 snd_soc_add_component_controls(component, aanc_noise_level,
Sudheer Papothic07b37a2018-05-04 05:56:47 +053029078 ARRAY_SIZE(aanc_noise_level));
29079
Meng Wangee084a02018-09-04 16:11:58 +080029080 snd_soc_add_component_controls(component, msm_voc_session_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029081 ARRAY_SIZE(msm_voc_session_controls));
29082
Meng Wangee084a02018-09-04 16:11:58 +080029083 snd_soc_add_component_controls(component, app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029084 ARRAY_SIZE(app_type_cfg_controls));
29085
Meng Wangee084a02018-09-04 16:11:58 +080029086 snd_soc_add_component_controls(component, lsm_app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029087 ARRAY_SIZE(lsm_app_type_cfg_controls));
29088
Meng Wangee084a02018-09-04 16:11:58 +080029089 snd_soc_add_component_controls(component, module_cfg_controls,
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070029090 ARRAY_SIZE(module_cfg_controls));
29091
Meng Wangee084a02018-09-04 16:11:58 +080029092 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029093 stereo_to_custom_stereo_controls,
29094 ARRAY_SIZE(stereo_to_custom_stereo_controls));
29095
Meng Wangee084a02018-09-04 16:11:58 +080029096 snd_soc_add_component_controls(component, ec_ref_param_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029097 ARRAY_SIZE(ec_ref_param_controls));
29098
Meng Wangee084a02018-09-04 16:11:58 +080029099 snd_soc_add_component_controls(component, channel_mixer_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029100 ARRAY_SIZE(channel_mixer_controls));
29101
Meng Wangee084a02018-09-04 16:11:58 +080029102 msm_qti_pp_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029103
Meng Wangee084a02018-09-04 16:11:58 +080029104 msm_dts_srs_tm_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029105
Meng Wangee084a02018-09-04 16:11:58 +080029106 msm_dolby_dap_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029107
Meng Wangee084a02018-09-04 16:11:58 +080029108 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029109 use_ds1_or_ds2_controls,
29110 ARRAY_SIZE(use_ds1_or_ds2_controls));
29111
Meng Wangee084a02018-09-04 16:11:58 +080029112 snd_soc_add_component_controls(component,
Ramlal Karrab6ef9e02019-08-14 17:53:29 +053029113 hifi_filter_controls,
29114 ARRAY_SIZE(hifi_filter_controls));
29115
29116 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029117 device_pp_params_mixer_controls,
29118 ARRAY_SIZE(device_pp_params_mixer_controls));
29119
Meng Wangee084a02018-09-04 16:11:58 +080029120 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029121 msm_routing_be_dai_name_table_mixer_controls,
29122 ARRAY_SIZE(msm_routing_be_dai_name_table_mixer_controls));
29123
Meng Wangee084a02018-09-04 16:11:58 +080029124 snd_soc_add_component_controls(component, msm_source_tracking_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029125 ARRAY_SIZE(msm_source_tracking_controls));
Meng Wangee084a02018-09-04 16:11:58 +080029126 snd_soc_add_component_controls(component, adm_channel_config_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029127 ARRAY_SIZE(adm_channel_config_controls));
29128
Meng Wangee084a02018-09-04 16:11:58 +080029129 snd_soc_add_component_controls(component, aptx_dec_license_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029130 ARRAY_SIZE(aptx_dec_license_controls));
Meng Wangee084a02018-09-04 16:11:58 +080029131 snd_soc_add_component_controls(component,
29132 stereo_channel_reverse_control,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029133 ARRAY_SIZE(stereo_channel_reverse_control));
Meng Wangee084a02018-09-04 16:11:58 +080029134 snd_soc_add_component_controls(
29135 component, msm_routing_feature_support_mixer_controls,
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080029136 ARRAY_SIZE(msm_routing_feature_support_mixer_controls));
Rohit kumar63ffaa72019-02-01 18:05:33 +053029137 snd_soc_add_component_controls(component,
29138 port_multi_channel_map_mixer_controls,
29139 ARRAY_SIZE(port_multi_channel_map_mixer_controls));
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080029140
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029141 return 0;
29142}
29143
29144int msm_routing_pcm_new(struct snd_soc_pcm_runtime *runtime)
29145{
29146 return msm_pcm_routing_hwdep_new(runtime, msm_bedais);
29147}
29148
29149void msm_routing_pcm_free(struct snd_pcm *pcm)
29150{
29151 msm_pcm_routing_hwdep_free(pcm);
29152}
29153
Meng Wangee084a02018-09-04 16:11:58 +080029154static struct snd_soc_component_driver msm_soc_routing_component = {
29155 .name = DRV_NAME,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029156 .ops = &msm_routing_pcm_ops,
29157 .probe = msm_routing_probe,
29158 .pcm_new = msm_routing_pcm_new,
29159 .pcm_free = msm_routing_pcm_free,
29160};
29161
29162static int msm_routing_pcm_probe(struct platform_device *pdev)
29163{
29164
29165 dev_dbg(&pdev->dev, "dev name %s\n", dev_name(&pdev->dev));
Meng Wangee084a02018-09-04 16:11:58 +080029166 return snd_soc_register_component(&pdev->dev,
29167 &msm_soc_routing_component,
29168 NULL, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029169}
29170
29171static int msm_routing_pcm_remove(struct platform_device *pdev)
29172{
Meng Wangee084a02018-09-04 16:11:58 +080029173 snd_soc_unregister_component(&pdev->dev);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029174 return 0;
29175}
29176
29177static const struct of_device_id msm_pcm_routing_dt_match[] = {
29178 {.compatible = "qcom,msm-pcm-routing"},
29179 {}
29180};
29181MODULE_DEVICE_TABLE(of, msm_pcm_routing_dt_match);
29182
29183static struct platform_driver msm_routing_pcm_driver = {
29184 .driver = {
29185 .name = "msm-pcm-routing",
29186 .owner = THIS_MODULE,
29187 .of_match_table = msm_pcm_routing_dt_match,
Xiaojun Sang53cd13a2018-06-29 15:14:37 +080029188 .suppress_bind_attrs = true,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029189 },
29190 .probe = msm_routing_pcm_probe,
29191 .remove = msm_routing_pcm_remove,
29192};
29193
29194int msm_routing_check_backend_enabled(int fedai_id)
29195{
29196 int i;
29197
29198 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
29199 /* bad ID assigned in machine driver */
29200 pr_err("%s: bad MM ID\n", __func__);
29201 return 0;
29202 }
29203 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
29204 if (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))
29205 return msm_bedais[i].active;
29206 }
29207 return 0;
29208}
29209
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029210static int get_cal_type_index(int32_t cal_type)
29211{
29212 int ret = -EINVAL;
29213
29214 switch (cal_type) {
29215 case ADM_TOPOLOGY_CAL_TYPE:
29216 ret = ADM_TOPOLOGY_CAL_TYPE_IDX;
29217 break;
29218 case ADM_LSM_TOPOLOGY_CAL_TYPE:
29219 ret = ADM_LSM_TOPOLOGY_CAL_TYPE_IDX;
29220 break;
29221 default:
29222 pr_err("%s: Invalid cal type %d\n", __func__, cal_type);
29223 }
29224 return ret;
29225}
29226
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029227static int msm_routing_set_cal(int32_t cal_type,
29228 size_t data_size, void *data)
29229{
29230 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029231 int cal_index;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029232 pr_debug("%s\n", __func__);
29233
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029234 cal_index = get_cal_type_index(cal_type);
29235 if (cal_index < 0) {
29236 pr_err("%s: Could not get cal index %d\n",
29237 __func__, cal_index);
29238 ret = -EINVAL;
29239 goto done;
29240 }
29241
29242 ret = cal_utils_set_cal(data_size, data, cal_data[cal_index], 0, NULL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029243 if (ret < 0) {
29244 pr_err("%s: cal_utils_set_cal failed, ret = %d, cal type = %d!\n",
29245 __func__, ret, cal_type);
29246 ret = -EINVAL;
29247 goto done;
29248 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070029249 /* Pre-load if it is ADM topology */
29250 if ((cal_index == ADM_TOPOLOGY_CAL_TYPE_IDX) ||
29251 (cal_index == ADM_LSM_TOPOLOGY_CAL_TYPE_IDX)) {
29252 msm_routing_load_topology(data_size, data);
29253 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029254done:
29255 return ret;
29256}
29257
29258static void msm_routing_delete_cal_data(void)
29259{
29260 pr_debug("%s\n", __func__);
29261
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029262 cal_utils_destroy_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029263}
29264
29265static int msm_routing_init_cal_data(void)
29266{
29267 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029268 struct cal_type_info cal_type_info[] = {
29269 {{ADM_TOPOLOGY_CAL_TYPE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029270 {NULL, NULL, NULL,
29271 msm_routing_set_cal, NULL, NULL} },
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029272 {NULL, NULL, cal_utils_match_buf_num} },
29273
29274 {{ADM_LSM_TOPOLOGY_CAL_TYPE,
29275 {NULL, NULL, NULL,
29276 msm_routing_set_cal, NULL, NULL} },
29277 {NULL, NULL, cal_utils_match_buf_num} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029278 };
29279 pr_debug("%s\n", __func__);
29280
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029281 ret = cal_utils_create_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0],
29282 &cal_type_info[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029283 if (ret < 0) {
29284 pr_err("%s: could not create cal type!\n",
29285 __func__);
29286 ret = -EINVAL;
29287 goto err;
29288 }
29289
29290 return ret;
29291err:
29292 msm_routing_delete_cal_data();
29293 return ret;
29294}
29295
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053029296int __init msm_soc_routing_platform_init(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029297{
29298 mutex_init(&routing_lock);
29299 if (msm_routing_init_cal_data())
29300 pr_err("%s: could not init cal data!\n", __func__);
29301
29302 afe_set_routing_callback(
29303 (routing_cb)msm_pcm_get_dev_acdb_id_by_port_id);
29304
29305 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
29306 memset(&last_be_id_configured, 0, sizeof(last_be_id_configured));
29307
29308 return platform_driver_register(&msm_routing_pcm_driver);
29309}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029310
Asish Bhattacharya5faacb32017-12-04 17:23:15 +053029311void msm_soc_routing_platform_exit(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029312{
29313 msm_routing_delete_cal_data();
29314 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
29315 mutex_destroy(&routing_lock);
29316 platform_driver_unregister(&msm_routing_pcm_driver);
29317}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029318
29319MODULE_DESCRIPTION("MSM routing platform driver");
29320MODULE_LICENSE("GPL v2");