blob: 829ae9f3f7f7269658fcd550463321d385591642 [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
Jhansi Konathala8cf03d42019-08-20 19:27:39 +05302059 if (val == MSM_FRONTEND_DAI_DTMF_RX &&
2060 afe_get_port_type(msm_bedais[reg].port_id) ==
2061 MSM_AFE_PORT_TYPE_RX) {
2062 pr_debug("%s(): set=%d port id=0x%x for dtmf generation\n",
2063 __func__, set, msm_bedais[reg].port_id);
2064 afe_set_dtmf_gen_rx_portid(msm_bedais[reg].port_id, set);
2065 } else if (!is_mm_lsm_fe_id(val)) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302066 /* recheck FE ID in the mixer control defined in this file */
2067 pr_err("%s: bad MM ID\n", __func__);
2068 return;
2069 }
2070
2071 if (!route_check_fe_id_adm_support(val)) {
2072 /* ignore adm open if not supported for fe_id */
2073 pr_debug("%s: No ADM support for fe id %d\n", __func__, val);
Meng Wang6d8ecdd2019-04-11 11:06:47 +08002074 if (set)
2075 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2076 else
2077 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302078 return;
2079 }
2080
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05302081 session_type =
2082 (afe_get_port_type(msm_bedais[reg].port_id) == MSM_AFE_PORT_TYPE_RX) ?
2083 SESSION_TYPE_RX : SESSION_TYPE_TX;
2084 fdai = &fe_dai_map[val][session_type];
2085 passthr_mode = fdai->passthr_mode;
2086 if (session_type == SESSION_TYPE_RX) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302087 if (passthr_mode != LEGACY_PCM)
2088 path_type = ADM_PATH_COMPRESSED_RX;
2089 else
2090 path_type = ADM_PATH_PLAYBACK;
2091 } else {
Ralf Herzc8701f72018-06-20 11:37:35 +02002092 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302093 path_type = ADM_PATH_COMPRESSED_TX;
2094 else
2095 path_type = ADM_PATH_LIVE_REC;
2096 }
2097 is_lsm = (val >= MSM_FRONTEND_DAI_LSM1) &&
2098 (val <= MSM_FRONTEND_DAI_LSM8);
2099
2100 mutex_lock(&routing_lock);
2101 if (set) {
2102 if (!test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
2103 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
2104 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
2105 voc_start_playback(set, msm_bedais[reg].port_id);
2106
2107 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302108 if (msm_bedais[reg].active && fdai->strm_id !=
2109 INVALID_SESSION) {
2110 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +05302111 int port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302112 /*
2113 * check if ADM needs to be configured with different
2114 * channel mapping than backend
2115 */
2116 if (!msm_bedais[reg].adm_override_ch)
2117 channels = msm_bedais[reg].channel;
2118 else
2119 channels = msm_bedais[reg].adm_override_ch;
2120 if (session_type == SESSION_TYPE_TX &&
2121 fdai->be_srate &&
2122 (fdai->be_srate != msm_bedais[reg].sample_rate)) {
2123 pr_debug("%s: flush strm %d diff BE rates\n",
2124 __func__, fdai->strm_id);
2125
2126 if (fdai->event_info.event_func)
2127 fdai->event_info.event_func(
2128 MSM_PCM_RT_EVT_BUF_RECFG,
2129 fdai->event_info.priv_data);
2130 fdai->be_srate = 0; /* might not need it */
2131 }
2132
2133 bits_per_sample = msm_routing_get_bit_width(
2134 msm_bedais[reg].format);
2135
2136 app_type =
2137 fe_dai_app_type_cfg[val][session_type][reg].app_type;
2138 if (app_type && is_lsm) {
2139 app_type_idx =
2140 msm_pcm_routing_get_lsm_app_type_idx(app_type);
2141 sample_rate =
2142 fe_dai_app_type_cfg[val][session_type][reg]
2143 .sample_rate;
2144 bits_per_sample =
2145 lsm_app_type_cfg[app_type_idx].bit_width;
2146 } else if (app_type) {
2147 app_type_idx =
2148 msm_pcm_routing_get_app_type_idx(app_type);
2149 sample_rate =
2150 fe_dai_app_type_cfg[val][session_type][reg]
2151 .sample_rate;
2152 bits_per_sample =
2153 app_type_cfg[app_type_idx].bit_width;
2154 } else
2155 sample_rate = msm_bedais[reg].sample_rate;
2156
2157 topology = msm_routing_get_adm_topology(val,
2158 session_type,
2159 reg);
2160 acdb_dev_id =
2161 fe_dai_app_type_cfg[val][session_type][reg].acdb_dev_id;
Prasad Kumpatla6db89c72019-09-24 14:51:22 +05302162
2163 be_bit_width = msm_routing_get_bit_width(
2164 msm_bedais[reg].format);
2165 if (hifi_filter_enabled && (msm_bedais[reg].sample_rate
2166 == 384000 ||msm_bedais[reg].sample_rate ==
2167 352800) && be_bit_width == 32)
Ramlal Karrab6ef9e02019-08-14 17:53:29 +05302168 bits_per_sample = msm_routing_get_bit_width(
2169 SNDRV_PCM_FORMAT_S32_LE);
Surendar Karkae7507512018-07-20 15:46:54 +05302170 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302171 sample_rate, channels, topology,
2172 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +05302173 app_type, acdb_dev_id,
2174 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302175 if ((copp_idx < 0) ||
2176 (copp_idx >= MAX_COPPS_PER_PORT)) {
2177 pr_err("%s: adm open failed\n", __func__);
2178 mutex_unlock(&routing_lock);
2179 return;
2180 }
2181 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
2182 __func__, val, session_type, reg);
2183 set_bit(copp_idx,
2184 &session_copp_map[val][session_type][reg]);
2185
2186 if (msm_is_resample_needed(
2187 sample_rate,
2188 msm_bedais[reg].sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +05302189 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302190 msm_bedais[reg].sample_rate);
2191
2192 if (session_type == SESSION_TYPE_RX &&
2193 fdai->event_info.event_func)
2194 fdai->event_info.event_func(
2195 MSM_PCM_RT_EVT_DEVSWITCH,
2196 fdai->event_info.priv_data);
2197
2198 msm_pcm_routing_build_matrix(val, session_type,
2199 path_type,
2200 fdai->perf_mode,
2201 passthr_mode);
2202 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
2203 (passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05302204 msm_pcm_routing_cfg_pp(port_id, copp_idx,
2205 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302206 }
2207 } else {
2208 if (test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
2209 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
2210 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
2211 voc_start_playback(set, msm_bedais[reg].port_id);
2212 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302213 if (msm_bedais[reg].active && fdai->strm_id !=
2214 INVALID_SESSION) {
2215 int idx;
2216 int port_id;
2217 unsigned long copp =
2218 session_copp_map[val][session_type][reg];
2219 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
2220 if (test_bit(idx, &copp))
2221 break;
2222
Vignesh Kulothungane59d3152018-10-10 14:19:59 -07002223 if (idx >= MAX_COPPS_PER_PORT) {
2224 pr_debug("%s: copp idx is invalid, exiting\n",
2225 __func__);
2226 mutex_unlock(&routing_lock);
2227 return;
2228 }
Surendar Karkae7507512018-07-20 15:46:54 +05302229 port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302230 topology = adm_get_topology_for_port_copp_idx(port_id,
2231 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07002232 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +05302233 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302234 pr_debug("%s: copp: %ld, reset idx bit fe:%d, type: %d, be:%d topology=0x%x\n",
2235 __func__, copp, val, session_type, reg,
2236 topology);
2237 clear_bit(idx,
2238 &session_copp_map[val][session_type][reg]);
2239 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
2240 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
2241 (fdai->perf_mode == LEGACY_PCM_MODE) &&
2242 (passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +05302243 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302244 msm_pcm_routing_build_matrix(val, session_type,
2245 path_type,
2246 fdai->perf_mode,
2247 passthr_mode);
2248 }
2249 }
2250 if ((msm_bedais[reg].port_id == VOICE_RECORD_RX)
2251 || (msm_bedais[reg].port_id == VOICE_RECORD_TX))
2252 voc_start_record(msm_bedais[reg].port_id, set, voc_session_id);
2253
2254 mutex_unlock(&routing_lock);
2255}
2256
2257static int msm_routing_get_audio_mixer(struct snd_kcontrol *kcontrol,
2258 struct snd_ctl_elem_value *ucontrol)
2259{
2260 struct soc_mixer_control *mc =
2261 (struct soc_mixer_control *)kcontrol->private_value;
2262
Meng Wang05d5e9a2018-03-28 16:45:03 +08002263 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302264 ucontrol->value.integer.value[0] = 1;
2265 else
2266 ucontrol->value.integer.value[0] = 0;
2267
Meng Wang05d5e9a2018-03-28 16:45:03 +08002268 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302269 ucontrol->value.integer.value[0]);
2270
2271 return 0;
2272}
2273
2274static int msm_routing_put_audio_mixer(struct snd_kcontrol *kcontrol,
2275 struct snd_ctl_elem_value *ucontrol)
2276{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302277 struct snd_soc_dapm_widget *widget =
2278 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302279 struct soc_mixer_control *mc =
2280 (struct soc_mixer_control *)kcontrol->private_value;
2281 struct snd_soc_dapm_update *update = NULL;
2282
2283 if (ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08002284 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false) {
2285 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302286 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2287 update);
2288 } else if (!ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08002289 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true) {
2290 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302291 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2292 update);
2293 }
2294
2295 return 1;
2296}
2297
2298static int msm_routing_get_listen_mixer(struct snd_kcontrol *kcontrol,
2299 struct snd_ctl_elem_value *ucontrol)
2300{
2301 struct soc_mixer_control *mc =
2302 (struct soc_mixer_control *)kcontrol->private_value;
2303
Meng Wang05d5e9a2018-03-28 16:45:03 +08002304 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302305 ucontrol->value.integer.value[0] = 1;
2306 else
2307 ucontrol->value.integer.value[0] = 0;
2308
Meng Wang05d5e9a2018-03-28 16:45:03 +08002309 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302310 ucontrol->value.integer.value[0]);
2311
2312 return 0;
2313}
2314
2315static int msm_routing_put_listen_mixer(struct snd_kcontrol *kcontrol,
2316 struct snd_ctl_elem_value *ucontrol)
2317{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302318 struct snd_soc_dapm_widget *widget =
2319 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302320 struct soc_mixer_control *mc =
2321 (struct soc_mixer_control *)kcontrol->private_value;
2322 struct snd_soc_dapm_update *update = NULL;
2323
Meng Wang05d5e9a2018-03-28 16:45:03 +08002324 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302325 ucontrol->value.integer.value[0]);
2326
2327 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002328 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false)
2329 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302330 snd_soc_dapm_mixer_update_power(widget->dapm,
2331 kcontrol, 1, update);
2332 } else if (!ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002333 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true)
2334 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302335 snd_soc_dapm_mixer_update_power(widget->dapm,
2336 kcontrol, 0, update);
2337 }
2338
2339 return 1;
2340}
2341
2342static void msm_pcm_routing_process_voice(u16 reg, u16 val, int set)
2343{
2344 u32 session_id = 0;
2345 u16 path_type;
2346 struct media_format_info voc_be_media_format;
2347
2348 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
2349
2350 session_id = msm_pcm_routing_get_voc_sessionid(val);
2351
2352 pr_debug("%s: FE DAI 0x%x session_id 0x%x\n",
2353 __func__, val, session_id);
2354
2355 mutex_lock(&routing_lock);
2356
2357 if (set)
2358 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2359 else
2360 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
2361
2362 if (val == MSM_FRONTEND_DAI_DTMF_RX &&
2363 afe_get_port_type(msm_bedais[reg].port_id) ==
2364 MSM_AFE_PORT_TYPE_RX) {
2365 pr_debug("%s(): set=%d port id=0x%x for dtmf generation\n",
2366 __func__, set, msm_bedais[reg].port_id);
2367 afe_set_dtmf_gen_rx_portid(msm_bedais[reg].port_id, set);
2368 }
2369
2370 if (afe_get_port_type(msm_bedais[reg].port_id) ==
2371 MSM_AFE_PORT_TYPE_RX)
2372 path_type = RX_PATH;
2373 else
2374 path_type = TX_PATH;
2375
2376 if (set) {
2377 if (msm_bedais[reg].active) {
2378 voc_set_route_flag(session_id, path_type, 1);
2379
2380 memset(&voc_be_media_format, 0,
2381 sizeof(struct media_format_info));
2382
2383 voc_be_media_format.port_id = msm_bedais[reg].port_id;
2384 voc_be_media_format.num_channels =
2385 msm_bedais[reg].channel;
2386 voc_be_media_format.sample_rate =
2387 msm_bedais[reg].sample_rate;
2388 voc_be_media_format.bits_per_sample =
2389 msm_bedais[reg].format;
2390 /* Defaulting this to 1 for voice call usecases */
2391 voc_be_media_format.channel_mapping[0] = 1;
2392
2393 voc_set_device_config(session_id, path_type,
2394 &voc_be_media_format);
2395
2396 if (voc_get_route_flag(session_id, TX_PATH) &&
2397 voc_get_route_flag(session_id, RX_PATH))
2398 voc_enable_device(session_id);
2399 } else {
2400 pr_debug("%s BE is not active\n", __func__);
2401 }
2402 } else {
2403 voc_set_route_flag(session_id, path_type, 0);
2404 voc_disable_device(session_id);
2405 }
2406
2407 mutex_unlock(&routing_lock);
2408
2409}
2410
2411static int msm_routing_get_voice_mixer(struct snd_kcontrol *kcontrol,
2412 struct snd_ctl_elem_value *ucontrol)
2413{
2414 struct soc_mixer_control *mc =
2415 (struct soc_mixer_control *)kcontrol->private_value;
2416
2417 mutex_lock(&routing_lock);
2418
Meng Wang05d5e9a2018-03-28 16:45:03 +08002419 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302420 ucontrol->value.integer.value[0] = 1;
2421 else
2422 ucontrol->value.integer.value[0] = 0;
2423
2424 mutex_unlock(&routing_lock);
2425
Meng Wang05d5e9a2018-03-28 16:45:03 +08002426 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302427 ucontrol->value.integer.value[0]);
2428
2429 return 0;
2430}
2431
2432static int msm_routing_put_voice_mixer(struct snd_kcontrol *kcontrol,
2433 struct snd_ctl_elem_value *ucontrol)
2434{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302435 struct snd_soc_dapm_widget *widget =
2436 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302437 struct soc_mixer_control *mc =
2438 (struct soc_mixer_control *)kcontrol->private_value;
2439 struct snd_soc_dapm_update *update = NULL;
2440
2441 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002442 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302443 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2444 update);
2445 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002446 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302447 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2448 update);
2449 }
2450
2451 return 1;
2452}
2453
2454static int msm_routing_get_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2455 struct snd_ctl_elem_value *ucontrol)
2456{
2457 struct soc_mixer_control *mc =
2458 (struct soc_mixer_control *)kcontrol->private_value;
2459
2460 mutex_lock(&routing_lock);
2461
Meng Wang05d5e9a2018-03-28 16:45:03 +08002462 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302463 ucontrol->value.integer.value[0] = 1;
2464 else
2465 ucontrol->value.integer.value[0] = 0;
2466
2467 mutex_unlock(&routing_lock);
2468
Meng Wang05d5e9a2018-03-28 16:45:03 +08002469 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302470 ucontrol->value.integer.value[0]);
2471
2472 return 0;
2473}
2474
2475static int msm_routing_put_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2476 struct snd_ctl_elem_value *ucontrol)
2477{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302478 struct snd_soc_dapm_widget *widget =
2479 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302480 struct soc_mixer_control *mc =
2481 (struct soc_mixer_control *)kcontrol->private_value;
2482 struct snd_soc_dapm_update *update = NULL;
2483
2484 if (ucontrol->value.integer.value[0]) {
2485 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002486 set_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302487 mutex_unlock(&routing_lock);
2488
2489 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2490 update);
2491 } else {
2492 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002493 clear_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302494 mutex_unlock(&routing_lock);
2495
2496 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2497 update);
2498 }
2499
Meng Wang05d5e9a2018-03-28 16:45:03 +08002500 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302501 ucontrol->value.integer.value[0]);
2502
2503 return 1;
2504}
2505
2506/*
2507 * Return the mapping between port ID and backend ID to enable the AFE callback
2508 * to determine the acdb_dev_id from the port id
2509 */
2510int msm_pcm_get_be_id_from_port_id(int port_id)
2511{
2512 int i;
2513 int be_id = -EINVAL;
2514
2515 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
2516 if (msm_bedais[i].port_id == port_id) {
2517 be_id = i;
2518 break;
2519 }
2520 }
2521
2522 return be_id;
2523}
2524
2525/*
2526 * Return the registered dev_acdb_id given a port ID to enable identifying the
2527 * correct AFE calibration information by comparing the header information.
2528 */
2529static int msm_pcm_get_dev_acdb_id_by_port_id(int port_id)
2530{
2531 int acdb_id = -EINVAL;
2532 int i = 0;
2533 int session;
2534 int port_type = afe_get_port_type(port_id);
2535 int be_id = msm_pcm_get_be_id_from_port_id(port_id);
2536
2537 pr_debug("%s:port_id %d be_id %d, port_type 0x%x\n",
2538 __func__, port_id, be_id, port_type);
2539
2540 if (port_type == MSM_AFE_PORT_TYPE_TX) {
2541 session = SESSION_TYPE_TX;
2542 } else if (port_type == MSM_AFE_PORT_TYPE_RX) {
2543 session = SESSION_TYPE_RX;
2544 } else {
2545 pr_err("%s: Invalid port type %d\n", __func__, port_type);
2546 acdb_id = -EINVAL;
2547 goto exit;
2548 }
2549
2550 if (be_id < 0) {
2551 pr_err("%s: Error getting backend id %d\n", __func__, be_id);
2552 goto exit;
2553 }
2554
2555 mutex_lock(&routing_lock);
2556 i = find_first_bit(&msm_bedais[be_id].fe_sessions[0],
2557 MSM_FRONTEND_DAI_MAX);
2558 if (i < MSM_FRONTEND_DAI_MAX)
2559 acdb_id = fe_dai_app_type_cfg[i][session][be_id].acdb_dev_id;
2560
2561 pr_debug("%s: FE[%d] session[%d] BE[%d] acdb_id(%d)\n",
2562 __func__, i, session, be_id, acdb_id);
2563 mutex_unlock(&routing_lock);
2564exit:
2565 return acdb_id;
2566}
2567
2568static int msm_routing_get_switch_mixer(struct snd_kcontrol *kcontrol,
2569 struct snd_ctl_elem_value *ucontrol)
2570{
2571 ucontrol->value.integer.value[0] = fm_switch_enable;
2572 pr_debug("%s: FM Switch enable %ld\n", __func__,
2573 ucontrol->value.integer.value[0]);
2574 return 0;
2575}
2576
2577static int msm_routing_put_switch_mixer(struct snd_kcontrol *kcontrol,
2578 struct snd_ctl_elem_value *ucontrol)
2579{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302580 struct snd_soc_dapm_widget *widget =
2581 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302582 struct snd_soc_dapm_update *update = NULL;
2583
2584 pr_debug("%s: FM Switch enable %ld\n", __func__,
2585 ucontrol->value.integer.value[0]);
2586 if (ucontrol->value.integer.value[0])
2587 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2588 update);
2589 else
2590 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2591 update);
2592 fm_switch_enable = ucontrol->value.integer.value[0];
2593 return 1;
2594}
2595
2596static int msm_routing_get_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2597 struct snd_ctl_elem_value *ucontrol)
2598{
2599 ucontrol->value.integer.value[0] = hfp_switch_enable;
2600 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2601 ucontrol->value.integer.value[0]);
2602 return 0;
2603}
2604
2605static int msm_routing_put_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2606 struct snd_ctl_elem_value *ucontrol)
2607{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302608 struct snd_soc_dapm_widget *widget =
2609 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302610 struct snd_soc_dapm_update *update = NULL;
2611
2612 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2613 ucontrol->value.integer.value[0]);
2614 if (ucontrol->value.integer.value[0])
2615 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2616 1, update);
2617 else
2618 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2619 0, update);
2620 hfp_switch_enable = ucontrol->value.integer.value[0];
2621 return 1;
2622}
2623
Aniket Kumar Latac0c31472018-02-22 14:46:09 -08002624static int msm_routing_a2dp_switch_mixer_get(struct snd_kcontrol *kcontrol,
2625 struct snd_ctl_elem_value *ucontrol)
2626{
2627 ucontrol->value.integer.value[0] = a2dp_switch_enable;
2628 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2629 ucontrol->value.integer.value[0]);
2630 return 0;
2631}
2632
2633static int msm_routing_a2dp_switch_mixer_put(struct snd_kcontrol *kcontrol,
2634 struct snd_ctl_elem_value *ucontrol)
2635{
2636 struct snd_soc_dapm_widget *widget =
2637 snd_soc_dapm_kcontrol_widget(kcontrol);
2638 struct snd_soc_dapm_update *update = NULL;
2639
2640 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2641 ucontrol->value.integer.value[0]);
2642 a2dp_switch_enable = ucontrol->value.integer.value[0];
2643 if (a2dp_switch_enable)
2644 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2645 1, update);
2646 else
2647 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2648 0, update);
2649 return 1;
2650}
2651
Zhou Songcaa541d2019-02-19 18:37:47 +08002652static int msm_routing_sco_switch_mixer_get(struct snd_kcontrol *kcontrol,
2653 struct snd_ctl_elem_value *ucontrol)
2654{
2655 ucontrol->value.integer.value[0] = sco_switch_enable;
2656 pr_debug("%s: SCO Switch enable %ld\n", __func__,
2657 ucontrol->value.integer.value[0]);
2658 return 0;
2659}
2660
2661static int msm_routing_sco_switch_mixer_put(struct snd_kcontrol *kcontrol,
2662 struct snd_ctl_elem_value *ucontrol)
2663{
2664 struct snd_soc_dapm_widget *widget =
2665 snd_soc_dapm_kcontrol_widget(kcontrol);
2666 struct snd_soc_dapm_update *update = NULL;
2667
2668 pr_debug("%s: SCO Switch enable %ld\n", __func__,
2669 ucontrol->value.integer.value[0]);
2670 sco_switch_enable = ucontrol->value.integer.value[0];
2671 if (sco_switch_enable)
2672 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2673 1, update);
2674 else
2675 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2676 0, update);
2677 return 1;
2678}
2679
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302680static int msm_routing_get_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2681 struct snd_ctl_elem_value *ucontrol)
2682{
2683 ucontrol->value.integer.value[0] = int0_mi2s_switch_enable;
2684 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2685 ucontrol->value.integer.value[0]);
2686 return 0;
2687}
2688
2689static int msm_routing_put_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2690 struct snd_ctl_elem_value *ucontrol)
2691{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302692 struct snd_soc_dapm_widget *widget =
2693 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302694 struct snd_soc_dapm_update *update = NULL;
2695
2696 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2697 ucontrol->value.integer.value[0]);
2698 if (ucontrol->value.integer.value[0])
2699 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2700 update);
2701 else
2702 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2703 update);
2704 int0_mi2s_switch_enable = ucontrol->value.integer.value[0];
2705 return 1;
2706}
2707
2708static int msm_routing_get_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2709 struct snd_ctl_elem_value *ucontrol)
2710{
2711 ucontrol->value.integer.value[0] = int4_mi2s_switch_enable;
2712 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2713 ucontrol->value.integer.value[0]);
2714 return 0;
2715}
2716
2717static int msm_routing_put_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2718 struct snd_ctl_elem_value *ucontrol)
2719{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302720 struct snd_soc_dapm_widget *widget =
2721 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302722 struct snd_soc_dapm_update *update = NULL;
2723
2724 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2725 ucontrol->value.integer.value[0]);
2726 if (ucontrol->value.integer.value[0])
2727 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2728 update);
2729 else
2730 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2731 update);
2732 int4_mi2s_switch_enable = ucontrol->value.integer.value[0];
2733 return 1;
2734}
2735
2736static int msm_routing_get_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2737 struct snd_ctl_elem_value *ucontrol)
2738{
2739 ucontrol->value.integer.value[0] = usb_switch_enable;
2740 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2741 ucontrol->value.integer.value[0]);
2742 return 0;
2743}
2744
2745static int msm_routing_put_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2746 struct snd_ctl_elem_value *ucontrol)
2747{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302748 struct snd_soc_dapm_widget *widget =
2749 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302750 struct snd_soc_dapm_update *update = NULL;
2751
2752 pr_debug("%s: USB Switch enable %ld\n", __func__,
2753 ucontrol->value.integer.value[0]);
2754 if (ucontrol->value.integer.value[0])
2755 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2756 1, update);
2757 else
2758 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2759 0, update);
2760 usb_switch_enable = ucontrol->value.integer.value[0];
2761 return 1;
2762}
2763
2764static int msm_routing_get_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2765 struct snd_ctl_elem_value *ucontrol)
2766{
2767 ucontrol->value.integer.value[0] = pri_mi2s_switch_enable;
2768 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2769 ucontrol->value.integer.value[0]);
2770 return 0;
2771}
2772
2773static int msm_routing_put_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2774 struct snd_ctl_elem_value *ucontrol)
2775{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302776 struct snd_soc_dapm_widget *widget =
2777 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302778 struct snd_soc_dapm_update *update = NULL;
2779
2780 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2781 ucontrol->value.integer.value[0]);
2782 if (ucontrol->value.integer.value[0])
2783 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2784 update);
2785 else
2786 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2787 update);
2788 pri_mi2s_switch_enable = ucontrol->value.integer.value[0];
2789 return 1;
2790}
2791
2792static int msm_routing_get_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2793 struct snd_ctl_elem_value *ucontrol)
2794{
2795 ucontrol->value.integer.value[0] = sec_mi2s_switch_enable;
2796 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2797 ucontrol->value.integer.value[0]);
2798 return 0;
2799}
2800
2801static int msm_routing_put_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2802 struct snd_ctl_elem_value *ucontrol)
2803{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302804 struct snd_soc_dapm_widget *widget =
2805 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302806 struct snd_soc_dapm_update *update = NULL;
2807
2808 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2809 ucontrol->value.integer.value[0]);
2810 if (ucontrol->value.integer.value[0])
2811 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2812 update);
2813 else
2814 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2815 update);
2816 sec_mi2s_switch_enable = ucontrol->value.integer.value[0];
2817 return 1;
2818}
2819
2820static int msm_routing_get_tert_mi2s_switch_mixer(
2821 struct snd_kcontrol *kcontrol,
2822 struct snd_ctl_elem_value *ucontrol)
2823{
2824 ucontrol->value.integer.value[0] = tert_mi2s_switch_enable;
2825 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2826 ucontrol->value.integer.value[0]);
2827 return 0;
2828}
2829
2830static int msm_routing_put_tert_mi2s_switch_mixer(
2831 struct snd_kcontrol *kcontrol,
2832 struct snd_ctl_elem_value *ucontrol)
2833{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302834 struct snd_soc_dapm_widget *widget =
2835 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302836 struct snd_soc_dapm_update *update = NULL;
2837
2838 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2839 ucontrol->value.integer.value[0]);
2840 if (ucontrol->value.integer.value[0])
2841 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2842 update);
2843 else
2844 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2845 update);
2846 tert_mi2s_switch_enable = ucontrol->value.integer.value[0];
2847 return 1;
2848}
2849
2850static int msm_routing_get_quat_mi2s_switch_mixer(
2851 struct snd_kcontrol *kcontrol,
2852 struct snd_ctl_elem_value *ucontrol)
2853{
2854 ucontrol->value.integer.value[0] = quat_mi2s_switch_enable;
2855 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2856 ucontrol->value.integer.value[0]);
2857 return 0;
2858}
2859
2860static int msm_routing_put_quat_mi2s_switch_mixer(
2861 struct snd_kcontrol *kcontrol,
2862 struct snd_ctl_elem_value *ucontrol)
2863{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302864 struct snd_soc_dapm_widget *widget =
2865 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302866 struct snd_soc_dapm_update *update = NULL;
2867
2868 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2869 ucontrol->value.integer.value[0]);
2870 if (ucontrol->value.integer.value[0])
2871 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2872 update);
2873 else
2874 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2875 update);
2876 quat_mi2s_switch_enable = ucontrol->value.integer.value[0];
2877 return 1;
2878}
2879
Rohit Kumara5077932017-09-10 22:05:05 +05302880static int msm_routing_get_quin_mi2s_switch_mixer(
2881 struct snd_kcontrol *kcontrol,
2882 struct snd_ctl_elem_value *ucontrol)
2883{
2884 ucontrol->value.integer.value[0] = quin_mi2s_switch_enable;
2885 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2886 ucontrol->value.integer.value[0]);
2887 return 0;
2888}
2889
2890static int msm_routing_put_quin_mi2s_switch_mixer(
2891 struct snd_kcontrol *kcontrol,
2892 struct snd_ctl_elem_value *ucontrol)
2893{
2894 struct snd_soc_dapm_widget *widget =
2895 snd_soc_dapm_kcontrol_widget(kcontrol);
2896 struct snd_soc_dapm_update *update = NULL;
2897
2898 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2899 ucontrol->value.integer.value[0]);
2900 if (ucontrol->value.integer.value[0])
2901 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2902 update);
2903 else
2904 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2905 update);
2906 quin_mi2s_switch_enable = ucontrol->value.integer.value[0];
2907 return 1;
2908}
2909
Karthikeyan Manic3700752019-03-11 18:33:53 -07002910static int msm_routing_get_sen_mi2s_switch_mixer(
2911 struct snd_kcontrol *kcontrol,
2912 struct snd_ctl_elem_value *ucontrol)
2913{
2914 ucontrol->value.integer.value[0] = sen_mi2s_switch_enable;
2915 pr_debug("%s: SEN MI2S Switch enable %ld\n", __func__,
2916 ucontrol->value.integer.value[0]);
2917 return 0;
2918}
2919
2920static int msm_routing_put_sen_mi2s_switch_mixer(
2921 struct snd_kcontrol *kcontrol,
2922 struct snd_ctl_elem_value *ucontrol)
2923{
2924 struct snd_soc_dapm_widget *widget =
2925 snd_soc_dapm_kcontrol_widget(kcontrol);
2926 struct snd_soc_dapm_update *update = NULL;
2927
2928 pr_debug("%s: SEN MI2S Switch enable %ld\n", __func__,
2929 ucontrol->value.integer.value[0]);
2930 if (ucontrol->value.integer.value[0])
2931 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2932 update);
2933 else
2934 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2935 update);
2936 sen_mi2s_switch_enable = ucontrol->value.integer.value[0];
2937 return 1;
2938}
2939
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302940static int msm_routing_get_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2941 struct snd_ctl_elem_value *ucontrol)
2942{
2943 ucontrol->value.integer.value[0] = fm_pcmrx_switch_enable;
2944 pr_debug("%s: FM Switch enable %ld\n", __func__,
2945 ucontrol->value.integer.value[0]);
2946 return 0;
2947}
2948
2949static int msm_routing_put_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2950 struct snd_ctl_elem_value *ucontrol)
2951{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302952 struct snd_soc_dapm_widget *widget =
2953 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302954 struct snd_soc_dapm_update *update = NULL;
2955
2956 pr_debug("%s: FM Switch enable %ld\n", __func__,
2957 ucontrol->value.integer.value[0]);
2958 if (ucontrol->value.integer.value[0])
2959 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2960 update);
2961 else
2962 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2963 update);
2964 fm_pcmrx_switch_enable = ucontrol->value.integer.value[0];
2965 return 1;
2966}
2967
2968static int msm_routing_lsm_port_get(struct snd_kcontrol *kcontrol,
2969 struct snd_ctl_elem_value *ucontrol)
2970{
2971 ucontrol->value.integer.value[0] = lsm_port_index;
2972 return 0;
2973}
2974
2975static int msm_routing_lsm_port_put(struct snd_kcontrol *kcontrol,
2976 struct snd_ctl_elem_value *ucontrol)
2977{
2978 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
2979 int mux = ucontrol->value.enumerated.item[0];
2980 int lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2981
2982 if (mux >= e->items) {
2983 pr_err("%s: Invalid mux value %d\n", __func__, mux);
2984 return -EINVAL;
2985 }
2986
2987 pr_debug("%s: LSM enable %ld\n", __func__,
2988 ucontrol->value.integer.value[0]);
2989 switch (ucontrol->value.integer.value[0]) {
2990 case 1:
2991 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_0_TX;
2992 break;
2993 case 2:
2994 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_1_TX;
2995 break;
2996 case 3:
2997 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_2_TX;
2998 break;
2999 case 4:
3000 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_3_TX;
3001 break;
3002 case 5:
3003 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_4_TX;
3004 break;
3005 case 6:
3006 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
3007 break;
3008 case 7:
3009 lsm_port = AFE_PORT_ID_TERTIARY_MI2S_TX;
3010 break;
3011 case 8:
3012 lsm_port = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3013 break;
3014 case 9:
3015 lsm_port = ADM_LSM_PORT_ID;
3016 break;
3017 case 10:
3018 lsm_port = AFE_PORT_ID_INT3_MI2S_TX;
3019 break;
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +05303020 case 11:
3021 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
3022 break;
3023 case 12:
3024 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_1;
3025 break;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05303026 case 13:
Xiaoyu Yef439aed2019-01-02 16:40:01 -08003027 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_2;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05303028 break;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303029 case 14:
Xiaoyu Yef439aed2019-01-02 16:40:01 -08003030 lsm_port = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
3031 break;
3032 case 15:
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303033 lsm_port = AFE_PORT_ID_QUINARY_TDM_TX;
3034 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303035 default:
3036 pr_err("Default lsm port");
3037 break;
3038 }
3039 set_lsm_port(lsm_port);
3040 lsm_port_index = ucontrol->value.integer.value[0];
3041
3042 return 0;
3043}
3044
3045static int msm_routing_lsm_func_get(struct snd_kcontrol *kcontrol,
3046 struct snd_ctl_elem_value *ucontrol)
3047{
3048 int i;
3049 u16 port_id;
3050 enum afe_mad_type mad_type;
3051
3052 pr_debug("%s: enter\n", __func__);
3053 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
3054 if (!strnstr(kcontrol->id.name, lsm_port_text[i],
3055 strlen(lsm_port_text[i])))
3056 break;
3057
3058 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003059 pr_warn("%s: Invalid id name %s\n", __func__,
3060 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303061 return -EINVAL;
3062 }
3063
3064 port_id = i * 2 + 1 + SLIMBUS_0_RX;
3065
3066 /*Check for Tertiary/Quaternary/INT3 TX port*/
3067 if (strnstr(kcontrol->id.name, lsm_port_text[7],
3068 strlen(lsm_port_text[7])))
3069 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3070
3071 if (strnstr(kcontrol->id.name, lsm_port_text[8],
3072 strlen(lsm_port_text[8])))
3073 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3074
3075 if (strnstr(kcontrol->id.name, lsm_port_text[10],
3076 strlen(lsm_port_text[10])))
3077 port_id = AFE_PORT_ID_INT3_MI2S_TX;
3078
Aditya Bavanarie9454c62018-08-23 23:45:20 +05303079 if (strnstr(kcontrol->id.name, lsm_port_text[13],
3080 strlen(lsm_port_text[13])))
3081 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
3082
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303083 if (strnstr(kcontrol->id.name, lsm_port_text[14],
3084 strlen(lsm_port_text[14])))
3085 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
3086
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303087 mad_type = afe_port_get_mad_type(port_id);
3088 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
3089 mad_type);
3090 switch (mad_type) {
3091 case MAD_HW_NONE:
3092 ucontrol->value.integer.value[0] = MADNONE;
3093 break;
3094 case MAD_HW_AUDIO:
3095 ucontrol->value.integer.value[0] = MADAUDIO;
3096 break;
3097 case MAD_HW_BEACON:
3098 ucontrol->value.integer.value[0] = MADBEACON;
3099 break;
3100 case MAD_HW_ULTRASOUND:
3101 ucontrol->value.integer.value[0] = MADULTRASOUND;
3102 break;
3103 case MAD_SW_AUDIO:
3104 ucontrol->value.integer.value[0] = MADSWAUDIO;
3105 break;
3106 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003107 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303108 return -EINVAL;
3109 }
3110 return 0;
3111}
3112
3113static int msm_routing_lsm_func_put(struct snd_kcontrol *kcontrol,
3114 struct snd_ctl_elem_value *ucontrol)
3115{
3116 int i;
3117 u16 port_id;
3118 enum afe_mad_type mad_type;
3119
3120 pr_debug("%s: enter\n", __func__);
3121 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
3122 if (strnstr(kcontrol->id.name, lsm_port_text[i],
3123 strlen(lsm_port_text[i])))
3124 break;
3125
3126 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003127 pr_warn("%s: Invalid id name %s\n", __func__,
3128 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303129 return -EINVAL;
3130 }
3131
3132 port_id = i * 2 + 1 + SLIMBUS_0_RX;
3133 switch (ucontrol->value.integer.value[0]) {
3134 case MADNONE:
3135 mad_type = MAD_HW_NONE;
3136 break;
3137 case MADAUDIO:
3138 mad_type = MAD_HW_AUDIO;
3139 break;
3140 case MADBEACON:
3141 mad_type = MAD_HW_BEACON;
3142 break;
3143 case MADULTRASOUND:
3144 mad_type = MAD_HW_ULTRASOUND;
3145 break;
3146 case MADSWAUDIO:
3147 mad_type = MAD_SW_AUDIO;
3148 break;
3149 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07003150 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303151 return -EINVAL;
3152 }
3153
3154 /*Check for Tertiary/Quaternary/INT3 TX port*/
3155 if (strnstr(kcontrol->id.name, lsm_port_text[7],
3156 strlen(lsm_port_text[7])))
3157 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3158
3159 if (strnstr(kcontrol->id.name, lsm_port_text[8],
3160 strlen(lsm_port_text[8])))
3161 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3162
3163 if (strnstr(kcontrol->id.name, lsm_port_text[10],
3164 strlen(lsm_port_text[10])))
3165 port_id = AFE_PORT_ID_INT3_MI2S_TX;
3166
Aditya Bavanarie9454c62018-08-23 23:45:20 +05303167 if (strnstr(kcontrol->id.name, lsm_port_text[13],
3168 strlen(lsm_port_text[13])))
3169 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
3170
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05303171 if (strnstr(kcontrol->id.name, lsm_port_text[14],
3172 strlen(lsm_port_text[14])))
3173 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
3174
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303175 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
3176 mad_type);
3177 return afe_port_set_mad_type(port_id, mad_type);
3178}
3179
3180static const char *const adm_override_chs_text[] = {"Zero", "One", "Two"};
3181
Surendar Karka25e77dd2019-05-09 14:33:45 +05303182static SOC_ENUM_SINGLE_EXT_DECL(adm_override_chs,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303183 adm_override_chs_text);
3184
3185static int msm_routing_adm_get_backend_idx(struct snd_kcontrol *kcontrol)
3186{
3187 int backend_id;
3188
3189 if (strnstr(kcontrol->id.name, "SLIM7_RX", sizeof("SLIM7_RX"))) {
3190 backend_id = MSM_BACKEND_DAI_SLIMBUS_7_RX;
Surendar Karka25e77dd2019-05-09 14:33:45 +05303191 } else if (strnstr(kcontrol->id.name, "SLIM9_TX", sizeof("SLIM9_TX"))) {
3192 backend_id = MSM_BACKEND_DAI_SLIMBUS_9_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303193 } else {
3194 pr_err("%s: unsupported backend id: %s",
3195 __func__, kcontrol->id.name);
3196 return -EINVAL;
3197 }
3198
3199 return backend_id;
3200}
Surendar Karka25e77dd2019-05-09 14:33:45 +05303201
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303202static int msm_routing_adm_channel_config_get(
3203 struct snd_kcontrol *kcontrol,
3204 struct snd_ctl_elem_value *ucontrol)
3205{
3206 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
3207
3208 if (backend_id >= 0) {
3209 mutex_lock(&routing_lock);
3210 ucontrol->value.integer.value[0] =
3211 msm_bedais[backend_id].adm_override_ch;
3212 pr_debug("%s: adm channel count %ld for BE:%d\n", __func__,
3213 ucontrol->value.integer.value[0], backend_id);
3214 mutex_unlock(&routing_lock);
3215 }
3216
3217 return 0;
3218}
3219
3220static int msm_routing_adm_channel_config_put(
3221 struct snd_kcontrol *kcontrol,
3222 struct snd_ctl_elem_value *ucontrol)
3223{
3224 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
3225
3226 if (backend_id >= 0) {
3227 mutex_lock(&routing_lock);
3228 msm_bedais[backend_id].adm_override_ch =
3229 ucontrol->value.integer.value[0];
3230 pr_debug("%s:updating BE :%d adm channels: %d\n",
3231 __func__, backend_id,
3232 msm_bedais[backend_id].adm_override_ch);
3233 mutex_unlock(&routing_lock);
3234 }
3235
3236 return 0;
3237}
3238
3239static const struct snd_kcontrol_new adm_channel_config_controls[] = {
Surendar Karka25e77dd2019-05-09 14:33:45 +05303240 SOC_ENUM_EXT("SLIM7_RX ADM Channels", adm_override_chs,
3241 msm_routing_adm_channel_config_get,
3242 msm_routing_adm_channel_config_put),
3243 SOC_ENUM_EXT("SLIM9_TX ADM Channels", adm_override_chs,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303244 msm_routing_adm_channel_config_get,
3245 msm_routing_adm_channel_config_put),
3246};
3247
3248static int msm_routing_slim_0_rx_aanc_mux_get(struct snd_kcontrol *kcontrol,
3249 struct snd_ctl_elem_value *ucontrol)
3250{
3251
3252 mutex_lock(&routing_lock);
3253 ucontrol->value.integer.value[0] = slim0_rx_aanc_fb_port;
3254 mutex_unlock(&routing_lock);
3255 pr_debug("%s: AANC Mux Port %ld\n", __func__,
3256 ucontrol->value.integer.value[0]);
3257 return 0;
3258};
3259
3260static int msm_routing_slim_0_rx_aanc_mux_put(struct snd_kcontrol *kcontrol,
3261 struct snd_ctl_elem_value *ucontrol)
3262{
3263 struct aanc_data aanc_info;
3264
3265 mutex_lock(&routing_lock);
3266 memset(&aanc_info, 0x00, sizeof(aanc_info));
3267 pr_debug("%s: AANC Mux Port %ld\n", __func__,
3268 ucontrol->value.integer.value[0]);
3269 slim0_rx_aanc_fb_port = ucontrol->value.integer.value[0];
3270 if (ucontrol->value.integer.value[0] == 0) {
3271 aanc_info.aanc_active = false;
3272 aanc_info.aanc_tx_port = 0;
3273 aanc_info.aanc_rx_port = 0;
3274 } else {
3275 aanc_info.aanc_active = true;
3276 aanc_info.aanc_rx_port = SLIMBUS_0_RX;
3277 aanc_info.aanc_tx_port =
3278 (SLIMBUS_0_RX - 1 + (slim0_rx_aanc_fb_port * 2));
3279 }
3280 afe_set_aanc_info(&aanc_info);
3281 mutex_unlock(&routing_lock);
3282 return 0;
3283};
3284static int msm_routing_get_port_mixer(struct snd_kcontrol *kcontrol,
3285 struct snd_ctl_elem_value *ucontrol)
3286{
3287 int idx = 0, shift = 0;
3288 struct soc_mixer_control *mc =
3289 (struct soc_mixer_control *)kcontrol->private_value;
3290
Meng Wang05d5e9a2018-03-28 16:45:03 +08003291 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
3292 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303293
3294 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
3295 pr_err("%s: Invalid idx = %d\n", __func__, idx);
3296 return -EINVAL;
3297 }
3298
3299 if (test_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003300 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303301 ucontrol->value.integer.value[0] = 1;
3302 else
3303 ucontrol->value.integer.value[0] = 0;
3304
Meng Wang05d5e9a2018-03-28 16:45:03 +08003305 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303306 ucontrol->value.integer.value[0]);
3307
3308 return 0;
3309}
3310
3311static int msm_routing_put_port_mixer(struct snd_kcontrol *kcontrol,
3312 struct snd_ctl_elem_value *ucontrol)
3313{
3314 int idx = 0, shift = 0;
3315 struct soc_mixer_control *mc =
3316 (struct soc_mixer_control *)kcontrol->private_value;
3317
Meng Wang05d5e9a2018-03-28 16:45:03 +08003318 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
3319 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303320
3321 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
3322 pr_err("%s: Invalid idx = %d\n", __func__, idx);
3323 return -EINVAL;
3324 }
3325
Meng Wang05d5e9a2018-03-28 16:45:03 +08003326 pr_debug("%s: shift 0x%x rshift 0x%x val %ld idx %d reminder shift %d\n",
3327 __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303328 ucontrol->value.integer.value[0], idx, shift);
3329
3330 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08003331 afe_loopback(1, msm_bedais[mc->shift].port_id,
3332 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303333 set_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003334 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303335 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08003336 afe_loopback(0, msm_bedais[mc->shift].port_id,
3337 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303338 clear_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08003339 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303340 }
3341
3342 return 1;
3343}
3344
3345static int msm_pcm_get_channel_rule_index(struct snd_kcontrol *kcontrol,
3346 struct snd_ctl_elem_value *ucontrol)
3347{
3348 u16 fe_id = 0;
3349
3350 fe_id = ((struct soc_mixer_control *)
3351 kcontrol->private_value)->shift;
3352 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3353 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3354 return -EINVAL;
3355 }
3356
3357 ucontrol->value.integer.value[0] = channel_mixer[fe_id].rule;
3358
3359 return 0;
3360}
3361
3362static int msm_pcm_put_channel_rule_index(struct snd_kcontrol *kcontrol,
3363 struct snd_ctl_elem_value *ucontrol)
3364{
3365 u16 fe_id = 0;
3366
3367 fe_id = ((struct soc_mixer_control *)
3368 kcontrol->private_value)->shift;
3369 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3370 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3371 return -EINVAL;
3372 }
3373
3374 channel_mixer[fe_id].rule = ucontrol->value.integer.value[0];
3375
3376 return 1;
3377}
3378
3379static int msm_pcm_get_out_chs(struct snd_kcontrol *kcontrol,
3380 struct snd_ctl_elem_value *ucontrol)
3381{
3382 u16 fe_id = 0;
3383
3384 fe_id = ((struct soc_multi_mixer_control *)
3385 kcontrol->private_value)->shift;
3386 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3387 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3388 return -EINVAL;
3389 }
3390
3391 ucontrol->value.integer.value[0] =
3392 channel_mixer[fe_id].output_channel;
3393 return 0;
3394}
3395
3396static int msm_pcm_put_out_chs(struct snd_kcontrol *kcontrol,
3397 struct snd_ctl_elem_value *ucontrol)
3398{
3399 u16 fe_id = 0;
3400
3401 fe_id = ((struct soc_multi_mixer_control *)
3402 kcontrol->private_value)->shift;
3403 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3404 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3405 return -EINVAL;
3406 }
3407
3408 pr_debug("%s: fe_id is %d, output channels = %d\n", __func__,
3409 fe_id,
3410 (unsigned int)(ucontrol->value.integer.value[0]));
3411 channel_mixer[fe_id].output_channel =
3412 (unsigned int)(ucontrol->value.integer.value[0]);
3413
3414 return 1;
3415}
3416
3417static const char *const ch_mixer[] = {"Disable", "Enable"};
3418
3419/* If new backend is added, need update this array */
3420static const char *const be_name[] = {
3421"ZERO", "PRI_I2S_RX", "PRI_I2S_TX", "SLIM_0_RX",
3422"SLIM_0_TX", "HDMI_RX", "INT_BT_SCO_RX", "INT_BT_SCO_TX",
3423"INT_FM_RX", "INT_FM_TX", "AFE_PCM_RX", "AFE_PCM_TX",
3424"AUXPCM_RX", "AUXPCM_TX", "VOICE_PLAYBACK_TX", "VOICE2_PLAYBACK_TX",
3425"INCALL_RECORD_RX", "INCALL_RECORD_TX", "MI2S_RX", "MI2S_TX",
3426"SEC_I2S_RX", "SLIM_1_RX", "SLIM_1_TX", "SLIM_2_RX",
3427"SLIM_2_TX", "SLIM_3_RX", "SLIM_3_TX", "SLIM_4_RX",
3428"SLIM_4_TX", "SLIM_5_RX", "SLIM_5_TX", "SLIM_6_RX",
3429"SLIM_6_TX", "SLIM_7_RX", "SLIM_7_TX", "SLIM_8_RX",
3430"SLIM_8_TX", "EXTPROC_RX", "EXTPROC_TX", "EXPROC_EC_TX",
3431"QUAT_MI2S_RX", "QUAT_MI2S_TX", "SECOND_MI2S_RX", "SECOND_MI2S_TX",
3432"PRI_MI2S_RX", "PRI_MI2S_TX", "TERT_MI2S_RX", "TERT_MI2S_TX",
Ralf Herzc8701f72018-06-20 11:37:35 +02003433"AUDIO_I2S_RX", "SEC_AUXPCM_RX", "SEC_AUXPCM_TX", "PRI_SPDIF_RX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303434"SECOND_MI2S_RX_SD1", "QUIN_MI2S_RX", "QUIN_MI2S_TX", "SENARY_MI2S_TX",
3435"PRI_TDM_RX_0", "PRI_TDM_TX_0", "PRI_TDM_RX_1", "PRI_TDM_TX_1",
3436"PRI_TDM_RX_2", "PRI_TDM_TX_2", "PRI_TDM_RX_3", "PRI_TDM_TX_3",
3437"PRI_TDM_RX_4", "PRI_TDM_TX_4", "PRI_TDM_RX_5", "PRI_TDM_TX_5",
3438"PRI_TDM_RX_6", "PRI_TDM_TX_6", "PRI_TDM_RX_7", "PRI_TDM_TX_7",
3439"SEC_TDM_RX_0", "SEC_TDM_TX_0", "SEC_TDM_RX_1", "SEC_TDM_TX_1",
3440"SEC_TDM_RX_2", "SEC_TDM_TX_2", "SEC_TDM_RX_3", "SEC_TDM_TX_3",
3441"SEC_TDM_RX_4", "SEC_TDM_TX_4", "SEC_TDM_RX_5", "SEC_TDM_TX_5",
3442"SEC_TDM_RX_6", "SEC_TDM_TX_6", "SEC_TDM_RX_7", "SEC_TDM_TX_7",
3443"TERT_TDM_RX_0", "TERT_TDM_TX_0", "TERT_TDM_RX_1", "TERT_TDM_TX_1",
3444"TERT_TDM_RX_2", "TERT_TDM_TX_2", "TERT_TDM_RX_3", "TERT_TDM_TX_3",
3445"TERT_TDM_RX_4", "TERT_TDM_TX_4", "TERT_TDM_RX_5", "TERT_TDM_TX_5",
3446"TERT_TDM_RX_6", "TERT_TDM_TX_6", "TERT_TDM_RX_7", "TERT_TDM_TX_7",
3447"QUAT_TDM_RX_0", "QUAT_TDM_TX_0", "QUAT_TDM_RX_1", "QUAT_TDM_TX_1",
3448"QUAT_TDM_RX_2", "QUAT_TDM_TX_2", "QUAT_TDM_RX_3", "QUAT_TDM_TX_3",
3449"QUAT_TDM_RX_4", "QUAT_TDM_TX_4", "QUAT_TDM_RX_5", "QUAT_TDM_TX_5",
3450"QUAT_TDM_RX_6", "QUAT_TDM_TX_6", "QUAT_TDM_RX_7", "QUAT_TDM_TX_7",
Rohit Kumara5077932017-09-10 22:05:05 +05303451"QUIN_TDM_RX_0", "QUIN_TDM_TX_0", "QUIN_TDM_RX_1", "QUIN_TDM_TX_1",
3452"QUIN_TDM_RX_2", "QUIN_TDM_TX_2", "QUIN_TDM_RX_3", "QUIN_TDM_TX_3",
3453"QUIN_TDM_RX_4", "QUIN_TDM_TX_4", "QUIN_TDM_RX_5", "QUIN_TDM_TX_5",
3454"QUIN_TDM_RX_6", "QUIN_TDM_TX_6", "QUIN_TDM_RX_7", "QUIN_TDM_TX_7",
Karthikeyan Manic3700752019-03-11 18:33:53 -07003455"SEN_TDM_RX_0", "SEN_TDM_TX_0", "SEN_TDM_RX_1", "SEN_TDM_TX_1",
3456"SEN_TDM_RX_2", "SEN_TDM_TX_2", "SEN_TDM_RX_3", "SEN_TDM_TX_3",
3457"SEN_TDM_RX_4", "SEN_TDM_TX_4", "SEN_TDM_RX_5", "SEN_TDM_TX_5",
3458"SEN_TDM_RX_6", "SEN_TDM_TX_6", "SEN_TDM_RX_7", "SEN_TDM_TX_7",
Meng Wangf016d302019-01-21 10:35:53 +08003459"INT_BT_A2DP_RX", "USB_RX", "USB_TX", "DISPLAY_PORT_RX",
3460"DISPLAY_PORT_RX1", "TERT_AUXPCM_RX", "TERT_AUXPCM_TX", "QUAT_AUXPCM_RX",
3461"QUAT_AUXPCM_TX", "QUIN_AUXPCM_RX", "QUIN_AUXPCM_TX", "INT0_MI2S_RX",
3462"INT0_MI2S_TX", "INT1_MI2S_RX", "INT1_MI2S_TX", "INT2_MI2S_RX",
3463"INT2_MI2S_TX", "INT3_MI2S_RX", "INT3_MI2S_TX", "INT4_MI2S_RX",
3464"INT4_MI2S_TX", "INT5_MI2S_RX", "INT5_MI2S_TX", "INT6_MI2S_RX",
3465"INT6_MI2S_TX", "SEN_AUXPCM_RX", "SEN_AUXPCM_TX", "SENARY_MI2S_RX",
3466"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 -08003467"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 +05303468"RX_CDC_DMA_RX_0", "TX_CDC_DMA_TX_0", "RX_CDC_DMA_RX_1", "TX_CDC_DMA_TX_1",
3469"RX_CDC_DMA_RX_2", "TX_CDC_DMA_TX_2", "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_3",
3470"RX_CDC_DMA_RX_4", "TX_CDC_DMA_TX_4", "RX_CDC_DMA_RX_5", "TX_CDC_DMA_TX_5",
3471"RX_CDC_DMA_RX_6", "RX_CDC_DMA_RX_7",
3472"PRI_SPDIF_TX", "SEC_SPDIF_RX", "SEC_SPDIF_TX",
Ralf Herz29e07132019-07-26 15:15:21 +02003473"SLIM_9_RX", "SLIM_9_TX", "AFE_LOOPBACK_TX", "PRI_META_MI2S_RX",
3474"SEC_META_MI2S_RX"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303475};
3476
3477static SOC_ENUM_SINGLE_DECL(mm1_channel_mux,
3478 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, ch_mixer);
3479static SOC_ENUM_SINGLE_DECL(mm2_channel_mux,
3480 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA2, ch_mixer);
3481static SOC_ENUM_SINGLE_DECL(mm3_channel_mux,
3482 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA3, ch_mixer);
3483static SOC_ENUM_SINGLE_DECL(mm4_channel_mux,
3484 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA4, ch_mixer);
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303485static SOC_ENUM_SINGLE_DECL(mm18_channel_mux,
3486 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA18, ch_mixer);
3487static SOC_ENUM_SINGLE_DECL(mm19_channel_mux,
3488 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA19, ch_mixer);
3489static SOC_ENUM_SINGLE_DECL(mm28_channel_mux,
3490 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA28, ch_mixer);
3491static SOC_ENUM_SINGLE_DECL(mm29_channel_mux,
3492 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA29, ch_mixer);
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05303493static SOC_ENUM_SINGLE_DECL(mm30_channel_mux,
3494 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA30, ch_mixer);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303495
3496static SOC_ENUM_DOUBLE_DECL(mm1_ch1_enum,
3497 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 0, be_name);
3498static SOC_ENUM_DOUBLE_DECL(mm1_ch2_enum,
3499 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 1, be_name);
3500static SOC_ENUM_DOUBLE_DECL(mm1_ch3_enum,
3501 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 2, be_name);
3502static SOC_ENUM_DOUBLE_DECL(mm1_ch4_enum,
3503 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 3, be_name);
3504static SOC_ENUM_DOUBLE_DECL(mm1_ch5_enum,
3505 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 4, be_name);
3506static SOC_ENUM_DOUBLE_DECL(mm1_ch6_enum,
3507 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 5, be_name);
3508static SOC_ENUM_DOUBLE_DECL(mm1_ch7_enum,
3509 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 6, be_name);
3510static SOC_ENUM_DOUBLE_DECL(mm1_ch8_enum,
3511 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 7, be_name);
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303512static SOC_ENUM_DOUBLE_DECL(mm18_ch1_enum,
3513 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA18, 0, be_name);
3514static SOC_ENUM_DOUBLE_DECL(mm18_ch2_enum,
3515 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA18, 1, be_name);
3516static SOC_ENUM_DOUBLE_DECL(mm19_ch1_enum,
3517 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA19, 0, be_name);
3518static SOC_ENUM_DOUBLE_DECL(mm19_ch2_enum,
3519 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA19, 1, be_name);
3520static SOC_ENUM_DOUBLE_DECL(mm28_ch1_enum,
3521 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA28, 0, be_name);
3522static SOC_ENUM_DOUBLE_DECL(mm28_ch2_enum,
3523 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA28, 1, be_name);
3524static SOC_ENUM_DOUBLE_DECL(mm29_ch1_enum,
3525 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA29, 0, be_name);
3526static SOC_ENUM_DOUBLE_DECL(mm29_ch2_enum,
3527 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA29, 1, be_name);
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05303528static SOC_ENUM_DOUBLE_DECL(mm30_ch1_enum,
3529 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA30, 0, be_name);
3530static SOC_ENUM_DOUBLE_DECL(mm30_ch2_enum,
3531 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA30, 1, be_name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303532
3533static int msm_pcm_get_ctl_enum_info(struct snd_ctl_elem_info *uinfo,
3534 unsigned int channels,
3535 unsigned int items, const char *const names[])
3536{
3537 if (uinfo->value.enumerated.item >= items)
3538 uinfo->value.enumerated.item = items - 1;
3539
3540 WARN(strlen(names[uinfo->value.enumerated.item]) >=
3541 sizeof(uinfo->value.enumerated.name),
3542 "ALSA: too long item name '%s'\n",
3543 names[uinfo->value.enumerated.item]);
3544 strlcpy(uinfo->value.enumerated.name,
3545 names[uinfo->value.enumerated.item],
3546 sizeof(uinfo->value.enumerated.name));
3547 return 0;
3548}
3549
3550static int msm_pcm_channel_mixer_info(struct snd_kcontrol *kcontrol,
3551 struct snd_ctl_elem_info *uinfo)
3552{
3553 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3554
3555 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3556 uinfo->count = 1;
3557
3558 uinfo->value.enumerated.items = ARRAY_SIZE(ch_mixer);
3559 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3560
3561 return 0;
3562}
3563static int msm_pcm_channel_mixer_get(struct snd_kcontrol *kcontrol,
3564 struct snd_ctl_elem_value *ucontrol)
3565{
3566 u16 fe_id = 0;
3567
3568 fe_id = ((struct soc_enum *)
3569 kcontrol->private_value)->shift_l;
3570 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3571 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3572 return -EINVAL;
3573 }
3574
3575 pr_debug("%s: FE %d %s\n", __func__,
3576 fe_id,
3577 channel_mixer[fe_id].enable ? "Enabled" : "Disabled");
3578 ucontrol->value.enumerated.item[0] = channel_mixer[fe_id].enable;
3579 return 0;
3580}
3581
3582static int msm_pcm_channel_mixer_put(struct snd_kcontrol *kcontrol,
3583 struct snd_ctl_elem_value *ucontrol)
3584{
3585 u16 fe_id = 0;
3586
3587 fe_id = ((struct soc_enum *)
3588 kcontrol->private_value)->shift_l;
3589 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3590 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3591 return -EINVAL;
3592 }
3593
3594 channel_mixer[fe_id].enable = ucontrol->value.enumerated.item[0];
3595 pr_debug("%s: %s FE %d\n", __func__,
3596 channel_mixer[fe_id].enable ? "Enable" : "Disable",
3597 fe_id);
3598 return 0;
3599}
3600
3601static int msm_pcm_channel_input_be_info(struct snd_kcontrol *kcontrol,
3602 struct snd_ctl_elem_info *uinfo)
3603{
3604 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3605
3606 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3607 uinfo->count = 1;
3608
3609 uinfo->value.enumerated.items = ARRAY_SIZE(be_name);
3610 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3611
3612 return 0;
3613}
3614
3615static int msm_pcm_channel_input_be_put(struct snd_kcontrol *kcontrol,
3616 struct snd_ctl_elem_value *ucontrol)
3617{
3618 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3619 u16 fe_id = 0, in_ch = 0;
3620
3621 fe_id = e->shift_l;
3622 in_ch = e->shift_r;
3623 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3624 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3625 return -EINVAL;
3626 }
3627 if (in_ch >= ADM_MAX_CHANNELS) {
3628 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3629 return -EINVAL;
3630 }
3631
3632 channel_input[fe_id][in_ch] = ucontrol->value.enumerated.item[0];
3633 return 1;
3634}
3635
3636static int msm_pcm_channel_input_be_get(struct snd_kcontrol *kcontrol,
3637 struct snd_ctl_elem_value *ucontrol)
3638{
3639 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3640 u16 fe_id = 0, in_ch = 0;
3641
3642 fe_id = e->shift_l;
3643 in_ch = e->shift_r;
3644 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3645 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3646 return -EINVAL;
3647 }
3648 if (in_ch >= ADM_MAX_CHANNELS) {
3649 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3650 return -EINVAL;
3651 }
3652
3653 ucontrol->value.enumerated.item[0] = channel_input[fe_id][in_ch];
3654 return 1;
3655}
3656
3657
3658static int msm_pcm_channel_weight_info(struct snd_kcontrol *kcontrol,
3659 struct snd_ctl_elem_info *uinfo)
3660{
3661 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3662 uinfo->count = ADM_MAX_CHANNELS;
3663 uinfo->value.integer.min = 0;
3664 uinfo->value.integer.max = WEIGHT_0_DB;
3665
3666 return 0;
3667}
3668
3669static int msm_pcm_channel_weight_put(struct snd_kcontrol *kcontrol,
3670 struct snd_ctl_elem_value *ucontrol)
3671{
3672 u16 fe_id = 0, out_ch = 0;
3673 int i, weight;
3674
3675 fe_id = ((struct soc_multi_mixer_control *)
3676 kcontrol->private_value)->shift;
3677 out_ch = ((struct soc_multi_mixer_control *)
3678 kcontrol->private_value)->rshift;
3679 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3680 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3681 return -EINVAL;
3682 }
3683 if (out_ch >= ADM_MAX_CHANNELS) {
3684 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3685 return -EINVAL;
3686 }
3687
3688 pr_debug("%s: FE_ID: %d, channel weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld\n",
3689 __func__, fe_id,
3690 ucontrol->value.integer.value[0],
3691 ucontrol->value.integer.value[1],
3692 ucontrol->value.integer.value[2],
3693 ucontrol->value.integer.value[3],
3694 ucontrol->value.integer.value[4],
3695 ucontrol->value.integer.value[5],
3696 ucontrol->value.integer.value[6],
3697 ucontrol->value.integer.value[7]);
3698
3699 for (i = 0; i < ADM_MAX_CHANNELS; ++i) {
3700 weight = ucontrol->value.integer.value[i];
3701 channel_mixer[fe_id].channel_weight[out_ch][i] = weight;
3702 pr_debug("%s: FE_ID %d, output %d input %d weight %d\n",
3703 __func__, fe_id, out_ch, i,
3704 channel_mixer[fe_id].channel_weight[out_ch][i]);
3705 }
3706
3707 return 0;
3708}
3709
3710static int msm_pcm_channel_weight_get(struct snd_kcontrol *kcontrol,
3711 struct snd_ctl_elem_value *ucontrol)
3712{
3713 u16 fe_id = 0, out_ch = 0;
3714 int i;
3715
3716 fe_id = ((struct soc_multi_mixer_control *)
3717 kcontrol->private_value)->shift;
3718 out_ch = ((struct soc_multi_mixer_control *)
3719 kcontrol->private_value)->rshift;
3720 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3721 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3722 return -EINVAL;
3723 }
3724 if (out_ch >= ADM_MAX_CHANNELS) {
3725 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3726 return -EINVAL;
3727 }
3728
3729 for (i = 0; i < ADM_MAX_CHANNELS; ++i)
3730 ucontrol->value.integer.value[i] =
3731 channel_mixer[fe_id].channel_weight[out_ch][i];
3732
3733 pr_debug("%s: FE_ID: %d, weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld",
3734 __func__, fe_id,
3735 ucontrol->value.integer.value[0],
3736 ucontrol->value.integer.value[1],
3737 ucontrol->value.integer.value[2],
3738 ucontrol->value.integer.value[3],
3739 ucontrol->value.integer.value[4],
3740 ucontrol->value.integer.value[5],
3741 ucontrol->value.integer.value[6],
3742 ucontrol->value.integer.value[7]);
3743
3744 return 0;
3745}
3746
Chaithanya Krishna Bacharajue48fb2b2019-05-08 13:02:08 +05303747static int msm_pcm_channel_output_map_info(struct snd_kcontrol *kcontrol,
3748 struct snd_ctl_elem_info *uinfo)
3749{
3750 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3751 uinfo->count = PCM_FORMAT_MAX_NUM_CHANNEL_V8;
3752 /* Valid channel map value ranges from 1 to 64 */
3753 uinfo->value.integer.min = 0;
3754 uinfo->value.integer.max = 64;
3755
3756 return 0;
3757}
3758
3759static int msm_pcm_channel_output_map_put(struct snd_kcontrol *kcontrol,
3760 struct snd_ctl_elem_value *ucontrol)
3761{
3762 u16 fe_id = 0;
3763 int i, ch_map;
3764
3765 fe_id = ((struct soc_multi_mixer_control *)
3766 kcontrol->private_value)->shift;
3767 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3768 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3769 return -EINVAL;
3770 }
3771
3772 for (i = 0; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; ++i) {
3773 ch_map = ucontrol->value.integer.value[i];
3774 channel_mixer[fe_id].out_ch_map[i] = ch_map;
3775 pr_debug("%s: FE_ID %d, channel %d channel map %d\n",
3776 __func__, fe_id, i, channel_mixer[fe_id].out_ch_map[i]);
3777 }
3778
3779 /* Make override_out_ch_map false if ch map is reset */
3780 if (channel_mixer[fe_id].out_ch_map[0] == 0)
3781 channel_mixer[fe_id].override_out_ch_map = false;
3782 else
3783 channel_mixer[fe_id].override_out_ch_map = true;
3784
3785 return 0;
3786}
3787
3788static int msm_pcm_channel_output_map_get(struct snd_kcontrol *kcontrol,
3789 struct snd_ctl_elem_value *ucontrol)
3790{
3791 u16 fe_id = 0;
3792 int i;
3793
3794 fe_id = ((struct soc_multi_mixer_control *)
3795 kcontrol->private_value)->shift;
3796 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3797 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3798 return -EINVAL;
3799 }
3800
3801 for (i = 0; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; ++i)
3802 ucontrol->value.integer.value[i] =
3803 channel_mixer[fe_id].out_ch_map[i];
3804
3805 return 0;
3806}
3807
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303808static const struct snd_kcontrol_new channel_mixer_controls[] = {
3809 SOC_SINGLE_EXT("MultiMedia1 Channel Rule", SND_SOC_NOPM,
3810 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3811 msm_pcm_get_channel_rule_index,
3812 msm_pcm_put_channel_rule_index),
3813 SOC_SINGLE_EXT("MultiMedia2 Channel Rule", SND_SOC_NOPM,
3814 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3815 msm_pcm_get_channel_rule_index,
3816 msm_pcm_put_channel_rule_index),
3817 SOC_SINGLE_EXT("MultiMedia3 Channel Rule", SND_SOC_NOPM,
3818 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3819 msm_pcm_get_channel_rule_index,
3820 msm_pcm_put_channel_rule_index),
3821 SOC_SINGLE_EXT("MultiMedia4 Channel Rule", SND_SOC_NOPM,
3822 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3823 msm_pcm_get_channel_rule_index,
3824 msm_pcm_put_channel_rule_index),
3825 SOC_SINGLE_EXT("MultiMedia5 Channel Rule", SND_SOC_NOPM,
3826 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3827 msm_pcm_get_channel_rule_index,
3828 msm_pcm_put_channel_rule_index),
3829 SOC_SINGLE_EXT("MultiMedia6 Channel Rule", SND_SOC_NOPM,
3830 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3831 msm_pcm_get_channel_rule_index,
3832 msm_pcm_put_channel_rule_index),
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303833 SOC_SINGLE_EXT("MultiMedia18 Channel Rule", SND_SOC_NOPM,
3834 MSM_FRONTEND_DAI_MULTIMEDIA18, 8, 0,
3835 msm_pcm_get_channel_rule_index,
3836 msm_pcm_put_channel_rule_index),
3837 SOC_SINGLE_EXT("MultiMedia19 Channel Rule", SND_SOC_NOPM,
3838 MSM_FRONTEND_DAI_MULTIMEDIA19, 8, 0,
3839 msm_pcm_get_channel_rule_index,
3840 msm_pcm_put_channel_rule_index),
3841 SOC_SINGLE_EXT("MultiMedia28 Channel Rule", SND_SOC_NOPM,
3842 MSM_FRONTEND_DAI_MULTIMEDIA28, 8, 0,
3843 msm_pcm_get_channel_rule_index,
3844 msm_pcm_put_channel_rule_index),
3845 SOC_SINGLE_EXT("MultiMedia29 Channel Rule", SND_SOC_NOPM,
3846 MSM_FRONTEND_DAI_MULTIMEDIA29, 8, 0,
3847 msm_pcm_get_channel_rule_index,
3848 msm_pcm_put_channel_rule_index),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05303849 SOC_SINGLE_EXT("MultiMedia30 Channel Rule", SND_SOC_NOPM,
3850 MSM_FRONTEND_DAI_MULTIMEDIA30, 8, 0,
3851 msm_pcm_get_channel_rule_index,
3852 msm_pcm_put_channel_rule_index),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303853
3854 SOC_SINGLE_EXT("MultiMedia1 Channels", SND_SOC_NOPM,
Chaithanya Krishna Bacharaju6790e922019-05-03 13:41:00 +05303855 MSM_FRONTEND_DAI_MULTIMEDIA1, 14, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303856 msm_pcm_get_out_chs,
3857 msm_pcm_put_out_chs),
3858 SOC_SINGLE_EXT("MultiMedia2 Channels", SND_SOC_NOPM,
3859 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3860 msm_pcm_get_out_chs,
3861 msm_pcm_put_out_chs),
3862 SOC_SINGLE_EXT("MultiMedia3 Channels", SND_SOC_NOPM,
3863 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3864 msm_pcm_get_out_chs,
3865 msm_pcm_put_out_chs),
3866 SOC_SINGLE_EXT("MultiMedia4 Channels", SND_SOC_NOPM,
3867 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3868 msm_pcm_get_out_chs,
3869 msm_pcm_put_out_chs),
3870 SOC_SINGLE_EXT("MultiMedia5 Channels", SND_SOC_NOPM,
3871 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3872 msm_pcm_get_out_chs,
3873 msm_pcm_put_out_chs),
3874 SOC_SINGLE_EXT("MultiMedia6 Channels", SND_SOC_NOPM,
3875 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3876 msm_pcm_get_out_chs,
3877 msm_pcm_put_out_chs),
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303878 SOC_SINGLE_EXT("MultiMedia18 Channels", SND_SOC_NOPM,
3879 MSM_FRONTEND_DAI_MULTIMEDIA18, 14, 0,
3880 msm_pcm_get_out_chs,
3881 msm_pcm_put_out_chs),
3882 SOC_SINGLE_EXT("MultiMedia19 Channels", SND_SOC_NOPM,
3883 MSM_FRONTEND_DAI_MULTIMEDIA19, 14, 0,
3884 msm_pcm_get_out_chs,
3885 msm_pcm_put_out_chs),
3886 SOC_SINGLE_EXT("MultiMedia28 Channels", SND_SOC_NOPM,
3887 MSM_FRONTEND_DAI_MULTIMEDIA28, 14, 0,
3888 msm_pcm_get_out_chs,
3889 msm_pcm_put_out_chs),
3890 SOC_SINGLE_EXT("MultiMedia29 Channels", SND_SOC_NOPM,
3891 MSM_FRONTEND_DAI_MULTIMEDIA29, 14, 0,
3892 msm_pcm_get_out_chs,
3893 msm_pcm_put_out_chs),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05303894 SOC_SINGLE_EXT("MultiMedia30 Channels", SND_SOC_NOPM,
3895 MSM_FRONTEND_DAI_MULTIMEDIA30, 14, 0,
3896 msm_pcm_get_out_chs,
3897 msm_pcm_put_out_chs),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303898 {
3899 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3900 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3901 .name = "MultiMedia1 Channel Mixer",
3902 .info = msm_pcm_channel_mixer_info,
3903 .get = msm_pcm_channel_mixer_get,
3904 .put = msm_pcm_channel_mixer_put,
3905 .private_value = (unsigned long)&(mm1_channel_mux)
3906 },
3907 {
3908 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3909 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3910 .name = "MultiMedia2 Channel Mixer",
3911 .info = msm_pcm_channel_mixer_info,
3912 .get = msm_pcm_channel_mixer_get,
3913 .put = msm_pcm_channel_mixer_put,
3914 .private_value = (unsigned long)&(mm2_channel_mux)
3915 },
3916 {
3917 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3918 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3919 .name = "MultiMedia3 Channel Mixer",
3920 .info = msm_pcm_channel_mixer_info,
3921 .get = msm_pcm_channel_mixer_get,
3922 .put = msm_pcm_channel_mixer_put,
3923 .private_value = (unsigned long)&(mm3_channel_mux)
3924 },
3925 {
3926 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3927 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3928 .name = "MultiMedia4 Channel Mixer",
3929 .info = msm_pcm_channel_mixer_info,
3930 .get = msm_pcm_channel_mixer_get,
3931 .put = msm_pcm_channel_mixer_put,
3932 .private_value = (unsigned long)&(mm4_channel_mux)
3933 },
3934 {
3935 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3936 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05303937 .name = "MultiMedia18 Channel Mixer",
3938 .info = msm_pcm_channel_mixer_info,
3939 .get = msm_pcm_channel_mixer_get,
3940 .put = msm_pcm_channel_mixer_put,
3941 .private_value = (unsigned long)&(mm18_channel_mux)
3942 },
3943 {
3944 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3945 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3946 .name = "MultiMedia19 Channel Mixer",
3947 .info = msm_pcm_channel_mixer_info,
3948 .get = msm_pcm_channel_mixer_get,
3949 .put = msm_pcm_channel_mixer_put,
3950 .private_value = (unsigned long)&(mm19_channel_mux)
3951 },
3952 {
3953 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3954 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3955 .name = "MultiMedia28 Channel Mixer",
3956 .info = msm_pcm_channel_mixer_info,
3957 .get = msm_pcm_channel_mixer_get,
3958 .put = msm_pcm_channel_mixer_put,
3959 .private_value = (unsigned long)&(mm28_channel_mux)
3960 },
3961 {
3962 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3963 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3964 .name = "MultiMedia29 Channel Mixer",
3965 .info = msm_pcm_channel_mixer_info,
3966 .get = msm_pcm_channel_mixer_get,
3967 .put = msm_pcm_channel_mixer_put,
3968 .private_value = (unsigned long)&(mm29_channel_mux)
3969 },
3970 {
3971 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3972 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05303973 .name = "MultiMedia30 Channel Mixer",
3974 .info = msm_pcm_channel_mixer_info,
3975 .get = msm_pcm_channel_mixer_get,
3976 .put = msm_pcm_channel_mixer_put,
3977 .private_value = (unsigned long)&(mm30_channel_mux)
3978 },
3979 {
3980 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3981 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303982 .name = "MultiMedia1 Output Channel1",
3983 .info = msm_pcm_channel_weight_info,
3984 .get = msm_pcm_channel_weight_get,
3985 .put = msm_pcm_channel_weight_put,
3986 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3987 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 0,}
3988 },
3989 {
3990 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3991 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3992 .name = "MultiMedia1 Output Channel2",
3993 .info = msm_pcm_channel_weight_info,
3994 .get = msm_pcm_channel_weight_get,
3995 .put = msm_pcm_channel_weight_put,
3996 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3997 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 1, }
3998 },
3999 {
4000 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4001 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4002 .name = "MultiMedia1 Output Channel3",
4003 .info = msm_pcm_channel_weight_info,
4004 .get = msm_pcm_channel_weight_get,
4005 .put = msm_pcm_channel_weight_put,
4006 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4007 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 2,}
4008 },
4009 {
4010 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4011 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4012 .name = "MultiMedia1 Output Channel4",
4013 .info = msm_pcm_channel_weight_info,
4014 .get = msm_pcm_channel_weight_get,
4015 .put = msm_pcm_channel_weight_put,
4016 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4017 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 3,}
4018 },
4019 {
4020 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4021 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4022 .name = "MultiMedia1 Output Channel5",
4023 .info = msm_pcm_channel_weight_info,
4024 .get = msm_pcm_channel_weight_get,
4025 .put = msm_pcm_channel_weight_put,
4026 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4027 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 4,}
4028 },
4029 {
4030 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4031 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4032 .name = "MultiMedia1 Output Channel6",
4033 .info = msm_pcm_channel_weight_info,
4034 .get = msm_pcm_channel_weight_get,
4035 .put = msm_pcm_channel_weight_put,
4036 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4037 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 5,}
4038 },
4039 {
4040 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4041 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4042 .name = "MultiMedia1 Output Channel7",
4043 .info = msm_pcm_channel_weight_info,
4044 .get = msm_pcm_channel_weight_get,
4045 .put = msm_pcm_channel_weight_put,
4046 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4047 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 6,}
4048 },
4049 {
4050 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4051 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4052 .name = "MultiMedia1 Output Channel8",
4053 .info = msm_pcm_channel_weight_info,
4054 .get = msm_pcm_channel_weight_get,
4055 .put = msm_pcm_channel_weight_put,
4056 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4057 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 7,}
4058 },
4059 {
4060 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4061 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05304062 .name = "MultiMedia1 Output Channel9",
4063 .info = msm_pcm_channel_weight_info,
4064 .get = msm_pcm_channel_weight_get,
4065 .put = msm_pcm_channel_weight_put,
4066 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4067 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 8,}
4068 },
4069 {
4070 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4071 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4072 .name = "MultiMedia1 Output Channel10",
4073 .info = msm_pcm_channel_weight_info,
4074 .get = msm_pcm_channel_weight_get,
4075 .put = msm_pcm_channel_weight_put,
4076 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4077 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 9,}
4078 },
4079 {
4080 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4081 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju6790e922019-05-03 13:41:00 +05304082 .name = "MultiMedia1 Output Channel11",
4083 .info = msm_pcm_channel_weight_info,
4084 .get = msm_pcm_channel_weight_get,
4085 .put = msm_pcm_channel_weight_put,
4086 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4087 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 10,}
4088 },
4089 {
4090 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4091 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4092 .name = "MultiMedia1 Output Channel12",
4093 .info = msm_pcm_channel_weight_info,
4094 .get = msm_pcm_channel_weight_get,
4095 .put = msm_pcm_channel_weight_put,
4096 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4097 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 11,}
4098 },
4099 {
4100 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4101 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4102 .name = "MultiMedia1 Output Channel13",
4103 .info = msm_pcm_channel_weight_info,
4104 .get = msm_pcm_channel_weight_get,
4105 .put = msm_pcm_channel_weight_put,
4106 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4107 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 12,}
4108 },
4109 {
4110 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4111 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4112 .name = "MultiMedia1 Output Channel14",
4113 .info = msm_pcm_channel_weight_info,
4114 .get = msm_pcm_channel_weight_get,
4115 .put = msm_pcm_channel_weight_put,
4116 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4117 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 13,}
4118 },
4119 {
4120 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4121 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304122 .name = "MultiMedia2 Output Channel1",
4123 .info = msm_pcm_channel_weight_info,
4124 .get = msm_pcm_channel_weight_get,
4125 .put = msm_pcm_channel_weight_put,
4126 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4127 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 0,}
4128 },
4129 {
4130 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4131 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4132 .name = "MultiMedia2 Output Channel2",
4133 .info = msm_pcm_channel_weight_info,
4134 .get = msm_pcm_channel_weight_get,
4135 .put = msm_pcm_channel_weight_put,
4136 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4137 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 1,}
4138 },
4139 {
4140 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4141 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4142 .name = "MultiMedia2 Output Channel3",
4143 .info = msm_pcm_channel_weight_info,
4144 .get = msm_pcm_channel_weight_get,
4145 .put = msm_pcm_channel_weight_put,
4146 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4147 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 2,}
4148 },
4149 {
4150 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4151 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4152 .name = "MultiMedia3 Output Channel1",
4153 .info = msm_pcm_channel_weight_info,
4154 .get = msm_pcm_channel_weight_get,
4155 .put = msm_pcm_channel_weight_put,
4156 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4157 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 0,}
4158 },
4159 {
4160 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4161 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4162 .name = "MultiMedia3 Output Channel2",
4163 .info = msm_pcm_channel_weight_info,
4164 .get = msm_pcm_channel_weight_get,
4165 .put = msm_pcm_channel_weight_put,
4166 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4167 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 1,}
4168 },
4169 {
4170 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4171 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05304172 .name = "MultiMedia18 Output Channel1",
4173 .info = msm_pcm_channel_weight_info,
4174 .get = msm_pcm_channel_weight_get,
4175 .put = msm_pcm_channel_weight_put,
4176 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4177 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 0,}
4178 },
4179 {
4180 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4181 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4182 .name = "MultiMedia18 Output Channel2",
4183 .info = msm_pcm_channel_weight_info,
4184 .get = msm_pcm_channel_weight_get,
4185 .put = msm_pcm_channel_weight_put,
4186 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4187 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 1, }
4188 },
4189 {
4190 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4191 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4192 .name = "MultiMedia18 Output Channel3",
4193 .info = msm_pcm_channel_weight_info,
4194 .get = msm_pcm_channel_weight_get,
4195 .put = msm_pcm_channel_weight_put,
4196 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4197 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 2,}
4198 },
4199 {
4200 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4201 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4202 .name = "MultiMedia18 Output Channel4",
4203 .info = msm_pcm_channel_weight_info,
4204 .get = msm_pcm_channel_weight_get,
4205 .put = msm_pcm_channel_weight_put,
4206 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4207 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 3,}
4208 },
4209 {
4210 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4211 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4212 .name = "MultiMedia18 Output Channel5",
4213 .info = msm_pcm_channel_weight_info,
4214 .get = msm_pcm_channel_weight_get,
4215 .put = msm_pcm_channel_weight_put,
4216 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4217 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 4,}
4218 },
4219 {
4220 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4221 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4222 .name = "MultiMedia18 Output Channel6",
4223 .info = msm_pcm_channel_weight_info,
4224 .get = msm_pcm_channel_weight_get,
4225 .put = msm_pcm_channel_weight_put,
4226 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4227 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 5,}
4228 },
4229 {
4230 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4231 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4232 .name = "MultiMedia18 Output Channel7",
4233 .info = msm_pcm_channel_weight_info,
4234 .get = msm_pcm_channel_weight_get,
4235 .put = msm_pcm_channel_weight_put,
4236 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4237 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 6,}
4238 },
4239 {
4240 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4241 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4242 .name = "MultiMedia18 Output Channel8",
4243 .info = msm_pcm_channel_weight_info,
4244 .get = msm_pcm_channel_weight_get,
4245 .put = msm_pcm_channel_weight_put,
4246 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4247 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 7,}
4248 },
4249 {
4250 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4251 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4252 .name = "MultiMedia18 Output Channel9",
4253 .info = msm_pcm_channel_weight_info,
4254 .get = msm_pcm_channel_weight_get,
4255 .put = msm_pcm_channel_weight_put,
4256 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4257 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 8,}
4258 },
4259 {
4260 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4261 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4262 .name = "MultiMedia18 Output Channel10",
4263 .info = msm_pcm_channel_weight_info,
4264 .get = msm_pcm_channel_weight_get,
4265 .put = msm_pcm_channel_weight_put,
4266 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4267 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 9,}
4268 },
4269 {
4270 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4271 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4272 .name = "MultiMedia18 Output Channel11",
4273 .info = msm_pcm_channel_weight_info,
4274 .get = msm_pcm_channel_weight_get,
4275 .put = msm_pcm_channel_weight_put,
4276 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4277 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 10,}
4278 },
4279 {
4280 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4281 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4282 .name = "MultiMedia18 Output Channel12",
4283 .info = msm_pcm_channel_weight_info,
4284 .get = msm_pcm_channel_weight_get,
4285 .put = msm_pcm_channel_weight_put,
4286 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4287 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 11,}
4288 },
4289 {
4290 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4291 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4292 .name = "MultiMedia18 Output Channel13",
4293 .info = msm_pcm_channel_weight_info,
4294 .get = msm_pcm_channel_weight_get,
4295 .put = msm_pcm_channel_weight_put,
4296 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4297 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 12,}
4298 },
4299 {
4300 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4301 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4302 .name = "MultiMedia18 Output Channel14",
4303 .info = msm_pcm_channel_weight_info,
4304 .get = msm_pcm_channel_weight_get,
4305 .put = msm_pcm_channel_weight_put,
4306 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4307 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18, .rshift = 13,}
4308 },
4309 {
4310 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4311 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4312 .name = "MultiMedia19 Output Channel1",
4313 .info = msm_pcm_channel_weight_info,
4314 .get = msm_pcm_channel_weight_get,
4315 .put = msm_pcm_channel_weight_put,
4316 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4317 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 0,}
4318 },
4319 {
4320 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4321 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4322 .name = "MultiMedia19 Output Channel2",
4323 .info = msm_pcm_channel_weight_info,
4324 .get = msm_pcm_channel_weight_get,
4325 .put = msm_pcm_channel_weight_put,
4326 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4327 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 1, }
4328 },
4329 {
4330 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4331 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4332 .name = "MultiMedia19 Output Channel3",
4333 .info = msm_pcm_channel_weight_info,
4334 .get = msm_pcm_channel_weight_get,
4335 .put = msm_pcm_channel_weight_put,
4336 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4337 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 2,}
4338 },
4339 {
4340 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4341 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4342 .name = "MultiMedia19 Output Channel4",
4343 .info = msm_pcm_channel_weight_info,
4344 .get = msm_pcm_channel_weight_get,
4345 .put = msm_pcm_channel_weight_put,
4346 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4347 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 3,}
4348 },
4349 {
4350 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4351 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4352 .name = "MultiMedia19 Output Channel5",
4353 .info = msm_pcm_channel_weight_info,
4354 .get = msm_pcm_channel_weight_get,
4355 .put = msm_pcm_channel_weight_put,
4356 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4357 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 4,}
4358 },
4359 {
4360 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4361 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4362 .name = "MultiMedia19 Output Channel6",
4363 .info = msm_pcm_channel_weight_info,
4364 .get = msm_pcm_channel_weight_get,
4365 .put = msm_pcm_channel_weight_put,
4366 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4367 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 5,}
4368 },
4369 {
4370 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4371 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4372 .name = "MultiMedia19 Output Channel7",
4373 .info = msm_pcm_channel_weight_info,
4374 .get = msm_pcm_channel_weight_get,
4375 .put = msm_pcm_channel_weight_put,
4376 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4377 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 6,}
4378 },
4379 {
4380 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4381 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4382 .name = "MultiMedia19 Output Channel8",
4383 .info = msm_pcm_channel_weight_info,
4384 .get = msm_pcm_channel_weight_get,
4385 .put = msm_pcm_channel_weight_put,
4386 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4387 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 7,}
4388 },
4389 {
4390 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4391 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4392 .name = "MultiMedia19 Output Channel9",
4393 .info = msm_pcm_channel_weight_info,
4394 .get = msm_pcm_channel_weight_get,
4395 .put = msm_pcm_channel_weight_put,
4396 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4397 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 8,}
4398 },
4399 {
4400 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4401 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4402 .name = "MultiMedia19 Output Channel10",
4403 .info = msm_pcm_channel_weight_info,
4404 .get = msm_pcm_channel_weight_get,
4405 .put = msm_pcm_channel_weight_put,
4406 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4407 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 9,}
4408 },
4409 {
4410 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4411 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4412 .name = "MultiMedia19 Output Channel11",
4413 .info = msm_pcm_channel_weight_info,
4414 .get = msm_pcm_channel_weight_get,
4415 .put = msm_pcm_channel_weight_put,
4416 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4417 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 10,}
4418 },
4419 {
4420 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4421 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4422 .name = "MultiMedia19 Output Channel12",
4423 .info = msm_pcm_channel_weight_info,
4424 .get = msm_pcm_channel_weight_get,
4425 .put = msm_pcm_channel_weight_put,
4426 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4427 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 11,}
4428 },
4429 {
4430 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4431 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4432 .name = "MultiMedia19 Output Channel13",
4433 .info = msm_pcm_channel_weight_info,
4434 .get = msm_pcm_channel_weight_get,
4435 .put = msm_pcm_channel_weight_put,
4436 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4437 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 12,}
4438 },
4439 {
4440 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4441 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4442 .name = "MultiMedia19 Output Channel14",
4443 .info = msm_pcm_channel_weight_info,
4444 .get = msm_pcm_channel_weight_get,
4445 .put = msm_pcm_channel_weight_put,
4446 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4447 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19, .rshift = 13,}
4448 },
4449 {
4450 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4451 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4452 .name = "MultiMedia28 Output Channel1",
4453 .info = msm_pcm_channel_weight_info,
4454 .get = msm_pcm_channel_weight_get,
4455 .put = msm_pcm_channel_weight_put,
4456 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4457 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 0,}
4458 },
4459 {
4460 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4461 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4462 .name = "MultiMedia28 Output Channel2",
4463 .info = msm_pcm_channel_weight_info,
4464 .get = msm_pcm_channel_weight_get,
4465 .put = msm_pcm_channel_weight_put,
4466 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4467 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 1, }
4468 },
4469 {
4470 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4471 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4472 .name = "MultiMedia28 Output Channel3",
4473 .info = msm_pcm_channel_weight_info,
4474 .get = msm_pcm_channel_weight_get,
4475 .put = msm_pcm_channel_weight_put,
4476 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4477 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 2,}
4478 },
4479 {
4480 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4481 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4482 .name = "MultiMedia28 Output Channel4",
4483 .info = msm_pcm_channel_weight_info,
4484 .get = msm_pcm_channel_weight_get,
4485 .put = msm_pcm_channel_weight_put,
4486 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4487 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 3,}
4488 },
4489 {
4490 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4491 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4492 .name = "MultiMedia28 Output Channel5",
4493 .info = msm_pcm_channel_weight_info,
4494 .get = msm_pcm_channel_weight_get,
4495 .put = msm_pcm_channel_weight_put,
4496 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4497 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 4,}
4498 },
4499 {
4500 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4501 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4502 .name = "MultiMedia28 Output Channel6",
4503 .info = msm_pcm_channel_weight_info,
4504 .get = msm_pcm_channel_weight_get,
4505 .put = msm_pcm_channel_weight_put,
4506 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4507 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 5,}
4508 },
4509 {
4510 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4511 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4512 .name = "MultiMedia28 Output Channel7",
4513 .info = msm_pcm_channel_weight_info,
4514 .get = msm_pcm_channel_weight_get,
4515 .put = msm_pcm_channel_weight_put,
4516 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4517 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 6,}
4518 },
4519 {
4520 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4521 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4522 .name = "MultiMedia28 Output Channel8",
4523 .info = msm_pcm_channel_weight_info,
4524 .get = msm_pcm_channel_weight_get,
4525 .put = msm_pcm_channel_weight_put,
4526 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4527 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 7,}
4528 },
4529 {
4530 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4531 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4532 .name = "MultiMedia28 Output Channel9",
4533 .info = msm_pcm_channel_weight_info,
4534 .get = msm_pcm_channel_weight_get,
4535 .put = msm_pcm_channel_weight_put,
4536 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4537 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 8,}
4538 },
4539 {
4540 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4541 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4542 .name = "MultiMedia28 Output Channel10",
4543 .info = msm_pcm_channel_weight_info,
4544 .get = msm_pcm_channel_weight_get,
4545 .put = msm_pcm_channel_weight_put,
4546 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4547 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 9,}
4548 },
4549 {
4550 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4551 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4552 .name = "MultiMedia28 Output Channel11",
4553 .info = msm_pcm_channel_weight_info,
4554 .get = msm_pcm_channel_weight_get,
4555 .put = msm_pcm_channel_weight_put,
4556 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4557 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 10,}
4558 },
4559 {
4560 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4561 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4562 .name = "MultiMedia28 Output Channel12",
4563 .info = msm_pcm_channel_weight_info,
4564 .get = msm_pcm_channel_weight_get,
4565 .put = msm_pcm_channel_weight_put,
4566 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4567 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 11,}
4568 },
4569 {
4570 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4571 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4572 .name = "MultiMedia28 Output Channel13",
4573 .info = msm_pcm_channel_weight_info,
4574 .get = msm_pcm_channel_weight_get,
4575 .put = msm_pcm_channel_weight_put,
4576 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4577 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 12,}
4578 },
4579 {
4580 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4581 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4582 .name = "MultiMedia28 Output Channel14",
4583 .info = msm_pcm_channel_weight_info,
4584 .get = msm_pcm_channel_weight_get,
4585 .put = msm_pcm_channel_weight_put,
4586 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4587 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28, .rshift = 13,}
4588 },
4589 {
4590 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4591 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4592 .name = "MultiMedia29 Output Channel1",
4593 .info = msm_pcm_channel_weight_info,
4594 .get = msm_pcm_channel_weight_get,
4595 .put = msm_pcm_channel_weight_put,
4596 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4597 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 0,}
4598 },
4599 {
4600 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4601 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4602 .name = "MultiMedia29 Output Channel2",
4603 .info = msm_pcm_channel_weight_info,
4604 .get = msm_pcm_channel_weight_get,
4605 .put = msm_pcm_channel_weight_put,
4606 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4607 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 1, }
4608 },
4609 {
4610 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4611 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4612 .name = "MultiMedia29 Output Channel3",
4613 .info = msm_pcm_channel_weight_info,
4614 .get = msm_pcm_channel_weight_get,
4615 .put = msm_pcm_channel_weight_put,
4616 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4617 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 2,}
4618 },
4619 {
4620 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4621 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4622 .name = "MultiMedia29 Output Channel4",
4623 .info = msm_pcm_channel_weight_info,
4624 .get = msm_pcm_channel_weight_get,
4625 .put = msm_pcm_channel_weight_put,
4626 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4627 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 3,}
4628 },
4629 {
4630 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4631 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4632 .name = "MultiMedia29 Output Channel5",
4633 .info = msm_pcm_channel_weight_info,
4634 .get = msm_pcm_channel_weight_get,
4635 .put = msm_pcm_channel_weight_put,
4636 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4637 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 4,}
4638 },
4639 {
4640 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4641 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4642 .name = "MultiMedia29 Output Channel6",
4643 .info = msm_pcm_channel_weight_info,
4644 .get = msm_pcm_channel_weight_get,
4645 .put = msm_pcm_channel_weight_put,
4646 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4647 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 5,}
4648 },
4649 {
4650 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4651 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4652 .name = "MultiMedia29 Output Channel7",
4653 .info = msm_pcm_channel_weight_info,
4654 .get = msm_pcm_channel_weight_get,
4655 .put = msm_pcm_channel_weight_put,
4656 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4657 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 6,}
4658 },
4659 {
4660 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4661 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4662 .name = "MultiMedia29 Output Channel8",
4663 .info = msm_pcm_channel_weight_info,
4664 .get = msm_pcm_channel_weight_get,
4665 .put = msm_pcm_channel_weight_put,
4666 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4667 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 7,}
4668 },
4669 {
4670 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4671 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4672 .name = "MultiMedia29 Output Channel9",
4673 .info = msm_pcm_channel_weight_info,
4674 .get = msm_pcm_channel_weight_get,
4675 .put = msm_pcm_channel_weight_put,
4676 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4677 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 8,}
4678 },
4679 {
4680 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4681 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4682 .name = "MultiMedia29 Output Channel10",
4683 .info = msm_pcm_channel_weight_info,
4684 .get = msm_pcm_channel_weight_get,
4685 .put = msm_pcm_channel_weight_put,
4686 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4687 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 9,}
4688 },
4689 {
4690 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4691 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4692 .name = "MultiMedia29 Output Channel11",
4693 .info = msm_pcm_channel_weight_info,
4694 .get = msm_pcm_channel_weight_get,
4695 .put = msm_pcm_channel_weight_put,
4696 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4697 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 10,}
4698 },
4699 {
4700 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4701 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4702 .name = "MultiMedia29 Output Channel12",
4703 .info = msm_pcm_channel_weight_info,
4704 .get = msm_pcm_channel_weight_get,
4705 .put = msm_pcm_channel_weight_put,
4706 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4707 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 11,}
4708 },
4709 {
4710 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4711 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4712 .name = "MultiMedia29 Output Channel13",
4713 .info = msm_pcm_channel_weight_info,
4714 .get = msm_pcm_channel_weight_get,
4715 .put = msm_pcm_channel_weight_put,
4716 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4717 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 12,}
4718 },
4719 {
4720 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4721 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4722 .name = "MultiMedia29 Output Channel14",
4723 .info = msm_pcm_channel_weight_info,
4724 .get = msm_pcm_channel_weight_get,
4725 .put = msm_pcm_channel_weight_put,
4726 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4727 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29, .rshift = 13,}
4728 },
4729 {
4730 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4731 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05304732 .name = "MultiMedia30 Output Channel1",
4733 .info = msm_pcm_channel_weight_info,
4734 .get = msm_pcm_channel_weight_get,
4735 .put = msm_pcm_channel_weight_put,
4736 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4737 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 0,}
4738 },
4739 {
4740 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4741 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4742 .name = "MultiMedia30 Output Channel2",
4743 .info = msm_pcm_channel_weight_info,
4744 .get = msm_pcm_channel_weight_get,
4745 .put = msm_pcm_channel_weight_put,
4746 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4747 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 1, }
4748 },
4749 {
4750 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4751 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4752 .name = "MultiMedia30 Output Channel3",
4753 .info = msm_pcm_channel_weight_info,
4754 .get = msm_pcm_channel_weight_get,
4755 .put = msm_pcm_channel_weight_put,
4756 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4757 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 2,}
4758 },
4759 {
4760 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4761 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4762 .name = "MultiMedia30 Output Channel4",
4763 .info = msm_pcm_channel_weight_info,
4764 .get = msm_pcm_channel_weight_get,
4765 .put = msm_pcm_channel_weight_put,
4766 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4767 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 3,}
4768 },
4769 {
4770 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4771 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4772 .name = "MultiMedia30 Output Channel5",
4773 .info = msm_pcm_channel_weight_info,
4774 .get = msm_pcm_channel_weight_get,
4775 .put = msm_pcm_channel_weight_put,
4776 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4777 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 4,}
4778 },
4779 {
4780 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4781 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4782 .name = "MultiMedia30 Output Channel6",
4783 .info = msm_pcm_channel_weight_info,
4784 .get = msm_pcm_channel_weight_get,
4785 .put = msm_pcm_channel_weight_put,
4786 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4787 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 5,}
4788 },
4789 {
4790 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4791 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4792 .name = "MultiMedia30 Output Channel7",
4793 .info = msm_pcm_channel_weight_info,
4794 .get = msm_pcm_channel_weight_get,
4795 .put = msm_pcm_channel_weight_put,
4796 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4797 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 6,}
4798 },
4799 {
4800 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4801 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4802 .name = "MultiMedia30 Output Channel8",
4803 .info = msm_pcm_channel_weight_info,
4804 .get = msm_pcm_channel_weight_get,
4805 .put = msm_pcm_channel_weight_put,
4806 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4807 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 7,}
4808 },
4809 {
4810 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4811 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4812 .name = "MultiMedia30 Output Channel9",
4813 .info = msm_pcm_channel_weight_info,
4814 .get = msm_pcm_channel_weight_get,
4815 .put = msm_pcm_channel_weight_put,
4816 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4817 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 8,}
4818 },
4819 {
4820 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4821 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4822 .name = "MultiMedia30 Output Channel10",
4823 .info = msm_pcm_channel_weight_info,
4824 .get = msm_pcm_channel_weight_get,
4825 .put = msm_pcm_channel_weight_put,
4826 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4827 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 9,}
4828 },
4829 {
4830 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4831 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4832 .name = "MultiMedia30 Output Channel11",
4833 .info = msm_pcm_channel_weight_info,
4834 .get = msm_pcm_channel_weight_get,
4835 .put = msm_pcm_channel_weight_put,
4836 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4837 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 10,}
4838 },
4839 {
4840 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4841 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4842 .name = "MultiMedia30 Output Channel12",
4843 .info = msm_pcm_channel_weight_info,
4844 .get = msm_pcm_channel_weight_get,
4845 .put = msm_pcm_channel_weight_put,
4846 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4847 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 11,}
4848 },
4849 {
4850 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4851 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4852 .name = "MultiMedia30 Output Channel13",
4853 .info = msm_pcm_channel_weight_info,
4854 .get = msm_pcm_channel_weight_get,
4855 .put = msm_pcm_channel_weight_put,
4856 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4857 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 12,}
4858 },
4859 {
4860 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4861 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4862 .name = "MultiMedia30 Output Channel14",
4863 .info = msm_pcm_channel_weight_info,
4864 .get = msm_pcm_channel_weight_get,
4865 .put = msm_pcm_channel_weight_put,
4866 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
4867 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 13,}
4868 },
4869 {
4870 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4871 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304872 .name = "MultiMedia1 Channel1",
4873 .info = msm_pcm_channel_input_be_info,
4874 .get = msm_pcm_channel_input_be_get,
4875 .put = msm_pcm_channel_input_be_put,
4876 .private_value = (unsigned long)&(mm1_ch1_enum)
4877 },
4878 {
4879 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4880 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4881 .name = "MultiMedia1 Channel2",
4882 .info = msm_pcm_channel_input_be_info,
4883 .get = msm_pcm_channel_input_be_get,
4884 .put = msm_pcm_channel_input_be_put,
4885 .private_value = (unsigned long)&(mm1_ch2_enum)
4886 },
4887 {
4888 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4889 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4890 .name = "MultiMedia1 Channel3",
4891 .info = msm_pcm_channel_input_be_info,
4892 .get = msm_pcm_channel_input_be_get,
4893 .put = msm_pcm_channel_input_be_put,
4894 .private_value = (unsigned long)&(mm1_ch3_enum)
4895 },
4896 {
4897 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4898 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4899 .name = "MultiMedia1 Channel4",
4900 .info = msm_pcm_channel_input_be_info,
4901 .get = msm_pcm_channel_input_be_get,
4902 .put = msm_pcm_channel_input_be_put,
4903 .private_value = (unsigned long)&(mm1_ch4_enum)
4904 },
4905 {
4906 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4907 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4908 .name = "MultiMedia1 Channel5",
4909 .info = msm_pcm_channel_input_be_info,
4910 .get = msm_pcm_channel_input_be_get,
4911 .put = msm_pcm_channel_input_be_put,
4912 .private_value = (unsigned long)&(mm1_ch5_enum)
4913 },
4914 {
4915 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4916 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4917 .name = "MultiMedia1 Channel6",
4918 .info = msm_pcm_channel_input_be_info,
4919 .get = msm_pcm_channel_input_be_get,
4920 .put = msm_pcm_channel_input_be_put,
4921 .private_value = (unsigned long)&(mm1_ch6_enum)
4922 },
4923 {
4924 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4925 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4926 .name = "MultiMedia1 Channel7",
4927 .info = msm_pcm_channel_input_be_info,
4928 .get = msm_pcm_channel_input_be_get,
4929 .put = msm_pcm_channel_input_be_put,
4930 .private_value = (unsigned long)&(mm1_ch7_enum)
4931 },
4932 {
4933 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4934 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4935 .name = "MultiMedia1 Channel8",
4936 .info = msm_pcm_channel_input_be_info,
4937 .get = msm_pcm_channel_input_be_get,
4938 .put = msm_pcm_channel_input_be_put,
4939 .private_value = (unsigned long)&(mm1_ch8_enum)
4940 },
Chaithanya Krishna Bacharajue48fb2b2019-05-08 13:02:08 +05304941 {
4942 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4943 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05304944 .name = "MultiMedia18 Channel1",
4945 .info = msm_pcm_channel_input_be_info,
4946 .get = msm_pcm_channel_input_be_get,
4947 .put = msm_pcm_channel_input_be_put,
4948 .private_value = (unsigned long)&(mm18_ch1_enum)
4949 },
4950 {
4951 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4952 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4953 .name = "MultiMedia18 Channel2",
4954 .info = msm_pcm_channel_input_be_info,
4955 .get = msm_pcm_channel_input_be_get,
4956 .put = msm_pcm_channel_input_be_put,
4957 .private_value = (unsigned long)&(mm18_ch2_enum)
4958 },
4959 {
4960 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4961 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4962 .name = "MultiMedia19 Channel1",
4963 .info = msm_pcm_channel_input_be_info,
4964 .get = msm_pcm_channel_input_be_get,
4965 .put = msm_pcm_channel_input_be_put,
4966 .private_value = (unsigned long)&(mm19_ch1_enum)
4967 },
4968 {
4969 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4970 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4971 .name = "MultiMedia19 Channel2",
4972 .info = msm_pcm_channel_input_be_info,
4973 .get = msm_pcm_channel_input_be_get,
4974 .put = msm_pcm_channel_input_be_put,
4975 .private_value = (unsigned long)&(mm19_ch2_enum)
4976 },
4977 {
4978 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4979 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4980 .name = "MultiMedia28 Channel1",
4981 .info = msm_pcm_channel_input_be_info,
4982 .get = msm_pcm_channel_input_be_get,
4983 .put = msm_pcm_channel_input_be_put,
4984 .private_value = (unsigned long)&(mm28_ch1_enum)
4985 },
4986 {
4987 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4988 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4989 .name = "MultiMedia28 Channel2",
4990 .info = msm_pcm_channel_input_be_info,
4991 .get = msm_pcm_channel_input_be_get,
4992 .put = msm_pcm_channel_input_be_put,
4993 .private_value = (unsigned long)&(mm28_ch2_enum)
4994 },
4995 {
4996 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
4997 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
4998 .name = "MultiMedia29 Channel1",
4999 .info = msm_pcm_channel_input_be_info,
5000 .get = msm_pcm_channel_input_be_get,
5001 .put = msm_pcm_channel_input_be_put,
5002 .private_value = (unsigned long)&(mm29_ch1_enum)
5003 },
5004 {
5005 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5006 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5007 .name = "MultiMedia29 Channel2",
5008 .info = msm_pcm_channel_input_be_info,
5009 .get = msm_pcm_channel_input_be_get,
5010 .put = msm_pcm_channel_input_be_put,
5011 .private_value = (unsigned long)&(mm29_ch2_enum)
5012 },
5013 {
5014 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5015 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05305016 .name = "MultiMedia30 Channel1",
5017 .info = msm_pcm_channel_input_be_info,
5018 .get = msm_pcm_channel_input_be_get,
5019 .put = msm_pcm_channel_input_be_put,
5020 .private_value = (unsigned long)&(mm30_ch1_enum)
5021 },
5022 {
5023 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5024 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5025 .name = "MultiMedia30 Channel2",
5026 .info = msm_pcm_channel_input_be_info,
5027 .get = msm_pcm_channel_input_be_get,
5028 .put = msm_pcm_channel_input_be_put,
5029 .private_value = (unsigned long)&(mm30_ch2_enum)
5030 },
5031 {
5032 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5033 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
Chaithanya Krishna Bacharajue48fb2b2019-05-08 13:02:08 +05305034 .name = "MultiMedia1 Output Channel Map",
5035 .info = msm_pcm_channel_output_map_info,
5036 .get = msm_pcm_channel_output_map_get,
5037 .put = msm_pcm_channel_output_map_put,
5038 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5039 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1,}
5040 },
5041 {
5042 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5043 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5044 .name = "MultiMedia2 Output Channel Map",
5045 .info = msm_pcm_channel_output_map_info,
5046 .get = msm_pcm_channel_output_map_get,
5047 .put = msm_pcm_channel_output_map_put,
5048 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5049 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA2,}
5050 },
5051 {
5052 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5053 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5054 .name = "MultiMedia3 Output Channel Map",
5055 .info = msm_pcm_channel_output_map_info,
5056 .get = msm_pcm_channel_output_map_get,
5057 .put = msm_pcm_channel_output_map_put,
5058 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5059 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA3,}
5060 },
5061 {
5062 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5063 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5064 .name = "MultiMedia4 Output Channel Map",
5065 .info = msm_pcm_channel_output_map_info,
5066 .get = msm_pcm_channel_output_map_get,
5067 .put = msm_pcm_channel_output_map_put,
5068 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5069 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA4,}
5070 },
5071 {
5072 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5073 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5074 .name = "MultiMedia5 Output Channel Map",
5075 .info = msm_pcm_channel_output_map_info,
5076 .get = msm_pcm_channel_output_map_get,
5077 .put = msm_pcm_channel_output_map_put,
5078 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5079 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA5,}
5080 },
5081 {
5082 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5083 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5084 .name = "MultiMedia6 Output Channel Map",
5085 .info = msm_pcm_channel_output_map_info,
5086 .get = msm_pcm_channel_output_map_get,
5087 .put = msm_pcm_channel_output_map_put,
5088 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5089 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA6,}
5090 },
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +05305091 {
5092 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5093 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5094 .name = "MultiMedia18 Output Channel Map",
5095 .info = msm_pcm_channel_output_map_info,
5096 .get = msm_pcm_channel_output_map_get,
5097 .put = msm_pcm_channel_output_map_put,
5098 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5099 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA18,}
5100 },
5101 {
5102 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5103 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5104 .name = "MultiMedia19 Output Channel Map",
5105 .info = msm_pcm_channel_output_map_info,
5106 .get = msm_pcm_channel_output_map_get,
5107 .put = msm_pcm_channel_output_map_put,
5108 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5109 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA19,}
5110 },
5111 {
5112 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5113 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5114 .name = "MultiMedia28 Output Channel Map",
5115 .info = msm_pcm_channel_output_map_info,
5116 .get = msm_pcm_channel_output_map_get,
5117 .put = msm_pcm_channel_output_map_put,
5118 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5119 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA28,}
5120 },
5121 {
5122 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5123 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5124 .name = "MultiMedia29 Output Channel Map",
5125 .info = msm_pcm_channel_output_map_info,
5126 .get = msm_pcm_channel_output_map_get,
5127 .put = msm_pcm_channel_output_map_put,
5128 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5129 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA29,}
5130 },
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05305131 {
5132 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
5133 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
5134 .name = "MultiMedia30 Output Channel Map",
5135 .info = msm_pcm_channel_output_map_info,
5136 .get = msm_pcm_channel_output_map_get,
5137 .put = msm_pcm_channel_output_map_put,
5138 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
5139 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30,}
5140 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305141};
Chaithanya Krishna Bacharajue48fb2b2019-05-08 13:02:08 +05305142
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305143static int msm_ec_ref_ch_get(struct snd_kcontrol *kcontrol,
5144 struct snd_ctl_elem_value *ucontrol)
5145{
5146 ucontrol->value.integer.value[0] = msm_ec_ref_ch;
5147 pr_debug("%s: msm_ec_ref_ch = %ld\n", __func__,
5148 ucontrol->value.integer.value[0]);
5149 return 0;
5150}
5151
5152static int msm_ec_ref_ch_put(struct snd_kcontrol *kcontrol,
5153 struct snd_ctl_elem_value *ucontrol)
5154{
5155 msm_ec_ref_ch = ucontrol->value.integer.value[0];
5156 pr_debug("%s: msm_ec_ref_ch = %d\n", __func__, msm_ec_ref_ch);
5157 adm_num_ec_ref_rx_chans(msm_ec_ref_ch);
5158 return 0;
5159}
5160
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05305161static int msm_ec_ref_ch_downmixed_get(struct snd_kcontrol *kcontrol,
5162 struct snd_ctl_elem_value *ucontrol)
5163{
5164 ucontrol->value.integer.value[0] = msm_ec_ref_ch_downmixed;
5165 pr_debug("%s: msm_ec_ref_downmixed_ch = %ld\n", __func__,
5166 ucontrol->value.integer.value[0]);
5167 return 0;
5168}
5169
5170static int msm_ec_ref_ch_downmixed_put(struct snd_kcontrol *kcontrol,
5171 struct snd_ctl_elem_value *ucontrol)
5172{
5173 msm_ec_ref_ch_downmixed = ucontrol->value.integer.value[0];
5174 pr_debug("%s: msm_ec_ref_downmixed_ch = %d\n",
5175 __func__, msm_ec_ref_ch_downmixed);
5176 adm_num_ec_ref_rx_chans_downmixed(msm_ec_ref_ch_downmixed);
5177 return 0;
5178}
5179
5180static int msm_ec_ref_chmixer_weights_put(struct snd_kcontrol *kcontrol,
5181 struct snd_ctl_elem_value *ucontrol)
5182{
5183 int i = 0, ret = 0;
5184 uint16_t weights[PCM_FORMAT_MAX_NUM_CHANNEL_V8] = {0};
5185 int out_channel_idx = ((struct soc_multi_mixer_control *)
5186 kcontrol->private_value)->shift;
5187
5188 for (; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; i++)
5189 weights[i] = ucontrol->value.integer.value[i];
5190
5191 ret = adm_ec_ref_chmixer_weights(out_channel_idx,
5192 weights, PCM_FORMAT_MAX_NUM_CHANNEL_V8);
5193 pr_debug("%s: ch_index = %d, ret = %d\n", __func__, out_channel_idx, ret);
5194 return ret;
5195}
5196
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305197static const char *const ec_ref_ch_text[] = {"Zero", "One", "Two", "Three",
Dhananjay Kumar242b5b02019-01-16 22:45:12 +05305198 "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven",
5199 "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305200
5201static int msm_ec_ref_bit_format_get(struct snd_kcontrol *kcontrol,
5202 struct snd_ctl_elem_value *ucontrol)
5203{
5204 switch (msm_ec_ref_bit_format) {
5205 case SNDRV_PCM_FORMAT_S24_LE:
5206 ucontrol->value.integer.value[0] = 2;
5207 break;
5208 case SNDRV_PCM_FORMAT_S16_LE:
5209 ucontrol->value.integer.value[0] = 1;
5210 break;
5211 default:
5212 ucontrol->value.integer.value[0] = 0;
5213 break;
5214 }
5215 pr_debug("%s: msm_ec_ref_bit_format = %ld\n",
5216 __func__, ucontrol->value.integer.value[0]);
5217 return 0;
5218}
5219
5220static int msm_ec_ref_bit_format_put(struct snd_kcontrol *kcontrol,
5221 struct snd_ctl_elem_value *ucontrol)
5222{
5223 u16 bit_width = 0;
5224
5225 switch (ucontrol->value.integer.value[0]) {
5226 case 2:
5227 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S24_LE;
5228 break;
5229 case 1:
5230 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
5231 break;
5232 default:
5233 msm_ec_ref_bit_format = 0;
5234 break;
5235 }
5236
5237 if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S16_LE)
5238 bit_width = 16;
5239 else if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S24_LE)
5240 bit_width = 24;
5241
5242 pr_debug("%s: msm_ec_ref_bit_format = %d\n",
5243 __func__, msm_ec_ref_bit_format);
5244 adm_ec_ref_rx_bit_width(bit_width);
5245 return 0;
5246}
5247
5248static char const *ec_ref_bit_format_text[] = {"0", "S16_LE", "S24_LE"};
5249
5250static int msm_ec_ref_rate_get(struct snd_kcontrol *kcontrol,
5251 struct snd_ctl_elem_value *ucontrol)
5252{
5253 ucontrol->value.integer.value[0] = msm_ec_ref_sampling_rate;
5254 pr_debug("%s: msm_ec_ref_sampling_rate = %ld\n",
5255 __func__, ucontrol->value.integer.value[0]);
5256 return 0;
5257}
5258
5259static int msm_ec_ref_rate_put(struct snd_kcontrol *kcontrol,
5260 struct snd_ctl_elem_value *ucontrol)
5261{
5262 switch (ucontrol->value.integer.value[0]) {
5263 case 0:
5264 msm_ec_ref_sampling_rate = 0;
5265 break;
5266 case 1:
5267 msm_ec_ref_sampling_rate = 8000;
5268 break;
5269 case 2:
5270 msm_ec_ref_sampling_rate = 16000;
5271 break;
5272 case 3:
5273 msm_ec_ref_sampling_rate = 32000;
5274 break;
5275 case 4:
5276 msm_ec_ref_sampling_rate = 44100;
5277 break;
5278 case 5:
5279 msm_ec_ref_sampling_rate = 48000;
5280 break;
5281 case 6:
5282 msm_ec_ref_sampling_rate = 96000;
5283 break;
5284 case 7:
5285 msm_ec_ref_sampling_rate = 192000;
5286 break;
5287 case 8:
5288 msm_ec_ref_sampling_rate = 384000;
5289 break;
5290 default:
5291 msm_ec_ref_sampling_rate = 48000;
5292 break;
5293 }
5294 pr_debug("%s: msm_ec_ref_sampling_rate = %d\n",
5295 __func__, msm_ec_ref_sampling_rate);
5296 adm_ec_ref_rx_sampling_rate(msm_ec_ref_sampling_rate);
5297 return 0;
5298}
5299
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05305300static int get_ec_ref_port_id(int value, int *index)
5301{
5302 int port_id;
5303
5304 switch (value) {
5305 case 0:
5306 *index = 0;
5307 port_id = AFE_PORT_INVALID;
5308 break;
5309 case 1:
5310 *index = 1;
5311 port_id = SLIMBUS_0_RX;
5312 break;
5313 case 2:
5314 *index = 2;
5315 port_id = AFE_PORT_ID_PRIMARY_MI2S_RX;
5316 break;
5317 case 3:
5318 *index = 3;
5319 port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
5320 break;
5321 case 4:
5322 *index = 4;
5323 port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
5324 break;
5325 case 5:
5326 *index = 5;
5327 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
5328 break;
5329 case 6:
5330 *index = 6;
5331 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
5332 break;
5333 case 7:
5334 *index = 7;
5335 port_id = AFE_PORT_ID_SECONDARY_MI2S_RX;
5336 break;
5337 case 9:
5338 *index = 9;
5339 port_id = SLIMBUS_5_RX;
5340 break;
5341 case 10:
5342 *index = 10;
5343 port_id = SLIMBUS_1_TX;
5344 break;
5345 case 11:
5346 *index = 11;
5347 port_id = AFE_PORT_ID_QUATERNARY_TDM_TX_1;
5348 break;
5349 case 12:
5350 *index = 12;
5351 port_id = AFE_PORT_ID_QUATERNARY_TDM_RX;
5352 break;
5353 case 13:
5354 *index = 13;
5355 port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_1;
5356 break;
5357 case 14:
5358 *index = 14;
5359 port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_2;
5360 break;
5361 case 15:
5362 *index = 15;
5363 port_id = SLIMBUS_6_RX;
5364 break;
5365 case 16:
5366 *index = 16;
5367 port_id = AFE_PORT_ID_TERTIARY_MI2S_RX;
5368 break;
5369 case 17:
5370 *index = 17;
5371 port_id = AFE_PORT_ID_QUATERNARY_MI2S_RX;
5372 break;
5373 case 18:
5374 *index = 18;
5375 port_id = AFE_PORT_ID_TERTIARY_TDM_TX;
5376 break;
5377 case 19:
5378 *index = 19;
5379 port_id = AFE_PORT_ID_USB_RX;
5380 break;
5381 case 20:
5382 *index = 20;
5383 port_id = AFE_PORT_ID_INT0_MI2S_RX;
5384 break;
5385 case 21:
5386 *index = 21;
5387 port_id = AFE_PORT_ID_INT4_MI2S_RX;
5388 break;
5389 case 22:
5390 *index = 22;
5391 port_id = AFE_PORT_ID_INT3_MI2S_TX;
5392 break;
5393 case 23:
5394 *index = 23;
5395 port_id = AFE_PORT_ID_HDMI_OVER_DP_RX;
5396 break;
5397 case 24:
5398 *index = 24;
5399 port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_0;
5400 break;
5401 case 25:
5402 *index = 25;
5403 port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_1;
5404 break;
5405 case 26:
5406 *index = 26;
5407 port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_0;
5408 break;
5409 case 27:
5410 *index = 27;
5411 port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_1;
5412 break;
5413 case 28:
5414 *index = 28;
5415 port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_2;
5416 break;
5417 case 29:
5418 *index = 29;
5419 port_id = SLIMBUS_7_RX;
5420 break;
5421 case 30:
5422 *index = 30;
5423 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_0;
5424 break;
5425 case 31:
5426 *index = 31;
5427 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_1;
5428 break;
5429 case 32:
5430 *index = 32;
5431 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_2;
5432 break;
5433 case 33:
5434 *index = 33;
5435 port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_3;
5436 break;
5437 case 34:
5438 *index = 34;
5439 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_0;
5440 break;
5441 case 35:
5442 *index = 35;
5443 port_id = AFE_PORT_ID_TERTIARY_TDM_RX_2;
5444 break;
5445 case 36:
5446 *index = 36;
5447 port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
5448 break;
Vignesh Kulothungan757b7542019-08-19 15:14:37 -07005449 case 37:
5450 *index = 37;
5451 port_id = AFE_PORT_ID_HDMI_OVER_DP_RX;
5452 break;
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05305453 default:
5454 *index = 0; /* NONE */
5455 pr_err("%s: Invalid value %d\n", __func__, value);
5456 port_id = AFE_PORT_INVALID;
5457 break;
5458 }
5459
5460 return port_id;
5461}
5462
5463static int msm_routing_afe_lb_tx_port_get(struct snd_kcontrol *kcontrol,
5464 struct snd_ctl_elem_value *ucontrol)
5465{
5466 pr_debug("%s: port index = %d", __func__, afe_loopback_tx_port_index);
5467 mutex_lock(&routing_lock);
5468 ucontrol->value.integer.value[0] = afe_loopback_tx_port_index;
5469 mutex_unlock(&routing_lock);
5470
5471 return 0;
5472}
5473
5474static int msm_routing_afe_lb_tx_port_put(struct snd_kcontrol *kcontrol,
5475 struct snd_ctl_elem_value *ucontrol)
5476{
5477 int value = ucontrol->value.integer.value[0];
5478
5479 mutex_lock(&routing_lock);
5480 afe_loopback_tx_port_id = get_ec_ref_port_id(value,
5481 &afe_loopback_tx_port_index);
5482 pr_debug("%s: afe_loopback_tx_port_index = %d\n",
5483 __func__, afe_loopback_tx_port_index);
5484 mutex_unlock(&routing_lock);
5485
5486 return 0;
5487}
5488
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305489static const char *const ec_ref_rate_text[] = {"0", "8000", "16000",
5490 "32000", "44100", "48000", "96000", "192000", "384000"};
5491
5492static const struct soc_enum msm_route_ec_ref_params_enum[] = {
Vignesh Kulothungan757b7542019-08-19 15:14:37 -07005493 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_ch_text), ec_ref_ch_text),
5494 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_bit_format_text),
5495 ec_ref_bit_format_text),
5496 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rate_text), ec_ref_rate_text),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305497};
5498
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305499static const char *const ec_ref_rx[] = { "None", "SLIM_RX", "I2S_RX",
5500 "PRI_MI2S_TX", "SEC_MI2S_TX",
5501 "TERT_MI2S_TX", "QUAT_MI2S_TX", "SEC_I2S_RX", "PROXY_RX",
5502 "SLIM_5_RX", "SLIM_1_TX", "QUAT_TDM_TX_1",
5503 "QUAT_TDM_RX_0", "QUAT_TDM_RX_1", "QUAT_TDM_RX_2", "SLIM_6_RX",
5504 "TERT_MI2S_RX", "QUAT_MI2S_RX", "TERT_TDM_TX_0", "USB_AUDIO_RX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305505 "INT0_MI2S_RX", "INT4_MI2S_RX", "INT3_MI2S_TX", "DISPLAY_PORT",
5506 "WSA_CDC_DMA_RX_0", "WSA_CDC_DMA_RX_1",
Zhou Songb167db12018-07-02 17:14:00 +08005507 "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_2",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05305508 "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 -07005509 "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 -07005510 "DISPLAY_PORT1",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305511};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305512
5513static const struct soc_enum msm_route_ec_ref_rx_enum[] = {
5514 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rx), ec_ref_rx),
5515};
5516
Chaithanya Krishna Bacharaju166ccae2019-04-25 10:39:52 +05305517static const struct snd_kcontrol_new ec_ref_param_controls[] = {
5518 SOC_ENUM_EXT("EC Reference Channels", msm_route_ec_ref_params_enum[0],
5519 msm_ec_ref_ch_get, msm_ec_ref_ch_put),
5520 SOC_ENUM_EXT("EC Reference Bit Format", msm_route_ec_ref_params_enum[1],
5521 msm_ec_ref_bit_format_get, msm_ec_ref_bit_format_put),
5522 SOC_ENUM_EXT("EC Reference SampleRate", msm_route_ec_ref_params_enum[2],
5523 msm_ec_ref_rate_get, msm_ec_ref_rate_put),
5524 SOC_ENUM_EXT("EC Reference Downmixed Channels",
5525 msm_route_ec_ref_params_enum[0],
5526 msm_ec_ref_ch_downmixed_get, msm_ec_ref_ch_downmixed_put),
5527 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch1", SND_SOC_NOPM,
5528 0, 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 Ch2", SND_SOC_NOPM,
5531 1, 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 Ch3", SND_SOC_NOPM,
5534 2, 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 Ch4", SND_SOC_NOPM,
5537 3, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5538 msm_ec_ref_chmixer_weights_put),
5539 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch5", SND_SOC_NOPM,
5540 4, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5541 msm_ec_ref_chmixer_weights_put),
5542 SOC_SINGLE_MULTI_EXT("EC Reference ChMixer Weights Ch6", SND_SOC_NOPM,
5543 5, 16384, 0, PCM_FORMAT_MAX_NUM_CHANNEL_V8, NULL,
5544 msm_ec_ref_chmixer_weights_put),
5545 SOC_ENUM_EXT("AFE_LOOPBACK_TX Port", msm_route_ec_ref_rx_enum[0],
5546 msm_routing_afe_lb_tx_port_get, msm_routing_afe_lb_tx_port_put),
5547};
5548
5549static int msm_routing_ec_ref_rx_get(struct snd_kcontrol *kcontrol,
5550 struct snd_ctl_elem_value *ucontrol)
5551{
5552 pr_debug("%s: ec_ref_rx = %d", __func__, msm_route_ec_ref_rx);
5553 mutex_lock(&routing_lock);
5554 ucontrol->value.integer.value[0] = msm_route_ec_ref_rx;
5555 mutex_unlock(&routing_lock);
5556
5557 return 0;
5558}
5559
5560static int msm_routing_ec_ref_rx_put(struct snd_kcontrol *kcontrol,
5561 struct snd_ctl_elem_value *ucontrol)
5562{
5563 int value = ucontrol->value.integer.value[0];
5564 struct snd_soc_dapm_widget *widget =
5565 snd_soc_dapm_kcontrol_widget(kcontrol);
5566 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
5567 struct snd_soc_dapm_update *update = NULL;
5568
5569 mutex_lock(&routing_lock);
5570 msm_ec_ref_port_id = get_ec_ref_port_id(value, &msm_route_ec_ref_rx);
5571 adm_ec_ref_rx_id(msm_ec_ref_port_id);
5572 pr_debug("%s: msm_route_ec_ref_rx = %d\n",
5573 __func__, msm_route_ec_ref_rx);
5574 mutex_unlock(&routing_lock);
5575
5576 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol,
5577 msm_route_ec_ref_rx, e, update);
5578 return 0;
5579}
5580
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305581static const struct snd_kcontrol_new ext_ec_ref_mux_ul1 =
5582 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL1 MUX Mux",
5583 msm_route_ec_ref_rx_enum[0],
5584 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5585
5586static const struct snd_kcontrol_new ext_ec_ref_mux_ul2 =
5587 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL2 MUX Mux",
5588 msm_route_ec_ref_rx_enum[0],
5589 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5590
5591static const struct snd_kcontrol_new ext_ec_ref_mux_ul3 =
5592 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL3 MUX Mux",
5593 msm_route_ec_ref_rx_enum[0],
5594 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5595
5596static const struct snd_kcontrol_new ext_ec_ref_mux_ul4 =
5597 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL4 MUX Mux",
5598 msm_route_ec_ref_rx_enum[0],
5599 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5600
5601static const struct snd_kcontrol_new ext_ec_ref_mux_ul5 =
5602 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL5 MUX Mux",
5603 msm_route_ec_ref_rx_enum[0],
5604 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5605
5606static const struct snd_kcontrol_new ext_ec_ref_mux_ul6 =
5607 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL6 MUX Mux",
5608 msm_route_ec_ref_rx_enum[0],
5609 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5610
5611static const struct snd_kcontrol_new ext_ec_ref_mux_ul8 =
5612 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL8 MUX Mux",
5613 msm_route_ec_ref_rx_enum[0],
5614 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5615
5616static const struct snd_kcontrol_new ext_ec_ref_mux_ul9 =
5617 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL9 MUX Mux",
5618 msm_route_ec_ref_rx_enum[0],
5619 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5620
Asish Bhattacharya34504582017-08-08 12:55:01 +05305621static const struct snd_kcontrol_new ext_ec_ref_mux_ul16 =
5622 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL16 MUX Mux",
5623 msm_route_ec_ref_rx_enum[0],
5624 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5625
Laxminath Kasam38070be2017-08-17 18:21:59 +05305626static const struct snd_kcontrol_new ext_ec_ref_mux_ul10 =
5627 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL10 MUX Mux",
5628 msm_route_ec_ref_rx_enum[0],
5629 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5630
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305631static const struct snd_kcontrol_new ext_ec_ref_mux_ul17 =
5632 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL17 MUX Mux",
5633 msm_route_ec_ref_rx_enum[0],
5634 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5635
5636static const struct snd_kcontrol_new ext_ec_ref_mux_ul18 =
5637 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL18 MUX Mux",
5638 msm_route_ec_ref_rx_enum[0],
5639 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5640
5641static const struct snd_kcontrol_new ext_ec_ref_mux_ul19 =
5642 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL19 MUX Mux",
5643 msm_route_ec_ref_rx_enum[0],
5644 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5645
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305646static const struct snd_kcontrol_new ext_ec_ref_mux_ul28 =
5647 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL28 MUX Mux",
5648 msm_route_ec_ref_rx_enum[0],
5649 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5650
5651static const struct snd_kcontrol_new ext_ec_ref_mux_ul29 =
5652 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL29 MUX Mux",
5653 msm_route_ec_ref_rx_enum[0],
5654 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
5655
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305656static int msm_routing_ext_ec_get(struct snd_kcontrol *kcontrol,
5657 struct snd_ctl_elem_value *ucontrol)
5658{
5659 pr_debug("%s: ext_ec_ref_rx = %x\n", __func__, msm_route_ext_ec_ref);
5660
5661 mutex_lock(&routing_lock);
5662 ucontrol->value.integer.value[0] = msm_route_ext_ec_ref;
5663 mutex_unlock(&routing_lock);
5664 return 0;
5665}
5666
5667static int msm_routing_ext_ec_put(struct snd_kcontrol *kcontrol,
5668 struct snd_ctl_elem_value *ucontrol)
5669{
Asish Bhattacharya34504582017-08-08 12:55:01 +05305670 struct snd_soc_dapm_widget *widget =
5671 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305672 int mux = ucontrol->value.enumerated.item[0];
5673 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
5674 int ret = 1;
5675 bool state = true;
5676 uint16_t ext_ec_ref_port_id;
5677 struct snd_soc_dapm_update *update = NULL;
5678
5679 if (mux >= e->items) {
5680 pr_err("%s: Invalid mux value %d\n", __func__, mux);
5681 return -EINVAL;
5682 }
5683
5684 mutex_lock(&routing_lock);
5685 msm_route_ext_ec_ref = ucontrol->value.integer.value[0];
5686
5687 switch (msm_route_ext_ec_ref) {
5688 case EXT_EC_REF_PRI_MI2S_TX:
5689 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
5690 break;
5691 case EXT_EC_REF_SEC_MI2S_TX:
5692 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
5693 break;
5694 case EXT_EC_REF_TERT_MI2S_TX:
5695 ext_ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
5696 break;
5697 case EXT_EC_REF_QUAT_MI2S_TX:
5698 ext_ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
5699 break;
5700 case EXT_EC_REF_QUIN_MI2S_TX:
5701 ext_ec_ref_port_id = AFE_PORT_ID_QUINARY_MI2S_TX;
5702 break;
5703 case EXT_EC_REF_SLIM_1_TX:
5704 ext_ec_ref_port_id = SLIMBUS_1_TX;
5705 break;
Karthikeyan Mani925413e2019-09-10 16:57:28 -07005706 case EXT_EC_REF_PRI_TDM_TX:
5707 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_TDM_TX;
5708 break;
Karthikeyan Manibfba0542018-06-20 15:20:28 -07005709 case EXT_EC_REF_SEC_TDM_TX:
5710 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
5711 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305712 case EXT_EC_REF_NONE:
5713 default:
5714 ext_ec_ref_port_id = AFE_PORT_INVALID;
5715 state = false;
5716 break;
5717 }
5718
5719 pr_debug("%s: val = %d ext_ec_ref_port_id = 0x%0x state = %d\n",
5720 __func__, msm_route_ext_ec_ref, ext_ec_ref_port_id, state);
5721
5722 if (!voc_set_ext_ec_ref_port_id(ext_ec_ref_port_id, state)) {
5723 mutex_unlock(&routing_lock);
5724 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol, mux, e,
5725 update);
5726 } else {
5727 ret = -EINVAL;
5728 mutex_unlock(&routing_lock);
5729 }
5730 return ret;
5731}
5732
5733static const char * const ext_ec_ref_rx[] = {"NONE", "PRI_MI2S_TX",
5734 "SEC_MI2S_TX", "TERT_MI2S_TX",
5735 "QUAT_MI2S_TX", "QUIN_MI2S_TX",
Karthikeyan Mani925413e2019-09-10 16:57:28 -07005736 "SLIM_1_TX", "PRI_TDM_TX",
5737 "SEC_TDM_TX"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305738
5739static const struct soc_enum msm_route_ext_ec_ref_rx_enum[] = {
5740 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ext_ec_ref_rx), ext_ec_ref_rx),
5741};
5742
5743static const struct snd_kcontrol_new voc_ext_ec_mux =
5744 SOC_DAPM_ENUM_EXT("VOC_EXT_EC MUX Mux", msm_route_ext_ec_ref_rx_enum[0],
5745 msm_routing_ext_ec_get, msm_routing_ext_ec_put);
5746
5747
5748static const struct snd_kcontrol_new pri_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005749 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5750 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305751 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5752 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005753 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5754 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305755 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5756 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005757 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5758 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305759 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5760 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005761 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5762 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305763 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5764 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005765 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5766 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305767 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5768 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005769 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5770 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305771 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5772 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005773 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5774 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305775 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005777 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5778 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305779 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005781 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5782 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305783 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005785 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5786 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305787 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005789 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5790 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305791 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005793 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5794 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305795 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005797 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5798 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305799 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005801 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5802 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305803 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005805 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5806 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305807 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005809 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5810 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305811 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005813 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5814 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305815 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005817 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5818 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305819 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005821 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5822 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305823 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5824 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305825 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5826 MSM_BACKEND_DAI_PRI_I2S_RX,
5827 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005829 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5830 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305831 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005833 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5834 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305835 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5836 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05305837 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
5838 MSM_BACKEND_DAI_PRI_I2S_RX,
5839 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
5840 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305841};
5842
5843static const struct snd_kcontrol_new sec_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005844 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5845 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305846 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5847 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005848 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5849 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305850 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5851 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005852 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5853 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305854 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005856 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5857 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305858 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005860 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5861 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305862 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005864 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5865 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305866 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005868 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5869 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305870 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005872 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5873 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305874 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005876 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5877 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305878 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005880 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5881 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305882 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005884 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5885 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305886 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005888 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5889 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305890 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005892 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5893 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305894 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005896 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5897 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305898 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005900 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5901 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305902 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005904 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5905 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305906 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005908 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5909 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305910 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005912 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5913 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305914 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005916 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5917 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305918 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5919 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305920 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5921 MSM_BACKEND_DAI_SEC_I2S_RX,
5922 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005924 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5925 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305926 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005928 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5929 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305930 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5931 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05305932 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
5933 MSM_BACKEND_DAI_SEC_I2S_RX,
5934 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
5935 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305936};
5937
Ralf Herzc8701f72018-06-20 11:37:35 +02005938static const struct snd_kcontrol_new pri_spdif_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005939 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005940 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305941 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5942 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005943 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005944 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305945 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5946 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005947 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005948 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305949 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5950 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005951 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005952 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305953 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5954 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005955 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005956 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305957 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5958 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005959 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005960 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305961 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5962 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005963 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005964 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305965 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5966 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005967 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005968 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305969 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5970 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005971 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005972 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305973 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5974 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005975 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005976 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305977 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5978 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005979 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005980 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305981 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5982 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005983 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005984 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305985 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5986 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005987 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005988 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305989 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5990 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005991 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005992 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305993 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005995 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02005996 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305997 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005999 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02006000 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306001 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006003 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02006004 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306005 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6006 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006007 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02006008 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306009 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6010 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006011 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02006012 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306013 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6014 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306015 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6016 MSM_BACKEND_DAI_PRI_SPDIF_RX,
6017 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6018 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006019 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02006020 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306021 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6022 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006023 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02006024 MSM_BACKEND_DAI_PRI_SPDIF_RX,
6025 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6026 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306027 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6028 MSM_BACKEND_DAI_PRI_SPDIF_RX,
6029 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6030 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02006031};
6032
6033static const struct snd_kcontrol_new sec_spdif_rx_mixer_controls[] = {
6034 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6035 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6036 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6037 msm_routing_put_audio_mixer),
6038 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6039 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6040 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6041 msm_routing_put_audio_mixer),
6042 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6043 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6044 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6045 msm_routing_put_audio_mixer),
6046 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6047 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6048 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6049 msm_routing_put_audio_mixer),
6050 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6051 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6052 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6053 msm_routing_put_audio_mixer),
6054 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6055 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6056 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6057 msm_routing_put_audio_mixer),
6058 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6059 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6060 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6061 msm_routing_put_audio_mixer),
6062 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6063 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6064 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6065 msm_routing_put_audio_mixer),
6066 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6067 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6068 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6069 msm_routing_put_audio_mixer),
6070 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6071 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6072 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6073 msm_routing_put_audio_mixer),
6074 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6075 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6076 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6077 msm_routing_put_audio_mixer),
6078 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6079 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6080 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6081 msm_routing_put_audio_mixer),
6082 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6083 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6084 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6085 msm_routing_put_audio_mixer),
6086 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6087 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6088 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6089 msm_routing_put_audio_mixer),
6090 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6091 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6092 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6093 msm_routing_put_audio_mixer),
6094 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6095 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6096 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6097 msm_routing_put_audio_mixer),
6098 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6099 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6100 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6101 msm_routing_put_audio_mixer),
6102 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6103 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6104 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6105 msm_routing_put_audio_mixer),
6106 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6107 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6108 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6109 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306110 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6111 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6112 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6113 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02006114 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6115 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6116 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6117 msm_routing_put_audio_mixer),
6118 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6119 MSM_BACKEND_DAI_SEC_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306120 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6121 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306122 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6123 MSM_BACKEND_DAI_SEC_SPDIF_RX,
6124 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6125 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306126};
6127
6128static const struct snd_kcontrol_new slimbus_2_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006129 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6130 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306131 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006133 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6134 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306135 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006137 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6138 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306139 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006141 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6142 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306143 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006145 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6146 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306147 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006149 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6150 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306151 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006153 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6154 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306155 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006157 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6158 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306159 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006161 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6162 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306163 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006165 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6166 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306167 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006169 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6170 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306171 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006173 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6174 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306175 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006177 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6178 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306179 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006181 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6182 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306183 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006185 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6186 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306187 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006189 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6190 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306191 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6192 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306193 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6194 MSM_BACKEND_DAI_SLIMBUS_2_RX,
6195 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6196 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306197};
6198
6199static const struct snd_kcontrol_new slimbus_5_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006200 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6201 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306202 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006204 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6205 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306206 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6207 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006208 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6209 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306210 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6211 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006212 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6213 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306214 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6215 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006216 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6217 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306218 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6219 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006220 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6221 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306222 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6223 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006224 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6225 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306226 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6227 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006228 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6229 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306230 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6231 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006232 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6233 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306234 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6235 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006236 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6237 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306238 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6239 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006240 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6241 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306242 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6243 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006244 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6245 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306246 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6247 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006248 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6249 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306250 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6251 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006252 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6253 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306254 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6255 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006256 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6257 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306258 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6259 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006260 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6261 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306262 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006264 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6265 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306266 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006268 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6269 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306270 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6271 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006272 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6273 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306274 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6275 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306276 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6277 MSM_BACKEND_DAI_SLIMBUS_5_RX,
6278 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6279 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006280 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6281 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306282 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006284 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6285 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306286 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6287 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306288 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6289 MSM_BACKEND_DAI_SLIMBUS_5_RX,
6290 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6291 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306292};
6293
6294static const struct snd_kcontrol_new slimbus_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006295 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6296 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306297 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006299 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6300 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306301 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6302 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006303 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6304 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306305 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6306 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006307 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6308 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306309 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6310 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006311 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6312 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306313 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6314 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006315 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6316 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306317 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6318 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006319 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6320 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306321 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6322 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006323 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6324 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306325 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6326 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006327 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6328 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306329 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6330 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006331 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6332 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306333 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6334 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006335 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6336 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306337 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6338 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006339 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6340 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306341 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006343 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6344 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306345 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006347 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6348 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306349 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006351 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6352 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306353 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006355 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6356 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306357 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6358 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006359 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6360 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306361 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006363 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6364 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306365 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006367 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6368 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306369 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6370 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306371 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6372 MSM_BACKEND_DAI_SLIMBUS_0_RX,
6373 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006375 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6376 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306377 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006379 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6380 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306381 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6382 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306383 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6384 MSM_BACKEND_DAI_SLIMBUS_0_RX,
6385 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6386 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306387};
6388
6389static const struct snd_kcontrol_new mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006390 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6391 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306392 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6393 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006394 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6395 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306396 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006398 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6399 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306400 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6401 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006402 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6403 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306404 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6405 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006406 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6407 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306408 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006410 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6411 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306412 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006414 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6415 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306416 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6417 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006418 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6419 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306420 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006422 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6423 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306424 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6425 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006426 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6427 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306428 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6429 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006430 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6431 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306432 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6433 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006434 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6435 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306436 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006438 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6439 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306440 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006442 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6443 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306444 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006446 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6447 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306448 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006450 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6451 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306452 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006454 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6455 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306456 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006458 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6459 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306460 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006462 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6463 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306464 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6465 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306466 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6467 MSM_BACKEND_DAI_MI2S_RX,
6468 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006470 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6471 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306472 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006474 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6475 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306476 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6477 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306478 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6479 MSM_BACKEND_DAI_MI2S_RX,
6480 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6481 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306482};
6483
6484static const struct snd_kcontrol_new quaternary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006485 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6486 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306487 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006489 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6490 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306491 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006493 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6494 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306495 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006497 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6498 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306499 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006501 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6502 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306503 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006505 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6506 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306507 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006509 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6510 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306511 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006513 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6514 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306515 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006517 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6518 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306519 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006521 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6522 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306523 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006525 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6526 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306527 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006529 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6530 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306531 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006533 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6534 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306535 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006537 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6538 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306539 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006541 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6542 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306543 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006545 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6546 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306547 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006549 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6550 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306551 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006553 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6554 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306555 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006557 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6558 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306559 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6560 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306561 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6562 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
6563 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006565 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6566 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306567 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006569 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6570 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306571 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6572 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306573 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6574 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
6575 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6576 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306577};
6578
6579static const struct snd_kcontrol_new quinary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006580 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6581 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306582 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006584 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6585 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306586 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006588 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6589 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306590 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006592 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6593 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306594 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006596 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6597 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306598 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006600 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6601 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306602 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006604 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6605 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306606 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006608 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6609 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306610 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006612 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6613 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306614 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6615 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006616 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6617 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306618 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6619 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006620 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6621 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306622 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6623 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006624 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6625 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306626 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6627 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006628 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6629 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306630 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6631 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006632 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6633 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306634 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6635 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006636 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6637 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306638 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6639 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006640 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6641 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306642 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6643 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006644 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6645 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306646 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6647 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006648 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6649 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306650 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6651 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006652 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6653 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306654 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6655 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306656 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6657 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
6658 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6659 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006660 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6661 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306662 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6663 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006664 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6665 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306666 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6667 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306668 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6669 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
6670 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6671 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306672
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306673};
6674
Karthikeyan Manic3700752019-03-11 18:33:53 -07006675static const struct snd_kcontrol_new senary_mi2s_rx_mixer_controls[] = {
6676 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6677 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6678 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6679 msm_routing_put_audio_mixer),
6680 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6681 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6682 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6683 msm_routing_put_audio_mixer),
6684 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6685 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6686 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6687 msm_routing_put_audio_mixer),
6688 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6689 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6690 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6691 msm_routing_put_audio_mixer),
6692 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6693 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6694 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6695 msm_routing_put_audio_mixer),
6696 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6697 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6698 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6699 msm_routing_put_audio_mixer),
6700 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6701 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6702 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6703 msm_routing_put_audio_mixer),
6704 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6705 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6706 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6707 msm_routing_put_audio_mixer),
6708 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6709 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6710 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6711 msm_routing_put_audio_mixer),
6712 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6713 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6714 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6715 msm_routing_put_audio_mixer),
6716 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6717 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6718 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6719 msm_routing_put_audio_mixer),
6720 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6721 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6722 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6723 msm_routing_put_audio_mixer),
6724 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6725 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6726 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6727 msm_routing_put_audio_mixer),
6728 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6729 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6730 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6731 msm_routing_put_audio_mixer),
6732 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6733 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6734 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6735 msm_routing_put_audio_mixer),
6736 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6737 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6738 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6739 msm_routing_put_audio_mixer),
6740 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6741 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6742 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6743 msm_routing_put_audio_mixer),
6744 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6745 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6746 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6747 msm_routing_put_audio_mixer),
6748 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6749 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6750 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6751 msm_routing_put_audio_mixer),
6752 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6753 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6754 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6755 msm_routing_put_audio_mixer),
6756 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6757 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6758 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6759 msm_routing_put_audio_mixer),
6760 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6761 MSM_BACKEND_DAI_SENARY_MI2S_RX,
6762 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6763 msm_routing_put_audio_mixer),
6764
6765};
6766
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306767static const struct snd_kcontrol_new tertiary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006768 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6769 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306770 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6771 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006772 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6773 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306774 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6775 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006776 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6777 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306778 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006780 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6781 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306782 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006784 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6785 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306786 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006788 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6789 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306790 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006792 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6793 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306794 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6795 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006796 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6797 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306798 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6799 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006800 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6801 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306802 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006804 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6805 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306806 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006808 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6809 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306810 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006812 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6813 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306814 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006816 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6817 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306818 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6819 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006820 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6821 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306822 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6823 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006824 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6825 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306826 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006828 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6829 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306830 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006832 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6833 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306834 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6835 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306836 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6837 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
6838 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6839 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006840 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6841 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306842 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6843 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006844 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6845 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306846 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6847 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306848 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6849 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
6850 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6851 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306852};
6853
6854static const struct snd_kcontrol_new secondary_mi2s_rx2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006855 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6856 MSM_BACKEND_DAI_SECONDARY_MI2S_RX_SD1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306857 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6858 msm_routing_put_audio_mixer),
6859};
6860
6861static const struct snd_kcontrol_new secondary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006862 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6863 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306864 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6865 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006866 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6867 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306868 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6869 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006870 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6871 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306872 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006874 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6875 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306876 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006878 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6879 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306880 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006882 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6883 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306884 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006886 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6887 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306888 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006890 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6891 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306892 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006894 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6895 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306896 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006898 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6899 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306900 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006902 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6903 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306904 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6905 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006906 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6907 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306908 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6909 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006910 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6911 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306912 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6913 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006914 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6915 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306916 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6917 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006918 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6919 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306920 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6921 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006922 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6923 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306924 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6925 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006926 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6927 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306928 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006930 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6931 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306932 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6933 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006934 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6935 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306936 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6937 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306938 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6939 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
6940 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6941 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006942 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6943 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306944 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006946 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6947 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306948 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6949 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05306950 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
6951 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
6952 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
6953 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306954};
6955
6956static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006957 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6958 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306959 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6960 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006961 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6962 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306963 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6964 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006965 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6966 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306967 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006969 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6970 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306971 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6972 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006973 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6974 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306975 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6976 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006977 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6978 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306979 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6980 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006981 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6982 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306983 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6984 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006985 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6986 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306987 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6988 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006989 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6990 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306991 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006993 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6994 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306995 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006997 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6998 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306999 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007001 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7002 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307003 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7004 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007005 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7006 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307007 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007009 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7010 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307011 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007013 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7014 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307015 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007017 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7018 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307019 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007021 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7022 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307023 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007025 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7026 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307027 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7028 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007029 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7030 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307031 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7032 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307033 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7034 MSM_BACKEND_DAI_PRI_MI2S_RX,
7035 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7036 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007037 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7038 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307039 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7040 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007041 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7042 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307043 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7044 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05307045 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
7046 MSM_BACKEND_DAI_PRI_MI2S_RX,
7047 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
7048 msm_routing_put_audio_mixer),
Jhansi Konathala8cf03d42019-08-20 19:27:39 +05307049 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
7050 MSM_BACKEND_DAI_PRI_MI2S_RX,
7051 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_audio_mixer,
7052 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307053};
7054
7055static const struct snd_kcontrol_new int0_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007056 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7057 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307058 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007060 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7061 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307062 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007064 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7065 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307066 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007068 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7069 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307070 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007072 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7073 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307074 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7075 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007076 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7077 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307078 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007080 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7081 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307082 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007084 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7085 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307086 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007088 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7089 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307090 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007092 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7093 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307094 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007096 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7097 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307098 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007100 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7101 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307102 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007104 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7105 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307106 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007108 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7109 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307110 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007112 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7113 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307114 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007116 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7117 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307118 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7119 msm_routing_put_audio_mixer),
7120};
7121
7122static const struct snd_kcontrol_new int4_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007123 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7124 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307125 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7126 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007127 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7128 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307129 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007131 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7132 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307133 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007135 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7136 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307137 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007139 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7140 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307141 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007143 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7144 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307145 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007147 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7148 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307149 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007151 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7152 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307153 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007155 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7156 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307157 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007159 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7160 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307161 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007163 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7164 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307165 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007167 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7168 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307169 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007171 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7172 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307173 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007175 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7176 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307177 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007179 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7180 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307181 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007183 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7184 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307185 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7186 msm_routing_put_audio_mixer),
7187};
7188
Ralf Herz29e07132019-07-26 15:15:21 +02007189static const struct snd_kcontrol_new pri_meta_mi2s_rx_mixer_controls[] = {
7190 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7191 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7192 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7193 msm_routing_put_audio_mixer),
7194 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7195 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7196 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7197 msm_routing_put_audio_mixer),
7198 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7199 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7200 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7201 msm_routing_put_audio_mixer),
7202 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7203 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7204 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7205 msm_routing_put_audio_mixer),
7206 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7207 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7208 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7209 msm_routing_put_audio_mixer),
7210 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7211 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7212 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7213 msm_routing_put_audio_mixer),
7214 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7215 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7216 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7217 msm_routing_put_audio_mixer),
7218 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7219 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7220 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7221 msm_routing_put_audio_mixer),
7222 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7223 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7224 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7225 msm_routing_put_audio_mixer),
7226 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7227 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7228 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7229 msm_routing_put_audio_mixer),
7230 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7231 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7232 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7233 msm_routing_put_audio_mixer),
7234 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7235 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7236 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7237 msm_routing_put_audio_mixer),
7238 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7239 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7240 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7241 msm_routing_put_audio_mixer),
7242 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7243 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7244 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7245 msm_routing_put_audio_mixer),
7246 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7247 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7248 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7249 msm_routing_put_audio_mixer),
7250 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7251 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7252 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7253 msm_routing_put_audio_mixer),
7254 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7255 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7256 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7257 msm_routing_put_audio_mixer),
7258 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7259 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7260 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7261 msm_routing_put_audio_mixer),
7262 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7263 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7264 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7265 msm_routing_put_audio_mixer),
7266 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7267 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7268 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7269 msm_routing_put_audio_mixer),
7270 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7271 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7272 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7273 msm_routing_put_audio_mixer),
7274 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7275 MSM_BACKEND_DAI_PRI_META_MI2S_RX,
7276 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7277 msm_routing_put_audio_mixer),
7278
7279};
7280
7281static const struct snd_kcontrol_new sec_meta_mi2s_rx_mixer_controls[] = {
7282 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7283 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7284 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7285 msm_routing_put_audio_mixer),
7286 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7287 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7288 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7289 msm_routing_put_audio_mixer),
7290 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7291 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7292 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7293 msm_routing_put_audio_mixer),
7294 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7295 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7296 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7297 msm_routing_put_audio_mixer),
7298 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7299 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7300 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7301 msm_routing_put_audio_mixer),
7302 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7303 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7304 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7305 msm_routing_put_audio_mixer),
7306 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7307 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7308 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7309 msm_routing_put_audio_mixer),
7310 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7311 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7312 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7313 msm_routing_put_audio_mixer),
7314 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7315 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7316 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7317 msm_routing_put_audio_mixer),
7318 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7319 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7320 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7321 msm_routing_put_audio_mixer),
7322 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7323 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7324 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7325 msm_routing_put_audio_mixer),
7326 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7327 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7328 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7329 msm_routing_put_audio_mixer),
7330 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7331 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7332 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7333 msm_routing_put_audio_mixer),
7334 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7335 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7336 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7337 msm_routing_put_audio_mixer),
7338 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7339 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7340 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7341 msm_routing_put_audio_mixer),
7342 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7343 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7344 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7345 msm_routing_put_audio_mixer),
7346 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7347 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7348 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7349 msm_routing_put_audio_mixer),
7350 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7351 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7352 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7353 msm_routing_put_audio_mixer),
7354 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7355 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7356 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7357 msm_routing_put_audio_mixer),
7358 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7359 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7360 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7361 msm_routing_put_audio_mixer),
7362 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7363 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7364 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7365 msm_routing_put_audio_mixer),
7366 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7367 MSM_BACKEND_DAI_SEC_META_MI2S_RX,
7368 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7369 msm_routing_put_audio_mixer),
7370};
7371
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307372static const struct snd_kcontrol_new hdmi_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007373 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7374 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307375 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007377 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7378 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307379 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007381 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7382 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307383 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007385 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7386 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307387 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007389 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7390 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307391 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007393 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7394 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307395 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007397 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7398 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307399 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007401 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7402 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307403 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007405 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7406 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307407 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007409 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7410 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307411 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7412 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007413 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7414 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307415 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7416 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007417 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7418 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307419 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7420 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007421 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7422 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307423 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7424 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007425 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7426 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307427 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7428 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007429 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7430 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307431 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7432 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007433 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7434 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307435 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7436 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007437 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7438 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307439 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7440 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007441 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7442 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307443 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7444 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007445 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7446 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307447 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7448 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307449 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7450 MSM_BACKEND_DAI_HDMI_RX,
7451 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7452 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007453 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7454 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307455 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7456 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007457 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7458 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307459 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7460 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05307461 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
7462 MSM_BACKEND_DAI_HDMI_RX,
7463 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
7464 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307465};
7466
7467static const struct snd_kcontrol_new display_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007468 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7469 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307470 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007472 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7473 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307474 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7475 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007476 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7477 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307478 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007480 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7481 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307482 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7483 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007484 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7485 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307486 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7487 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007488 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7489 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307490 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7491 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007492 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7493 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307494 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007496 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7497 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307498 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7499 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007500 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7501 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307502 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7503 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007504 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7505 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307506 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7507 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007508 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7509 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307510 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7511 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007512 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7513 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307514 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7515 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007516 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7517 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307518 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7519 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007520 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7521 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307522 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7523 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007524 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7525 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307526 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7527 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007528 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7529 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307530 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7531 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307532 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7533 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
7534 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7535 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307536};
7537
Karthikeyan Mani57550082018-05-03 18:43:58 -07007538static const struct snd_kcontrol_new display_port1_mixer_controls[] = {
7539 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7540 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7541 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7542 msm_routing_put_audio_mixer),
7543 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7544 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7545 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7546 msm_routing_put_audio_mixer),
7547 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7548 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7549 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7550 msm_routing_put_audio_mixer),
7551 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7552 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7553 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7554 msm_routing_put_audio_mixer),
7555 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7556 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7557 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7558 msm_routing_put_audio_mixer),
7559 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7560 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7561 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7562 msm_routing_put_audio_mixer),
7563 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7564 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7565 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7566 msm_routing_put_audio_mixer),
7567 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7568 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7569 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7570 msm_routing_put_audio_mixer),
7571 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7572 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7573 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7574 msm_routing_put_audio_mixer),
7575 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7576 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7577 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7578 msm_routing_put_audio_mixer),
7579 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7580 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7581 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7582 msm_routing_put_audio_mixer),
7583 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7584 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7585 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7586 msm_routing_put_audio_mixer),
7587 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7588 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7589 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7590 msm_routing_put_audio_mixer),
7591 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7592 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7593 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7594 msm_routing_put_audio_mixer),
7595 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7596 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7597 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7598 msm_routing_put_audio_mixer),
7599 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7600 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7601 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7602 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307603 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7604 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
7605 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7606 msm_routing_put_audio_mixer),
Karthikeyan Mani57550082018-05-03 18:43:58 -07007607};
7608
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307609 /* incall music delivery mixer */
7610static const struct snd_kcontrol_new incall_music_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007611 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7612 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307613 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007615 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7616 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307617 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7618 msm_routing_put_audio_mixer),
Anurag Chouhanb2a024a2019-10-09 11:39:08 +05307619 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7620 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
7621 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7622 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007623 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7624 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307625 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007627 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7628 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307629 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7630 msm_routing_put_audio_mixer),
7631};
7632
7633static const struct snd_kcontrol_new incall_music2_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007634 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7635 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307636 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007638 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7639 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307640 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007642 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7643 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307644 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007646 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7647 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307648 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7649 msm_routing_put_audio_mixer),
7650};
7651
7652static const struct snd_kcontrol_new slimbus_4_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007653 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7654 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307655 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007657 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7658 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307659 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007661 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7662 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307663 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7664 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007665 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7666 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307667 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7668 msm_routing_put_audio_mixer),
7669};
7670
7671static const struct snd_kcontrol_new slimbus_6_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007672 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7673 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307674 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7675 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007676 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7677 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307678 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7679 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007680 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7681 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307682 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7683 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007684 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7685 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307686 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7687 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007688 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7689 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307690 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7691 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007692 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7693 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307694 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7695 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007696 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7697 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307698 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7699 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007700 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7701 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307702 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7703 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007704 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7705 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307706 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7707 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007708 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7709 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307710 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7711 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007712 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7713 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307714 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7715 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007716 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7717 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307718 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7719 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007720 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7721 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307722 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7723 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007724 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7725 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307726 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7727 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007728 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7729 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307730 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7731 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007732 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7733 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307734 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7735 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307736 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7737 MSM_BACKEND_DAI_SLIMBUS_6_RX,
7738 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7739 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307740};
7741
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05307742static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_mixer_controls[] = {
7743 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7744 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7745 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7746 msm_routing_put_audio_mixer),
7747 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7748 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7749 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7750 msm_routing_put_audio_mixer),
7751 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7752 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7753 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7754 msm_routing_put_audio_mixer),
7755 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7756 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7757 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7758 msm_routing_put_audio_mixer),
7759 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7760 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7761 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7762 msm_routing_put_audio_mixer),
7763 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7764 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7765 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7766 msm_routing_put_audio_mixer),
7767 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7768 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7769 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7770 msm_routing_put_audio_mixer),
7771 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7772 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7773 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7774 msm_routing_put_audio_mixer),
7775 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7776 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7777 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7778 msm_routing_put_audio_mixer),
7779 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7780 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7781 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7782 msm_routing_put_audio_mixer),
7783 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7784 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7785 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7786 msm_routing_put_audio_mixer),
7787 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7788 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7789 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7790 msm_routing_put_audio_mixer),
7791 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7792 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7793 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7794 msm_routing_put_audio_mixer),
7795 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7796 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7797 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7798 msm_routing_put_audio_mixer),
7799 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7800 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7801 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7802 msm_routing_put_audio_mixer),
7803 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7804 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7805 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7806 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307807 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7808 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
7809 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7810 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05307811};
7812
7813static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_mixer_controls[] = {
7814 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7815 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7816 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7817 msm_routing_put_audio_mixer),
7818 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7819 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7820 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7821 msm_routing_put_audio_mixer),
7822 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7823 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7824 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7825 msm_routing_put_audio_mixer),
7826 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7827 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7828 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7829 msm_routing_put_audio_mixer),
7830 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7831 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7832 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7833 msm_routing_put_audio_mixer),
7834 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7835 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7836 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7837 msm_routing_put_audio_mixer),
7838 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7839 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7840 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7841 msm_routing_put_audio_mixer),
7842 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7843 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7844 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7845 msm_routing_put_audio_mixer),
7846 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7847 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7848 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7849 msm_routing_put_audio_mixer),
7850 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7851 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7852 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7853 msm_routing_put_audio_mixer),
7854 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7855 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7856 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7857 msm_routing_put_audio_mixer),
7858 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7859 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7860 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7861 msm_routing_put_audio_mixer),
7862 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7863 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7864 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7865 msm_routing_put_audio_mixer),
7866 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7867 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7868 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7869 msm_routing_put_audio_mixer),
7870 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7871 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7872 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7873 msm_routing_put_audio_mixer),
7874 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7875 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7876 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7877 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307878 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7879 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
7880 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7881 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05307882};
7883
Aditya Bavanari1e84a932018-06-18 19:40:08 +05307884static const struct snd_kcontrol_new rx_cdc_dma_rx_0_mixer_controls[] = {
7885 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7886 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7887 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7888 msm_routing_put_audio_mixer),
7889 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7890 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7891 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7892 msm_routing_put_audio_mixer),
7893 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7894 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7895 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7896 msm_routing_put_audio_mixer),
7897 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7898 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7899 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7900 msm_routing_put_audio_mixer),
7901 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7902 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7903 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7904 msm_routing_put_audio_mixer),
7905 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7906 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7907 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7908 msm_routing_put_audio_mixer),
7909 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7910 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7911 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7912 msm_routing_put_audio_mixer),
7913 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7914 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7915 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7916 msm_routing_put_audio_mixer),
7917 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7918 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7919 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7920 msm_routing_put_audio_mixer),
7921 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7922 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7923 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7924 msm_routing_put_audio_mixer),
7925 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7926 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7927 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7928 msm_routing_put_audio_mixer),
7929 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7930 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7931 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7932 msm_routing_put_audio_mixer),
7933 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7934 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7935 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7936 msm_routing_put_audio_mixer),
7937 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7938 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7939 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7940 msm_routing_put_audio_mixer),
7941 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7942 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7943 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7944 msm_routing_put_audio_mixer),
7945 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7946 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7947 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7948 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307949 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7950 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
7951 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7952 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05307953};
7954
7955static const struct snd_kcontrol_new rx_cdc_dma_rx_1_mixer_controls[] = {
7956 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7957 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7958 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7959 msm_routing_put_audio_mixer),
7960 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7961 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7962 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7963 msm_routing_put_audio_mixer),
7964 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7965 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7966 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7967 msm_routing_put_audio_mixer),
7968 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7969 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7970 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7971 msm_routing_put_audio_mixer),
7972 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7973 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7974 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7975 msm_routing_put_audio_mixer),
7976 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7977 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7978 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7979 msm_routing_put_audio_mixer),
7980 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7981 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7982 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7983 msm_routing_put_audio_mixer),
7984 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7985 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7986 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7987 msm_routing_put_audio_mixer),
7988 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7989 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7990 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7991 msm_routing_put_audio_mixer),
7992 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7993 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7994 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7995 msm_routing_put_audio_mixer),
7996 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7997 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
7998 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7999 msm_routing_put_audio_mixer),
8000 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8001 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
8002 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8003 msm_routing_put_audio_mixer),
8004 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8005 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
8006 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8007 msm_routing_put_audio_mixer),
8008 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8009 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
8010 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8011 msm_routing_put_audio_mixer),
8012 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8013 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
8014 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8015 msm_routing_put_audio_mixer),
8016 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8017 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
8018 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8019 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308020 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8021 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
8022 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8023 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308024};
8025
8026static const struct snd_kcontrol_new rx_cdc_dma_rx_2_mixer_controls[] = {
8027 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8028 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8029 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8030 msm_routing_put_audio_mixer),
8031 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8032 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8033 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8034 msm_routing_put_audio_mixer),
8035 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8036 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8037 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8038 msm_routing_put_audio_mixer),
8039 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8040 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8041 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8042 msm_routing_put_audio_mixer),
8043 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8044 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8045 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8046 msm_routing_put_audio_mixer),
8047 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8048 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8049 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8050 msm_routing_put_audio_mixer),
8051 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8052 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8053 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8054 msm_routing_put_audio_mixer),
8055 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8056 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8057 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8058 msm_routing_put_audio_mixer),
8059 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8060 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8061 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8062 msm_routing_put_audio_mixer),
8063 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8064 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8065 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8066 msm_routing_put_audio_mixer),
8067 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8068 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8069 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8070 msm_routing_put_audio_mixer),
8071 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8072 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8073 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8074 msm_routing_put_audio_mixer),
8075 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8076 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8077 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8078 msm_routing_put_audio_mixer),
8079 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8080 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8081 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8082 msm_routing_put_audio_mixer),
8083 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8084 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8085 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8086 msm_routing_put_audio_mixer),
8087 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8088 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8089 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8090 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308091 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8092 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
8093 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8094 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308095};
8096
8097static const struct snd_kcontrol_new rx_cdc_dma_rx_3_mixer_controls[] = {
8098 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8099 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8100 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8101 msm_routing_put_audio_mixer),
8102 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8103 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8104 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8105 msm_routing_put_audio_mixer),
8106 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8107 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8108 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8109 msm_routing_put_audio_mixer),
8110 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8111 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8112 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8113 msm_routing_put_audio_mixer),
8114 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8115 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8116 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8117 msm_routing_put_audio_mixer),
8118 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8119 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8120 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8121 msm_routing_put_audio_mixer),
8122 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8123 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8124 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8125 msm_routing_put_audio_mixer),
8126 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8127 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8128 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8129 msm_routing_put_audio_mixer),
8130 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8131 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8132 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8133 msm_routing_put_audio_mixer),
8134 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8135 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8136 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8137 msm_routing_put_audio_mixer),
8138 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8139 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8140 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8141 msm_routing_put_audio_mixer),
8142 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8143 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8144 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8145 msm_routing_put_audio_mixer),
8146 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8147 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8148 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8149 msm_routing_put_audio_mixer),
8150 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8151 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8152 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8153 msm_routing_put_audio_mixer),
8154 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8155 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8156 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8157 msm_routing_put_audio_mixer),
8158 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8159 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8160 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8161 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308162 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8163 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
8164 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8165 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308166};
8167
8168static const struct snd_kcontrol_new rx_cdc_dma_rx_4_mixer_controls[] = {
8169 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8170 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8171 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8172 msm_routing_put_audio_mixer),
8173 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8174 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8175 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8176 msm_routing_put_audio_mixer),
8177 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8178 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8179 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8180 msm_routing_put_audio_mixer),
8181 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8182 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8183 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8184 msm_routing_put_audio_mixer),
8185 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8186 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8187 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8188 msm_routing_put_audio_mixer),
8189 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8190 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8191 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8192 msm_routing_put_audio_mixer),
8193 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8194 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8195 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8196 msm_routing_put_audio_mixer),
8197 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8198 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8199 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8200 msm_routing_put_audio_mixer),
8201 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8202 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8203 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8204 msm_routing_put_audio_mixer),
8205 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8206 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8207 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8208 msm_routing_put_audio_mixer),
8209 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8210 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8211 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8212 msm_routing_put_audio_mixer),
8213 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8214 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8215 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8216 msm_routing_put_audio_mixer),
8217 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8218 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8219 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8220 msm_routing_put_audio_mixer),
8221 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8222 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8223 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8224 msm_routing_put_audio_mixer),
8225 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8226 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8227 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8228 msm_routing_put_audio_mixer),
8229 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8230 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8231 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8232 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308233 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8234 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
8235 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8236 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308237};
8238
8239static const struct snd_kcontrol_new rx_cdc_dma_rx_5_mixer_controls[] = {
8240 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8241 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8242 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8243 msm_routing_put_audio_mixer),
8244 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8245 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8246 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8247 msm_routing_put_audio_mixer),
8248 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8249 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8250 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8251 msm_routing_put_audio_mixer),
8252 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8253 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8254 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8255 msm_routing_put_audio_mixer),
8256 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8257 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8258 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8259 msm_routing_put_audio_mixer),
8260 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8261 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8262 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8263 msm_routing_put_audio_mixer),
8264 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8265 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8266 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8267 msm_routing_put_audio_mixer),
8268 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8269 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8270 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8271 msm_routing_put_audio_mixer),
8272 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8273 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8274 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8275 msm_routing_put_audio_mixer),
8276 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8277 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8278 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8279 msm_routing_put_audio_mixer),
8280 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8281 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8282 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8283 msm_routing_put_audio_mixer),
8284 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8285 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8286 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8287 msm_routing_put_audio_mixer),
8288 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8289 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8290 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8291 msm_routing_put_audio_mixer),
8292 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8293 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8294 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8295 msm_routing_put_audio_mixer),
8296 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8297 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8298 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8299 msm_routing_put_audio_mixer),
8300 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8301 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8302 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8303 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308304 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8305 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
8306 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8307 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308308};
8309
8310static const struct snd_kcontrol_new rx_cdc_dma_rx_6_mixer_controls[] = {
8311 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8312 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8313 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8314 msm_routing_put_audio_mixer),
8315 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8316 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8317 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8318 msm_routing_put_audio_mixer),
8319 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8320 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8321 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8322 msm_routing_put_audio_mixer),
8323 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8324 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8325 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8326 msm_routing_put_audio_mixer),
8327 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8328 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8329 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8330 msm_routing_put_audio_mixer),
8331 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8332 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8333 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8334 msm_routing_put_audio_mixer),
8335 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8336 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8337 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8338 msm_routing_put_audio_mixer),
8339 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8340 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8341 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8342 msm_routing_put_audio_mixer),
8343 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8344 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8345 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8346 msm_routing_put_audio_mixer),
8347 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8348 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8349 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8350 msm_routing_put_audio_mixer),
8351 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8352 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8353 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8354 msm_routing_put_audio_mixer),
8355 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8356 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8357 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8358 msm_routing_put_audio_mixer),
8359 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8360 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8361 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8362 msm_routing_put_audio_mixer),
8363 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8364 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8365 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8366 msm_routing_put_audio_mixer),
8367 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8368 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8369 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8370 msm_routing_put_audio_mixer),
8371 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8372 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8373 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8374 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308375 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8376 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
8377 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8378 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308379};
8380
8381static const struct snd_kcontrol_new rx_cdc_dma_rx_7_mixer_controls[] = {
8382 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8383 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8384 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8385 msm_routing_put_audio_mixer),
8386 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8387 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8388 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8389 msm_routing_put_audio_mixer),
8390 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8391 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8392 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8393 msm_routing_put_audio_mixer),
8394 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8395 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8396 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8397 msm_routing_put_audio_mixer),
8398 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8399 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8400 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8401 msm_routing_put_audio_mixer),
8402 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8403 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8404 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8405 msm_routing_put_audio_mixer),
8406 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8407 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8408 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8409 msm_routing_put_audio_mixer),
8410 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8411 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8412 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8413 msm_routing_put_audio_mixer),
8414 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8415 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8416 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8417 msm_routing_put_audio_mixer),
8418 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8419 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8420 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8421 msm_routing_put_audio_mixer),
8422 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8423 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8424 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8425 msm_routing_put_audio_mixer),
8426 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8427 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8428 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8429 msm_routing_put_audio_mixer),
8430 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8431 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8432 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8433 msm_routing_put_audio_mixer),
8434 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8435 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8436 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8437 msm_routing_put_audio_mixer),
8438 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8439 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8440 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8441 msm_routing_put_audio_mixer),
8442 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8443 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8444 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8445 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308446 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8447 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
8448 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8449 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05308450};
8451
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308452static const struct snd_kcontrol_new slimbus_7_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008453 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8454 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308455 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8456 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008457 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8458 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308459 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8460 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008461 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8462 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308463 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8464 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008465 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8466 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308467 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8468 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008469 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8470 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308471 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008473 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8474 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308475 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008477 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8478 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308479 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008481 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8482 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308483 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008485 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8486 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308487 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008489 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8490 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308491 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008493 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8494 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308495 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008497 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8498 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308499 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008501 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8502 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308503 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008505 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8506 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308507 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008509 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8510 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308511 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008513 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8514 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308515 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8516 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308517 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8518 MSM_BACKEND_DAI_SLIMBUS_7_RX,
8519 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8520 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308521};
8522
Surendar Karka3ef3d812018-09-28 18:52:35 +05308523static const struct snd_kcontrol_new slimbus_9_rx_mixer_controls[] = {
8524 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8525 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8526 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8527 msm_routing_put_audio_mixer),
8528 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8529 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8530 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8531 msm_routing_put_audio_mixer),
8532 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8533 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8534 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8535 msm_routing_put_audio_mixer),
8536 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8537 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8538 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8539 msm_routing_put_audio_mixer),
8540 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8541 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8542 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8543 msm_routing_put_audio_mixer),
8544 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8545 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8546 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8547 msm_routing_put_audio_mixer),
8548 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8549 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8550 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8551 msm_routing_put_audio_mixer),
8552 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8553 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8554 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8555 msm_routing_put_audio_mixer),
8556 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8557 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8558 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8559 msm_routing_put_audio_mixer),
8560 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8561 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8562 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8563 msm_routing_put_audio_mixer),
8564 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8565 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8566 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8567 msm_routing_put_audio_mixer),
8568 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8569 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8570 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8571 msm_routing_put_audio_mixer),
8572 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8573 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8574 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8575 msm_routing_put_audio_mixer),
8576 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8577 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8578 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8579 msm_routing_put_audio_mixer),
8580 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8581 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8582 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8583 msm_routing_put_audio_mixer),
8584 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8585 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8586 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8587 msm_routing_put_audio_mixer),
8588 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8589 MSM_BACKEND_DAI_SLIMBUS_9_RX,
8590 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8591 msm_routing_put_audio_mixer),
8592};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308593static const struct snd_kcontrol_new usb_audio_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008594 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8595 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308596 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008598 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8599 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308600 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008602 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8603 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308604 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8605 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008606 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8607 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308608 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008610 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8611 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308612 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8613 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008614 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8615 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308616 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8617 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008618 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8619 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308620 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008622 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8623 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308624 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008626 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8627 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308628 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008630 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8631 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308632 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008634 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8635 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308636 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008638 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8639 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308640 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008642 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8643 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308644 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008646 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8647 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308648 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008650 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8651 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308652 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008654 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8655 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308656 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8657 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308658 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8659 MSM_BACKEND_DAI_USB_RX,
8660 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8661 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308662};
8663
8664static const struct snd_kcontrol_new int_bt_sco_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008665 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8666 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308667 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8668 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008669 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8670 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308671 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008673 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8674 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308675 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008677 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8678 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308679 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008681 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8682 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308683 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008685 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8686 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308687 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008689 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8690 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308691 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008693 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8694 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308695 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008697 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8698 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308699 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008701 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8702 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308703 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008705 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8706 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308707 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008709 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8710 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308711 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008713 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8714 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308715 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008717 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8718 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308719 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008721 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8722 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308723 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8724 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008725 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8726 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308727 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008729 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
8730 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308731 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
8732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008733 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
8734 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308735 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
8736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008737 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
8738 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308739 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
8740 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308741 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8742 MSM_BACKEND_DAI_INT_BT_SCO_RX,
8743 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008745 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
8746 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308747 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
8748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008749 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
8750 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308751 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
8752 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05308753 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
8754 MSM_BACKEND_DAI_INT_BT_SCO_RX,
8755 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
8756 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308757};
8758
8759static const struct snd_kcontrol_new int_bt_a2dp_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008760 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8761 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308762 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8763 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008764 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8765 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308766 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8767 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008768 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8769 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308770 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8771 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008772 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8773 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308774 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8775 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008776 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8777 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308778 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008780 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8781 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308782 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008784 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8785 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308786 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008788 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8789 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308790 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008792 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8793 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308794 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8795 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008796 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8797 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308798 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8799 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008800 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8801 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308802 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008804 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8805 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308806 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008808 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8809 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308810 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008812 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8813 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308814 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008816 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8817 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308818 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8819 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008820 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8821 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308822 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8823 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308824 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8825 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
8826 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8827 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308828};
8829
8830static const struct snd_kcontrol_new int_fm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008831 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8832 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308833 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8834 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008835 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8836 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308837 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008839 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8840 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308841 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008843 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8844 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308845 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008847 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8848 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308849 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008851 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8852 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308853 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008855 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8856 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308857 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008859 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8860 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308861 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008863 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8864 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308865 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8866 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008867 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8868 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308869 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008871 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8872 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308873 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008875 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8876 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308877 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008879 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8880 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308881 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008883 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8884 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308885 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008887 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8888 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308889 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8890 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008891 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8892 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308893 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008895 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
8896 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308897 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
8898 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008899 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
8900 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308901 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
8902 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008903 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
8904 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308905 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
8906 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05308907 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
8908 MSM_BACKEND_DAI_INT_FM_RX,
8909 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
8910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008911 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
8912 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308913 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
8914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008915 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
8916 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05308917 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
8918 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05308919 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
8920 MSM_BACKEND_DAI_INT_FM_RX,
8921 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
8922 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308923};
8924
8925static const struct snd_kcontrol_new afe_pcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008926 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8927 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308928 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008930 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8931 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308932 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8933 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008934 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8935 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308936 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8937 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008938 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8939 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308940 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8941 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008942 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8943 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308944 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008946 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8947 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308948 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008950 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8951 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308952 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008954 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8955 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308956 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8957 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008958 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8959 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308960 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008962 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8963 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308964 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008966 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8967 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308968 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008970 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8971 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308972 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008974 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8975 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308976 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008978 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8979 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308980 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008982 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8983 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308984 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8985 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008986 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8987 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308988 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008990 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
8991 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308992 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
8993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008994 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
8995 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308996 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
8997 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008998 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
8999 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309000 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9001 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309002 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9003 MSM_BACKEND_DAI_AFE_PCM_RX,
9004 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009006 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
9007 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05309008 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9009 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009010 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
9011 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05309012 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9013 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05309014 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
9015 MSM_BACKEND_DAI_AFE_PCM_RX,
9016 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
9017 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309018};
9019
9020static const struct snd_kcontrol_new auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009021 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9022 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309023 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009025 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9026 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309027 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9028 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009029 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9030 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309031 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9032 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009033 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9034 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309035 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9036 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009037 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9038 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309039 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9040 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009041 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9042 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309043 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9044 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009045 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9046 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309047 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9048 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009049 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9050 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309051 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9052 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009053 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9054 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309055 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9056 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009057 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9058 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309059 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9060 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009061 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9062 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309063 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9064 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009065 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9066 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309067 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9068 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009069 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9070 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309071 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9072 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009073 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9074 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309075 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9076 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009077 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9078 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309079 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009081 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9082 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309083 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009085 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
9086 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309087 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009089 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
9090 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309091 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009093 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
9094 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309095 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9096 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009097 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9098 MSM_BACKEND_DAI_AUXPCM_RX,
9099 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9100 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309101 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9102 MSM_BACKEND_DAI_AUXPCM_RX,
9103 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009105 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
9106 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05309107 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9108 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009109 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
9110 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05309111 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9112 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05309113 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
9114 MSM_BACKEND_DAI_AUXPCM_RX,
9115 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
9116 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309117};
9118
9119static const struct snd_kcontrol_new sec_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009120 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9121 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309122 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9123 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009124 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9125 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309126 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9127 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009128 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9129 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309130 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9131 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009132 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9133 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309134 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9135 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009136 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9137 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309138 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9139 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009140 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9141 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309142 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9143 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009144 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9145 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309146 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9147 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009148 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9149 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309150 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9151 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009152 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9153 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309154 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9155 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009156 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9157 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309158 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9159 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009160 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9161 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309162 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009164 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9165 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309166 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9167 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009168 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9169 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309170 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9171 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009172 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9173 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309174 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9175 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009176 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9177 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309178 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9179 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009180 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9181 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309182 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009184 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
9185 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309186 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9187 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009188 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
9189 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309190 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9191 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009192 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
9193 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309194 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9195 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009196 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9197 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
9198 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9199 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309200 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9201 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
9202 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009204 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
9205 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05309206 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9207 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009208 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
9209 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05309210 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9211 msm_routing_put_audio_mixer),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +05309212 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
9213 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
9214 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
9215 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309216};
9217
9218static const struct snd_kcontrol_new tert_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009219 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9220 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309221 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009223 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9224 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309225 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009227 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9228 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309229 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009231 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9232 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309233 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009235 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9236 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309237 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009239 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9240 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309241 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009243 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9244 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309245 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009247 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9248 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309249 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9250 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009251 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9252 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309253 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9254 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009255 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9256 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309257 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9258 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009259 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9260 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309261 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009263 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9264 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309265 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009267 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9268 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309269 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9270 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009271 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9272 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309273 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009275 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9276 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309277 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009279 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9280 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309281 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9282 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309283 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9284 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
9285 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9286 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309287};
9288
9289static const struct snd_kcontrol_new quat_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009290 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9291 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309292 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009294 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9295 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309296 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009298 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9299 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309300 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009302 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9303 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309304 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009306 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9307 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309308 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009310 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9311 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309312 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009314 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9315 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309316 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009318 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9319 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309320 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009322 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9323 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309324 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009326 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9327 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309328 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009330 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9331 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309332 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009334 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9335 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309336 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009338 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9339 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309340 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009342 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9343 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309344 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009346 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9347 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309348 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009350 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9351 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309352 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9353 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309354 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9355 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
9356 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9357 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309358};
9359
Rohit Kumara5077932017-09-10 22:05:05 +05309360static const struct snd_kcontrol_new quin_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009361 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9362 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309363 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009365 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9366 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309367 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009369 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9370 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309371 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009373 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9374 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309375 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009377 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9378 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309379 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009381 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9382 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309383 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009385 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9386 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309387 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009389 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9390 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309391 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009393 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9394 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309395 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009397 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9398 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309399 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009401 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9402 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309403 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009405 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9406 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309407 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009409 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9410 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309411 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9412 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009413 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9414 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309415 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9416 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009417 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9418 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309419 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9420 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009421 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9422 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05309423 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9424 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05309425 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9426 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
9427 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9428 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309429};
Karthikeyan Manic3700752019-03-11 18:33:53 -07009430
9431static const struct snd_kcontrol_new sen_auxpcm_rx_mixer_controls[] = {
9432 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9433 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9434 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9435 msm_routing_put_audio_mixer),
9436 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9437 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9438 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9439 msm_routing_put_audio_mixer),
9440 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9441 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9442 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9443 msm_routing_put_audio_mixer),
9444 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9445 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9446 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9447 msm_routing_put_audio_mixer),
9448 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9449 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9450 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9451 msm_routing_put_audio_mixer),
9452 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9453 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9454 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9455 msm_routing_put_audio_mixer),
9456 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9457 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9458 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9459 msm_routing_put_audio_mixer),
9460 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9461 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9462 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9463 msm_routing_put_audio_mixer),
9464 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9465 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9466 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9467 msm_routing_put_audio_mixer),
9468 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9469 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9470 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9471 msm_routing_put_audio_mixer),
9472 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9473 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9474 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9475 msm_routing_put_audio_mixer),
9476 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9477 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9478 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9479 msm_routing_put_audio_mixer),
9480 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9481 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9482 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9483 msm_routing_put_audio_mixer),
9484 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9485 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9486 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9487 msm_routing_put_audio_mixer),
9488 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9489 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9490 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9491 msm_routing_put_audio_mixer),
9492 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9493 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9494 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9495 msm_routing_put_audio_mixer),
9496 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
9497 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
9498 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
9499 msm_routing_put_audio_mixer),
9500};
9501
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309502static const struct snd_kcontrol_new pri_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009503 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9504 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309505 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009507 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9508 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309509 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009511 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9512 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309513 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009515 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9516 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309517 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009519 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9520 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309521 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009523 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9524 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309525 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009527 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9528 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309529 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009531 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9532 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309533 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009535 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9536 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309537 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009539 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9540 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309541 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009543 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9544 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309545 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009547 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9548 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309549 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009551 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9552 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309553 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9554 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009555 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9556 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309557 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009559 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9560 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309561 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009563 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9564 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309565 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9566 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009567 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9568 MSM_BACKEND_DAI_PRI_TDM_RX_0,
9569 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9570 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009571 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9572 MSM_BACKEND_DAI_PRI_TDM_RX_0,
9573 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9574 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309575};
9576
9577static const struct snd_kcontrol_new pri_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009578 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9579 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309580 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009582 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9583 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309584 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009586 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9587 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309588 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9589 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009590 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9591 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309592 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009594 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9595 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309596 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009598 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9599 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309600 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009602 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9603 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309604 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9605 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009606 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9607 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309608 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009610 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9611 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309612 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9613 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009614 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9615 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309616 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9617 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009618 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9619 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309620 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009622 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9623 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309624 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009626 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9627 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309628 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009630 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9631 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309632 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009634 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9635 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309636 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009638 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9639 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309640 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9641 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009642 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9643 MSM_BACKEND_DAI_PRI_TDM_RX_1,
9644 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9645 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009646 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9647 MSM_BACKEND_DAI_PRI_TDM_RX_1,
9648 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9649 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309650};
9651
9652static const struct snd_kcontrol_new pri_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009653 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9654 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309655 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009657 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9658 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309659 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009661 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9662 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309663 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9664 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009665 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9666 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309667 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9668 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009669 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9670 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309671 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009673 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9674 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309675 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009677 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9678 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309679 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009681 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9682 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309683 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009685 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9686 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309687 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009689 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9690 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309691 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009693 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9694 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309695 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009697 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9698 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309699 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009701 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9702 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309703 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009705 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9706 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309707 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009709 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9710 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309711 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009713 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9714 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309715 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9716 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009717 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9718 MSM_BACKEND_DAI_PRI_TDM_RX_2,
9719 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9720 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009721 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9722 MSM_BACKEND_DAI_PRI_TDM_RX_2,
9723 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9724 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309725};
9726
9727static const struct snd_kcontrol_new pri_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009728 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9729 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309730 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9731 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009732 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9733 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309734 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9735 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009736 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9737 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309738 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9739 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009740 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9741 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309742 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9743 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009744 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9745 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309746 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9747 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009748 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9749 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309750 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9751 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009752 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9753 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309754 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9755 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009756 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9757 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309758 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9759 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009760 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9761 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309762 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9763 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009764 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9765 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309766 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9767 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009768 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9769 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309770 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9771 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009772 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9773 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309774 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9775 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009776 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9777 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309778 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009780 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9781 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309782 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009784 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9785 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309786 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009788 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9789 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309790 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9791 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009792 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9793 MSM_BACKEND_DAI_PRI_TDM_RX_3,
9794 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9795 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009796 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9797 MSM_BACKEND_DAI_PRI_TDM_RX_3,
9798 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9799 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309800};
9801
9802static const struct snd_kcontrol_new pri_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009803 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9804 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309805 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009807 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9808 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309809 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009811 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9812 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309813 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009815 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9816 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309817 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009819 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9820 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309821 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009823 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9824 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309825 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009827 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9828 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309829 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009831 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9832 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309833 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9834 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009835 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9836 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309837 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009839 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9840 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309841 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009843 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9844 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309845 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009847 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9848 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309849 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009851 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9852 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309853 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009855 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9856 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309857 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009859 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9860 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309861 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009863 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9864 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309865 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9866 msm_routing_put_audio_mixer),
9867};
9868
9869static const struct snd_kcontrol_new sec_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009870 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9871 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309872 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009874 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9875 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309876 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009878 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9879 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309880 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009882 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9883 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309884 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009886 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9887 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309888 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009890 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9891 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309892 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009894 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9895 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309896 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009898 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9899 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309900 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009902 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9903 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309904 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9905 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009906 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9907 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309908 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9909 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009910 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9911 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309912 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9913 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009914 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9915 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309916 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9917 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009918 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9919 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309920 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9921 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009922 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9923 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309924 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9925 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009926 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9927 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309928 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009930 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9931 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309932 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9933 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009934 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9935 MSM_BACKEND_DAI_SEC_TDM_RX_0,
9936 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9937 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -07009938 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
9939 MSM_BACKEND_DAI_SEC_TDM_RX_0,
9940 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
9941 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309942};
9943
9944static const struct snd_kcontrol_new sec_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009945 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9946 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309947 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9948 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009949 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9950 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309951 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9952 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009953 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9954 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309955 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9956 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009957 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9958 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309959 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9960 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009961 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9962 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309963 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9964 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009965 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9966 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309967 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009969 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9970 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309971 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9972 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009973 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9974 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309975 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9976 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009977 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9978 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309979 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9980 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009981 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9982 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309983 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9984 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009985 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9986 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309987 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9988 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009989 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9990 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309991 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009993 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9994 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309995 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009997 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9998 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309999 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010001 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10002 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010003 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10004 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010005 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10006 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010007 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10008 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010009 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10010 MSM_BACKEND_DAI_SEC_TDM_RX_1,
10011 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10012 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010013 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10014 MSM_BACKEND_DAI_SEC_TDM_RX_1,
10015 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10016 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010017};
10018
10019static const struct snd_kcontrol_new sec_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010020 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10021 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010022 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010024 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10025 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010026 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010028 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10029 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010030 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010032 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10033 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010034 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010036 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10037 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010038 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010040 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10041 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010042 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10043 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010044 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10045 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010046 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10047 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010048 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10049 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010050 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010052 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10053 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010054 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010056 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10057 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010058 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010060 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10061 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010062 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010064 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10065 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010066 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010068 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10069 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010070 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010072 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10073 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010074 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10075 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010076 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10077 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010078 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010080 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10081 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010082 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10083 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010084 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10085 MSM_BACKEND_DAI_SEC_TDM_RX_2,
10086 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10087 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010088 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10089 MSM_BACKEND_DAI_SEC_TDM_RX_2,
10090 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10091 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010092};
10093
10094static const struct snd_kcontrol_new sec_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010095 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10096 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010097 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010099 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10100 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010101 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010103 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10104 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010105 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010107 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10108 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010109 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10110 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010111 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10112 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010113 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10114 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010115 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10116 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010117 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10118 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010119 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10120 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010121 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10122 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010123 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10124 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010125 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10126 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010127 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10128 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010129 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010131 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10132 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010133 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010135 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10136 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010137 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010139 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10140 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010141 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010143 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10144 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010145 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010147 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10148 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010149 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010151 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10152 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010153 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010155 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10156 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010157 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10158 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010159 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10160 MSM_BACKEND_DAI_SEC_TDM_RX_3,
10161 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10162 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010163 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10164 MSM_BACKEND_DAI_SEC_TDM_RX_3,
10165 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10166 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010167};
10168
10169static const struct snd_kcontrol_new sec_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010170 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10171 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010172 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010174 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10175 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010176 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010178 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10179 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010180 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010182 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10183 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010184 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010186 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10187 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010188 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010190 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10191 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010192 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010194 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10195 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010196 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010198 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10199 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010200 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010202 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10203 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010204 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010206 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10207 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010208 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10209 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010210 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10211 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010212 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10213 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010214 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10215 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010216 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10217 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010218 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10219 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010220 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10221 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010222 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10223 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010224 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010226 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10227 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010228 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010230 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10231 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010232 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10233 msm_routing_put_audio_mixer),
10234};
10235
10236static const struct snd_kcontrol_new tert_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010237 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10238 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010239 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010241 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10242 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010243 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10244 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010245 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10246 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010247 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10248 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010249 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10250 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010251 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10252 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010253 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10254 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010255 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10256 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010257 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10258 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010259 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010261 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10262 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010263 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010265 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10266 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010267 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010269 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10270 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010271 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10272 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010273 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10274 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010275 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10276 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010277 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10278 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010279 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010281 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10282 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010283 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10284 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010285 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10286 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010287 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10288 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010289 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10290 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010291 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10292 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010293 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10294 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010295 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010297 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10298 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010299 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10300 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010301 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10302 MSM_BACKEND_DAI_TERT_TDM_RX_0,
10303 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10304 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010305 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10306 MSM_BACKEND_DAI_TERT_TDM_RX_0,
10307 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10308 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010309};
10310
10311static const struct snd_kcontrol_new tert_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010312 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10313 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010314 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010316 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10317 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010318 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010320 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10321 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010322 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10323 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010324 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10325 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010326 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10327 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010328 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10329 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010330 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10331 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010332 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10333 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010334 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10335 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010336 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10337 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010338 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10339 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010340 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10341 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010342 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10343 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010344 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10345 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010346 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10347 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010348 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10349 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010350 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10351 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010352 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10353 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010354 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10355 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010356 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10357 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010358 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10359 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010360 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10361 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010362 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10363 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010364 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10365 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010366 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10367 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010368 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10369 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010370 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10371 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010372 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10373 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010374 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10375 msm_routing_put_audio_mixer),
10376};
10377
10378static const struct snd_kcontrol_new tert_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010379 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10380 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010381 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010383 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10384 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010385 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010387 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10388 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010389 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010391 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10392 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010393 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010395 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10396 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010397 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010399 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10400 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010401 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010403 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10404 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010405 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010407 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10408 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010409 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010411 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10412 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010413 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10414 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010415 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10416 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010417 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10418 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010419 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10420 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010421 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10422 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010423 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10424 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010425 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10426 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010427 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10428 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010429 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10430 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010431 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10432 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010433 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10434 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010435 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10436 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010437 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10438 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010439 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10440 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010441 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10442 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010443 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10444 MSM_BACKEND_DAI_TERT_TDM_RX_1,
10445 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10446 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010447 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10448 MSM_BACKEND_DAI_TERT_TDM_RX_1,
10449 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10450 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010451};
10452
10453static const struct snd_kcontrol_new tert_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010454 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10455 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010456 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010458 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10459 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010460 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010462 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10463 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010464 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010466 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10467 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010468 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010470 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10471 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010472 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010474 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10475 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010476 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010478 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10479 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010480 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010482 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10483 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010484 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010486 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10487 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010488 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10489 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010490 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10491 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010492 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10493 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010494 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10495 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010496 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10497 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010498 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10499 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010500 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10501 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010502 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10503 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010504 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10505 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010506 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10507 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010508 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10509 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010510 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10511 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010512 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10513 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010514 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10515 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010516 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10517 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010518 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10519 MSM_BACKEND_DAI_TERT_TDM_RX_2,
10520 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10521 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010522 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10523 MSM_BACKEND_DAI_TERT_TDM_RX_2,
10524 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10525 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010526};
10527
10528static const struct snd_kcontrol_new tert_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010529 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10530 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010531 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010533 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10534 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010535 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010537 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10538 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010539 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010541 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10542 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010543 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010545 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10546 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010547 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010549 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10550 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010551 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010553 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10554 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010555 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010557 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10558 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010559 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010561 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10562 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010563 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010565 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10566 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010567 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010569 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10570 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010571 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010573 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10574 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010575 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010577 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10578 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010579 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010581 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10582 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010583 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010585 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10586 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010587 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10588 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010589 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10590 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010591 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10592 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010593 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10594 MSM_BACKEND_DAI_TERT_TDM_RX_3,
10595 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10596 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010597 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10598 MSM_BACKEND_DAI_TERT_TDM_RX_3,
10599 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10600 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010601};
10602
10603static const struct snd_kcontrol_new tert_tdm_rx_4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010604 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10605 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010606 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010608 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10609 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010610 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010612 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10613 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010614 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10615 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010616 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10617 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010618 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10619 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010620 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10621 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010622 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10623 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010624 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10625 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010626 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10627 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010628 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10629 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010630 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10631 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010632 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10633 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010634 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10635 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010636 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10637 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010638 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10639 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010640 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10641 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010642 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10643 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010644 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10645 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010646 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10647 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010648 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10649 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010650 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10651 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010652 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10653 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010654 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10655 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010656 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10657 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010658 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10659 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010660 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10661 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010662 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10663 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010664 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10665 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010666 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10667 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010668 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10669 MSM_BACKEND_DAI_TERT_TDM_RX_4,
10670 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10671 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010672 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10673 MSM_BACKEND_DAI_TERT_TDM_RX_4,
10674 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10675 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010676};
10677
10678static const struct snd_kcontrol_new quat_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010679 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10680 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010681 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010683 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10684 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010685 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010687 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10688 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010689 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10690 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010691 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10692 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010693 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010695 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10696 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010697 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010699 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10700 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010701 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010703 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10704 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010705 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010707 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10708 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010709 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010711 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10712 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010713 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010715 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10716 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010717 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010719 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10720 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010721 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10722 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010723 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10724 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010725 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10726 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010727 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10728 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010729 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010731 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10732 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010733 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10734 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010735 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10736 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010737 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10738 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010739 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10740 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010741 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10742 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010743 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10744 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010745 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10746 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010747 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10748 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
10749 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10750 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010751 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10752 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
10753 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10754 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010755};
10756
10757static const struct snd_kcontrol_new quat_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010758 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10759 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010760 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010762 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10763 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010764 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010766 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10767 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010768 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010770 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10771 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010772 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010774 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10775 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010776 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010778 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10779 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010780 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010782 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10783 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010784 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10785 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010786 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10787 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010788 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010790 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10791 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010792 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010794 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10795 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010796 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010798 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10799 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010800 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010802 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10803 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010804 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010806 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10807 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010808 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010810 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10811 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010812 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10813 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010814 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10815 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010816 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10817 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010818 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10819 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010820 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10821 msm_routing_put_audio_mixer),
10822};
10823
10824static const struct snd_kcontrol_new quat_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010825 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10826 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010827 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010829 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10830 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010831 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010833 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10834 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010835 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010837 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10838 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010839 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010841 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10842 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010843 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010845 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10846 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010847 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010849 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10850 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010851 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010853 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10854 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010855 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010857 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10858 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010859 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010861 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10862 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010863 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010865 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10866 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010867 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10868 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010869 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10870 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010871 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010873 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10874 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010875 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010877 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10878 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010879 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010881 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10882 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010883 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10884 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010885 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10886 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010887 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10888 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010889 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10890 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010891 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10892 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010893 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10894 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
10895 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10896 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010897 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10898 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
10899 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10900 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010901};
10902
10903static const struct snd_kcontrol_new quat_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010904 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10905 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010906 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010908 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10909 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010910 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010912 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10913 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010914 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010916 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10917 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010918 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010920 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
10921 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010922 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010924 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
10925 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010926 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010928 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
10929 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010930 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
10931 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010932 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
10933 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010934 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10935 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010936 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
10937 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010938 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10939 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010940 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
10941 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010942 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010944 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
10945 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010946 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
10947 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010948 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
10949 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010950 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
10951 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010952 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
10953 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010954 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
10955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010956 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
10957 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010958 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
10959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010960 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
10961 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010962 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
10963 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010964 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
10965 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010966 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10967 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010968 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
10969 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010970 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
10971 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070010972 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
10973 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
10974 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
10975 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070010976 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
10977 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
10978 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
10979 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010980};
10981
10982static const struct snd_kcontrol_new quat_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010983 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
10984 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010985 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
10986 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010987 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
10988 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010989 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
10990 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010991 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
10992 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010993 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
10994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010995 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
10996 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010997 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010999 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11000 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011001 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011003 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11004 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011005 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11006 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011007 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11008 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011009 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11010 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011011 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11012 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011013 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11014 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011015 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11016 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011017 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11018 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011019 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11020 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011021 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11022 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011023 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11024 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011025 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11026 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011027 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11028 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011029 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11030 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011031 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11032 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011033 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11034 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011035 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11036 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011037 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11038 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011039 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11040 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011041 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11042 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011043 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11044 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011045 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11046 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011047 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11048 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011049 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11050 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011051 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11052 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
11053 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11054 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070011055 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
11056 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
11057 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
11058 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011059};
11060
Rohit Kumara5077932017-09-10 22:05:05 +053011061static const struct snd_kcontrol_new quin_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011062 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11063 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011064 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11065 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011066 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11067 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011068 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11069 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011070 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11071 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011072 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11073 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011074 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11075 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011076 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11077 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011078 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11079 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011080 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11081 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011082 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11083 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011084 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11085 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011086 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11087 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011088 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11089 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011090 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11091 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011092 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011094 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11095 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011096 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11097 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011098 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11099 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011100 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11101 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011102 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11103 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011104 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11105 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011106 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11107 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011108 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11109 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011110 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11111 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011112 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11113 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011114 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11115 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011116 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011118 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11119 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011120 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011122 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11123 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011124 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011126 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11127 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011128 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11129 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011130 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11131 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
11132 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11133 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070011134 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
11135 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
11136 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
11137 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053011138};
11139
11140static const struct snd_kcontrol_new quin_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011141 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11142 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011143 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011145 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11146 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011147 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011149 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11150 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011151 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011153 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11154 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011155 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011157 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11158 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011159 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011161 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11162 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011163 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011165 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11166 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011167 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011169 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11170 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011171 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011173 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11174 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011175 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011177 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11178 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011179 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011181 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11182 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011183 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011185 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11186 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011187 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011189 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11190 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011191 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011193 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11194 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011195 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011197 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11198 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011199 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011201 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11202 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011203 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11204 msm_routing_put_audio_mixer),
11205};
11206
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053011207static const struct snd_kcontrol_new quin_tdm_tx_1_mixer_controls[] = {
11208 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11209 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11210 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11211 msm_routing_put_audio_mixer),
11212 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11213 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11214 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11215 msm_routing_put_audio_mixer),
11216 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11217 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11218 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11219 msm_routing_put_audio_mixer),
11220 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11221 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11222 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11223 msm_routing_put_audio_mixer),
11224 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11225 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11226 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11227 msm_routing_put_audio_mixer),
11228 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11229 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11230 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11231 msm_routing_put_audio_mixer),
11232 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11233 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11234 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11235 msm_routing_put_audio_mixer),
11236 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11237 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11238 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11239 msm_routing_put_audio_mixer),
11240 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11241 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11242 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11243 msm_routing_put_audio_mixer),
11244 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11245 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11246 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11247 msm_routing_put_audio_mixer),
11248 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11249 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11250 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11251 msm_routing_put_audio_mixer),
11252 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11253 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11254 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11255 msm_routing_put_audio_mixer),
11256 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11257 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11258 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11259 msm_routing_put_audio_mixer),
11260 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11261 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11262 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11263 msm_routing_put_audio_mixer),
11264 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11265 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11266 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11267 msm_routing_put_audio_mixer),
11268 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11269 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11270 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11271 msm_routing_put_audio_mixer),
11272};
11273
Rohit Kumara5077932017-09-10 22:05:05 +053011274static const struct snd_kcontrol_new quin_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011275 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11276 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011277 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011279 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11280 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011281 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011283 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11284 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011285 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11286 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011287 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11288 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011289 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11290 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011291 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11292 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011293 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11294 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011295 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11296 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011297 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011299 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11300 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011301 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11302 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011303 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11304 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011305 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11306 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011307 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11308 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011309 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11310 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011311 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11312 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011313 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11314 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011315 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11316 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011317 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11318 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011319 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11320 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011321 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11322 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011323 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11324 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011325 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11326 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011327 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11328 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011329 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11330 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011331 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11332 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011333 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11334 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011335 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11336 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011337 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11338 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011339 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11340 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011341 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11342 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011343 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11344 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
11345 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11346 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070011347 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
11348 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
11349 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
11350 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053011351};
11352
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053011353static const struct snd_kcontrol_new quin_tdm_tx_2_mixer_controls[] = {
11354 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11355 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11356 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11357 msm_routing_put_audio_mixer),
11358 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11359 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11360 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11361 msm_routing_put_audio_mixer),
11362 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11363 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11364 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11365 msm_routing_put_audio_mixer),
11366 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11367 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11368 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11369 msm_routing_put_audio_mixer),
11370 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11371 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11372 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11373 msm_routing_put_audio_mixer),
11374 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11375 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11376 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11377 msm_routing_put_audio_mixer),
11378 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11379 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11380 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11381 msm_routing_put_audio_mixer),
11382 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11383 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11384 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11385 msm_routing_put_audio_mixer),
11386 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11387 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11388 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11389 msm_routing_put_audio_mixer),
11390 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11391 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11392 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11393 msm_routing_put_audio_mixer),
11394 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11395 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11396 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11397 msm_routing_put_audio_mixer),
11398 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11399 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11400 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11401 msm_routing_put_audio_mixer),
11402 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11403 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11404 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11405 msm_routing_put_audio_mixer),
11406 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11407 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11408 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11409 msm_routing_put_audio_mixer),
11410 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11411 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11412 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11413 msm_routing_put_audio_mixer),
11414 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11415 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11416 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11417 msm_routing_put_audio_mixer),
11418};
11419
Rohit Kumara5077932017-09-10 22:05:05 +053011420static const struct snd_kcontrol_new quin_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011421 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11422 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011423 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11424 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011425 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11426 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011427 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11428 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011429 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11430 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011431 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11432 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011433 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11434 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011435 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11436 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011437 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11438 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011439 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11440 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011441 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11442 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011443 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11444 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011445 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11446 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011447 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11448 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011449 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11450 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011451 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11452 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011453 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11454 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011455 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11456 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011457 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11458 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011459 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11460 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011461 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11462 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011463 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11464 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011465 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11466 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011467 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11468 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011469 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11470 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011471 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011473 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11474 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011475 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011477 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11478 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011479 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011481 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11482 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011483 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011485 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11486 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011487 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11488 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011489 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11490 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
11491 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11492 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070011493 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
11494 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
11495 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
11496 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053011497};
11498
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053011499static const struct snd_kcontrol_new quin_tdm_tx_3_mixer_controls[] = {
11500 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11501 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11502 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11503 msm_routing_put_audio_mixer),
11504 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11505 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11506 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11507 msm_routing_put_audio_mixer),
11508 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11509 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11510 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11511 msm_routing_put_audio_mixer),
11512 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11513 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11514 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11515 msm_routing_put_audio_mixer),
11516 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11517 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11518 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11519 msm_routing_put_audio_mixer),
11520 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11521 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11522 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11523 msm_routing_put_audio_mixer),
11524 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11525 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11526 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11527 msm_routing_put_audio_mixer),
11528 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11529 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11530 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11531 msm_routing_put_audio_mixer),
11532 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11533 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11534 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11535 msm_routing_put_audio_mixer),
11536 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11537 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11538 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11539 msm_routing_put_audio_mixer),
11540 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11541 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11542 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11543 msm_routing_put_audio_mixer),
11544 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11545 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11546 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11547 msm_routing_put_audio_mixer),
11548 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11549 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11550 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11551 msm_routing_put_audio_mixer),
11552 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11553 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11554 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11555 msm_routing_put_audio_mixer),
11556 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11557 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11558 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11559 msm_routing_put_audio_mixer),
11560 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11561 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11562 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11563 msm_routing_put_audio_mixer),
11564};
11565
Rohit Kumara5077932017-09-10 22:05:05 +053011566static const struct snd_kcontrol_new quin_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011567 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11568 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011569 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011571 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11572 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011573 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011575 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11576 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011577 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011579 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11580 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011581 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011583 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11584 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011585 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011587 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11588 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011589 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011591 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11592 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011593 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011595 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11596 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011597 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011599 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11600 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011601 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11602 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011603 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11604 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011605 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011607 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11608 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011609 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011611 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11612 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011613 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011615 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11616 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011617 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011619 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11620 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011621 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11622 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011623 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11624 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011625 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011627 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11628 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011629 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11630 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011631 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11632 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011633 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11634 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011635 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11636 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
11637 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11638 msm_routing_put_audio_mixer),
Derek Chenb097d922019-07-31 17:28:02 -070011639 SOC_DOUBLE_EXT("MultiMedia22", SND_SOC_NOPM,
11640 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
11641 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
11642 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053011643};
11644
Karthikeyan Manic3700752019-03-11 18:33:53 -070011645static const struct snd_kcontrol_new sen_tdm_rx_0_mixer_controls[] = {
11646 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11647 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11648 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11649 msm_routing_put_audio_mixer),
11650 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11651 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11652 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11653 msm_routing_put_audio_mixer),
11654 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11655 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11656 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11657 msm_routing_put_audio_mixer),
11658 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11659 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11660 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11661 msm_routing_put_audio_mixer),
11662 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11663 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11664 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11665 msm_routing_put_audio_mixer),
11666 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11667 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11668 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11669 msm_routing_put_audio_mixer),
11670 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11671 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11672 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11673 msm_routing_put_audio_mixer),
11674 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11675 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11676 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11677 msm_routing_put_audio_mixer),
11678 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11679 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11680 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11681 msm_routing_put_audio_mixer),
11682 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11683 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11684 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11685 msm_routing_put_audio_mixer),
11686 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11687 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11688 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11689 msm_routing_put_audio_mixer),
11690 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11691 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11692 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11693 msm_routing_put_audio_mixer),
11694 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11695 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11696 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11697 msm_routing_put_audio_mixer),
11698 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11699 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11700 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11701 msm_routing_put_audio_mixer),
11702 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11703 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11704 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11705 msm_routing_put_audio_mixer),
11706 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11707 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11708 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11709 msm_routing_put_audio_mixer),
11710 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11711 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11712 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11713 msm_routing_put_audio_mixer),
11714 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11715 MSM_BACKEND_DAI_SEN_TDM_RX_0,
11716 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11717 msm_routing_put_audio_mixer),
11718};
11719
11720static const struct snd_kcontrol_new sen_tdm_tx_0_mixer_controls[] = {
11721 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11722 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11723 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11724 msm_routing_put_audio_mixer),
11725 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11726 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11727 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11728 msm_routing_put_audio_mixer),
11729 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11730 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11731 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11732 msm_routing_put_audio_mixer),
11733 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11734 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11735 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11736 msm_routing_put_audio_mixer),
11737 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11738 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11739 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11740 msm_routing_put_audio_mixer),
11741 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11742 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11743 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11744 msm_routing_put_audio_mixer),
11745 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11746 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11747 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11748 msm_routing_put_audio_mixer),
11749 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11750 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11751 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11752 msm_routing_put_audio_mixer),
11753 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11754 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11755 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11756 msm_routing_put_audio_mixer),
11757 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11758 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11759 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11760 msm_routing_put_audio_mixer),
11761 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11762 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11763 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11764 msm_routing_put_audio_mixer),
11765 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11766 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11767 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11768 msm_routing_put_audio_mixer),
11769 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11770 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11771 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11772 msm_routing_put_audio_mixer),
11773 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11774 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11775 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11776 msm_routing_put_audio_mixer),
11777 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11778 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11779 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11780 msm_routing_put_audio_mixer),
11781 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11782 MSM_BACKEND_DAI_SEN_TDM_TX_0,
11783 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11784 msm_routing_put_audio_mixer),
11785};
11786
11787static const struct snd_kcontrol_new sen_tdm_rx_1_mixer_controls[] = {
11788 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11789 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11790 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11791 msm_routing_put_audio_mixer),
11792 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11793 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11794 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11795 msm_routing_put_audio_mixer),
11796 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11797 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11798 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11799 msm_routing_put_audio_mixer),
11800 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11801 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11802 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11803 msm_routing_put_audio_mixer),
11804 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11805 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11806 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11807 msm_routing_put_audio_mixer),
11808 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11809 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11810 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11811 msm_routing_put_audio_mixer),
11812 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11813 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11814 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11815 msm_routing_put_audio_mixer),
11816 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11817 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11818 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11819 msm_routing_put_audio_mixer),
11820 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11821 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11822 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11823 msm_routing_put_audio_mixer),
11824 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11825 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11826 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11827 msm_routing_put_audio_mixer),
11828 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11829 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11830 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11831 msm_routing_put_audio_mixer),
11832 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11833 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11834 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11835 msm_routing_put_audio_mixer),
11836 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11837 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11838 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11839 msm_routing_put_audio_mixer),
11840 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11841 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11842 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11843 msm_routing_put_audio_mixer),
11844 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11845 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11846 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11847 msm_routing_put_audio_mixer),
11848 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11849 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11850 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11851 msm_routing_put_audio_mixer),
11852 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11853 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11854 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11855 msm_routing_put_audio_mixer),
11856 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11857 MSM_BACKEND_DAI_SEN_TDM_RX_1,
11858 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11859 msm_routing_put_audio_mixer),
11860};
11861
11862static const struct snd_kcontrol_new sen_tdm_rx_2_mixer_controls[] = {
11863 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11864 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11865 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11866 msm_routing_put_audio_mixer),
11867 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11868 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11869 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11870 msm_routing_put_audio_mixer),
11871 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11872 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11873 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11874 msm_routing_put_audio_mixer),
11875 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11876 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11877 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11878 msm_routing_put_audio_mixer),
11879 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11880 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11881 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11882 msm_routing_put_audio_mixer),
11883 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11884 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11885 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11886 msm_routing_put_audio_mixer),
11887 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11888 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11889 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11890 msm_routing_put_audio_mixer),
11891 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11892 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11893 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11894 msm_routing_put_audio_mixer),
11895 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11896 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11897 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11898 msm_routing_put_audio_mixer),
11899 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11900 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11901 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11902 msm_routing_put_audio_mixer),
11903 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11904 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11905 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11906 msm_routing_put_audio_mixer),
11907 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11908 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11909 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11910 msm_routing_put_audio_mixer),
11911 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11912 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11913 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11914 msm_routing_put_audio_mixer),
11915 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11916 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11917 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11918 msm_routing_put_audio_mixer),
11919 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11920 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11921 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11922 msm_routing_put_audio_mixer),
11923 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11924 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11925 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
11926 msm_routing_put_audio_mixer),
11927 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
11928 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11929 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11930 msm_routing_put_audio_mixer),
11931 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
11932 MSM_BACKEND_DAI_SEN_TDM_RX_2,
11933 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11934 msm_routing_put_audio_mixer),
11935};
11936
11937static const struct snd_kcontrol_new sen_tdm_rx_3_mixer_controls[] = {
11938 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
11939 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11940 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
11941 msm_routing_put_audio_mixer),
11942 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
11943 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11944 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
11945 msm_routing_put_audio_mixer),
11946 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
11947 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11948 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
11949 msm_routing_put_audio_mixer),
11950 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
11951 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11952 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
11953 msm_routing_put_audio_mixer),
11954 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
11955 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11956 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
11957 msm_routing_put_audio_mixer),
11958 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
11959 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11960 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
11961 msm_routing_put_audio_mixer),
11962 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
11963 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11964 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
11965 msm_routing_put_audio_mixer),
11966 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
11967 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11968 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
11969 msm_routing_put_audio_mixer),
11970 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
11971 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11972 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11973 msm_routing_put_audio_mixer),
11974 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
11975 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11976 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11977 msm_routing_put_audio_mixer),
11978 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
11979 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11980 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
11981 msm_routing_put_audio_mixer),
11982 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
11983 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11984 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
11985 msm_routing_put_audio_mixer),
11986 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
11987 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11988 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
11989 msm_routing_put_audio_mixer),
11990 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
11991 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11992 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
11993 msm_routing_put_audio_mixer),
11994 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
11995 MSM_BACKEND_DAI_SEN_TDM_RX_3,
11996 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
11997 msm_routing_put_audio_mixer),
11998 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
11999 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12000 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
12001 msm_routing_put_audio_mixer),
12002 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
12003 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12004 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
12005 msm_routing_put_audio_mixer),
12006 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
12007 MSM_BACKEND_DAI_SEN_TDM_RX_3,
12008 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
12009 msm_routing_put_audio_mixer),
12010};
12011
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012012static const struct snd_kcontrol_new mmul1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012013 SOC_DOUBLE_EXT("PRI_TX", SND_SOC_NOPM,
12014 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012015 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012017 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
12018 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012019 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012021 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12022 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012023 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012025 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12026 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012027 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12028 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012029 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12030 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012031 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12032 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012033 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12034 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012035 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12036 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012037 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12038 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012039 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12040 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012041 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12042 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012043 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12044 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012045 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12046 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012047 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12048 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012049 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12050 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12051 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12052 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012053 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12054 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012055 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12056 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012057 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12058 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012059 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12060 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012061 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
12062 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012063 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12064 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012065 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
12066 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012067 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12068 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012069 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
12070 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053012071 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12072 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012073 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
12074 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
12075 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12076 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012077 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12078 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012079 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012081 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12082 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012083 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012085 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12086 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012087 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012089 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12090 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012091 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012093 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12094 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012095 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012097 SOC_DOUBLE_EXT("SLIM_4_TX", SND_SOC_NOPM,
12098 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012099 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12100 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012101 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
12102 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012103 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012105 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
12106 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012107 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12108 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012109 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
12110 MSM_BACKEND_DAI_SENARY_MI2S_TX,
12111 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12112 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012113 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12114 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012115 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12116 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012117 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12118 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012119 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012121 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12122 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012123 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12124 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012125 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12126 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012127 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012129 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12130 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012131 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12132 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012133 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12134 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012135 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12136 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012137 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12138 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012139 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12140 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012141 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12142 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012143 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012145 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12146 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012147 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012149 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12150 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012151 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012153 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12154 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012155 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012157 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12158 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012159 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012161 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12162 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012163 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012165 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12166 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012167 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012169 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12170 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012171 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012173 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12174 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012175 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012177 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12178 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012179 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012181 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12182 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012183 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012185 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12186 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012187 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012189 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12190 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012191 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12192 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012193 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12194 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12195 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12196 msm_routing_put_audio_mixer),
12197 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12198 MSM_BACKEND_DAI_SEN_TDM_TX_1,
12199 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12200 msm_routing_put_audio_mixer),
12201 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
12202 MSM_BACKEND_DAI_SEN_TDM_TX_2,
12203 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12204 msm_routing_put_audio_mixer),
12205 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
12206 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12207 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012209 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
12210 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012211 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012213 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
12214 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012215 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012217 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
12218 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012219 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12220 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012221 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12222 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12223 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12224 msm_routing_put_audio_mixer),
12225 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12226 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12227 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12228 msm_routing_put_audio_mixer),
12229 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12230 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12231 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12232 msm_routing_put_audio_mixer),
12233 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12234 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12235 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12236 msm_routing_put_audio_mixer),
12237 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12238 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12239 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12240 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012241 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12242 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12243 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12244 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012245 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12246 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12247 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12248 msm_routing_put_audio_mixer),
12249 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12250 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12251 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12252 msm_routing_put_audio_mixer),
12253 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12254 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12255 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12256 msm_routing_put_audio_mixer),
12257 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12258 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12259 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12260 msm_routing_put_audio_mixer),
12261 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12262 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12263 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12264 msm_routing_put_audio_mixer),
12265 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12266 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12267 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12268 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012269 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12270 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12271 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12272 msm_routing_put_audio_mixer),
12273 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12274 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12275 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12276 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053012277 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
12278 MSM_BACKEND_DAI_SLIMBUS_9_TX,
12279 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12280 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012281 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12282 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12283 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
12284 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012285};
12286
12287static const struct snd_kcontrol_new mmul2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012288 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12289 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012290 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12291 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012292 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
12293 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012294 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12295 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012296 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12297 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012298 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012300 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12301 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012302 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012304 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12305 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012306 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12307 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012308 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12309 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012310 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12311 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012312 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12313 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012314 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012316 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12317 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012318 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012320 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12321 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012322 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12323 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012324 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
12325 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012326 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12327 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012328 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12329 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012330 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12331 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012332 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
12333 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012334 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12335 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012336 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
12337 MSM_BACKEND_DAI_SENARY_MI2S_TX,
12338 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12339 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012340 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12341 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012342 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12343 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012344 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12345 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012346 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12347 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012348 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12349 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012350 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12351 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012352 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12353 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012354 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12355 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012356 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12357 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012358 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12359 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012360 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12361 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012362 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12363 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012364 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12365 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012366 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12367 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012368 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12369 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012370 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12371 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012372 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12373 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012374 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12375 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012376 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12377 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012378 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12379 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012380 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12381 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012382 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12383 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012384 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12385 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012386 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12387 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012388 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12389 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012390 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12391 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012392 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12393 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012394 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12395 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012396 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12397 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012398 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12399 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012400 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12401 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012402 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12403 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012404 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12405 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012406 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12407 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012408 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12409 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012410 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12411 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012412 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12413 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012414 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12415 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012416 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12417 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012418 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12419 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012420 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12421 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12422 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12423 msm_routing_put_audio_mixer),
12424 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12425 MSM_BACKEND_DAI_SEN_TDM_TX_1,
12426 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12427 msm_routing_put_audio_mixer),
12428 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
12429 MSM_BACKEND_DAI_SEN_TDM_TX_2,
12430 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12431 msm_routing_put_audio_mixer),
12432 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
12433 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12434 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12435 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012436 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
12437 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012438 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12439 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012440 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
12441 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012442 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12443 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012444 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12445 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12446 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12447 msm_routing_put_audio_mixer),
12448 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12449 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12450 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12451 msm_routing_put_audio_mixer),
12452 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12453 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12454 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12455 msm_routing_put_audio_mixer),
12456 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12457 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12458 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12459 msm_routing_put_audio_mixer),
12460 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12461 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12462 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12463 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012464 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12465 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12466 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12467 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012468 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12469 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12470 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12471 msm_routing_put_audio_mixer),
12472 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12473 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12474 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12475 msm_routing_put_audio_mixer),
12476 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12477 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12478 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12479 msm_routing_put_audio_mixer),
12480 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12481 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12482 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12483 msm_routing_put_audio_mixer),
12484 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12485 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12486 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12487 msm_routing_put_audio_mixer),
12488 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12489 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12490 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12491 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012492 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12493 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12494 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12495 msm_routing_put_audio_mixer),
12496 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12497 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12498 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12499 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053012500 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
12501 MSM_BACKEND_DAI_SLIMBUS_9_TX,
12502 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12503 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012504 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12505 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12506 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12507 msm_routing_put_audio_mixer),
Asish Bhattacharyaf4d24122019-07-30 12:39:15 +053012508 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
12509 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
12510 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
12511 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012512};
12513
12514static const struct snd_kcontrol_new mmul3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012515 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12516 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012517 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12518 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012519 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12520 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12521 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012523 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12524 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012525 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012527 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
12528 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012529 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012531 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12532 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012533 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012535 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12536 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012537 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012539 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
12540 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012541 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012543 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
12544 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012545 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012547 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
12548 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012549 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012551 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
12552 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012553 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12554 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012555 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
12556 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053012557 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12558 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012559 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX", SND_SOC_NOPM,
12560 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
12561 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012563 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12564 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012565 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012567 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12568 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012569 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012571 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12572 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012573 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012575 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12576 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012577 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012579 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12580 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012581 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012583 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12584 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012585 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012587 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12588 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012589 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012591 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12592 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012593 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012595 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12596 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012597 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012599 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12600 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012601 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12602 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012603 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12604 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012605 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012607 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12608 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012609 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012611 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12612 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012613 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012615 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12616 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012617 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012619 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12620 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012621 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12622 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012623 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12624 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012625 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012627 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12628 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012629 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12630 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012631 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12632 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012633 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12634 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012635 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12636 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012637 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012639 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12640 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012641 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012643 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12644 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012645 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012647 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12648 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012649 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012651 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12652 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012653 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012655 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12656 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012657 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12658 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012659 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12660 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12661 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12662 msm_routing_put_audio_mixer),
12663 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12664 MSM_BACKEND_DAI_SEN_TDM_TX_1,
12665 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12666 msm_routing_put_audio_mixer),
12667 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
12668 MSM_BACKEND_DAI_SEN_TDM_TX_2,
12669 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12670 msm_routing_put_audio_mixer),
12671 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
12672 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12673 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12674 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012675 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12676 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12677 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12678 msm_routing_put_audio_mixer),
12679 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12680 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12681 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12682 msm_routing_put_audio_mixer),
12683 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12684 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12685 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12686 msm_routing_put_audio_mixer),
12687 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12688 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12689 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12690 msm_routing_put_audio_mixer),
12691 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12692 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12693 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12694 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012695 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12696 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12697 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12698 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012699 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12700 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12701 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12702 msm_routing_put_audio_mixer),
12703 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12704 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12705 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12706 msm_routing_put_audio_mixer),
12707 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12708 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12709 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12710 msm_routing_put_audio_mixer),
12711 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12712 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12713 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12714 msm_routing_put_audio_mixer),
12715 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12716 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12717 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12718 msm_routing_put_audio_mixer),
12719 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12720 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12721 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12722 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012723 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12724 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12725 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12726 msm_routing_put_audio_mixer),
12727 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12728 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12729 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12730 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012731 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12732 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12733 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
12734 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012735};
12736
12737static const struct snd_kcontrol_new mmul4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012738 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12739 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012740 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12741 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012742 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12743 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12744 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012746 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12747 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012748 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012750 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12751 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012752 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012754 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12755 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012756 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012758 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12759 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012760 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012762 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12763 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012764 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012766 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12767 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012768 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012770 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12771 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012772 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012774 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
12775 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012776 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012778 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
12779 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012780 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012782 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
12783 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012784 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12785 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012786 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
12787 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012788 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012790 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12791 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012792 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012794 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12795 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012796 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012798 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12799 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012800 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012802 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12803 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012804 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012806 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12807 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012808 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012810 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12811 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012812 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12813 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012814 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12815 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012816 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12817 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012818 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12819 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012820 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12821 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012822 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12823 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012824 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12825 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012826 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12827 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012828 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12829 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012830 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12831 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012832 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12833 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012834 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12835 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012836 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12837 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012838 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12839 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012840 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12841 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012842 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12843 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012844 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12845 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012846 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12847 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012848 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12849 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012850 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
12851 MSM_BACKEND_DAI_SEN_TDM_TX_0,
12852 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12853 msm_routing_put_audio_mixer),
12854 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
12855 MSM_BACKEND_DAI_SEN_TDM_TX_1,
12856 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12857 msm_routing_put_audio_mixer),
12858 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
12859 MSM_BACKEND_DAI_SEN_TDM_TX_2,
12860 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12861 msm_routing_put_audio_mixer),
12862 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
12863 MSM_BACKEND_DAI_SEN_TDM_TX_3,
12864 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12865 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012866 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12867 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012868 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12869 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012870 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12871 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012872 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012874 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
12875 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012876 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012878 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12879 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012880 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012882 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12883 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012884 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012886 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
12887 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012888 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12889 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012890 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12891 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12892 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12893 msm_routing_put_audio_mixer),
12894 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12895 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12896 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12897 msm_routing_put_audio_mixer),
12898 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12899 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12900 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12901 msm_routing_put_audio_mixer),
12902 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12903 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12904 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12905 msm_routing_put_audio_mixer),
12906 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12907 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12908 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12909 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080012910 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
12911 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
12912 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12913 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012914 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12915 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12916 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12917 msm_routing_put_audio_mixer),
12918 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12919 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12920 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12921 msm_routing_put_audio_mixer),
12922 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12923 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12924 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12925 msm_routing_put_audio_mixer),
12926 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12927 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12928 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12929 msm_routing_put_audio_mixer),
12930 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12931 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12932 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12933 msm_routing_put_audio_mixer),
12934 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12935 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12936 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12937 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012938 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12939 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12940 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12941 msm_routing_put_audio_mixer),
12942 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12943 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12944 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12945 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053012946 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
12947 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
12948 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
12949 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012950};
12951
12952static const struct snd_kcontrol_new mmul5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012953 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12954 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012955 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12956 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053012957 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12958 MSM_BACKEND_DAI_SLIMBUS_1_TX,
12959 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12960 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012961 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12962 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012963 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12964 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012965 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
12966 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012967 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012969 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12970 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012971 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12972 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012973 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12974 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012975 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12976 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012977 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12978 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012979 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12980 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012981 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
12982 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012983 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12984 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012985 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
12986 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012987 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12988 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012989 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
12990 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012991 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012993 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
12994 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053012995 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
12996 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070012997 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX", SND_SOC_NOPM,
12998 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
12999 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013001 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13002 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013003 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13004 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013005 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13006 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013007 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013009 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
13010 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013011 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013013 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13014 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013015 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013017 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
13018 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013019 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013021 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
13022 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013023 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013025 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13026 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013027 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13028 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013029 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13030 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013031 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13032 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013033 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
13034 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013035 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13036 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013037 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
13038 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013039 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13040 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013041 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
13042 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013043 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13044 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013045 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
13046 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013047 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13048 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013049 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13050 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013051 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13052 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013053 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13054 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013055 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13056 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013057 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13058 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013059 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13060 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013061 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13062 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013063 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13064 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013065 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13066 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013067 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13068 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013069 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13070 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013071 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13072 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013073 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13074 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013075 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13076 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013077 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13078 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013079 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013081 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13082 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013083 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013085 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13086 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013087 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013089 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13090 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013091 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013093 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13094 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013095 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13096 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013097 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
13098 MSM_BACKEND_DAI_SEN_TDM_TX_0,
13099 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13100 msm_routing_put_audio_mixer),
13101 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
13102 MSM_BACKEND_DAI_SEN_TDM_TX_1,
13103 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13104 msm_routing_put_audio_mixer),
13105 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
13106 MSM_BACKEND_DAI_SEN_TDM_TX_2,
13107 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13108 msm_routing_put_audio_mixer),
13109 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
13110 MSM_BACKEND_DAI_SEN_TDM_TX_3,
13111 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13112 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013113 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13114 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013115 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13116 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013117 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13118 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013119 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13120 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013121 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13122 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013123 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13124 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013125 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13126 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013127 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13128 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013129 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
13130 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013131 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13132 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013133 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13134 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13135 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13136 msm_routing_put_audio_mixer),
13137 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13138 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13139 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13140 msm_routing_put_audio_mixer),
13141 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13142 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13143 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13144 msm_routing_put_audio_mixer),
13145 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13146 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13147 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13148 msm_routing_put_audio_mixer),
13149 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13150 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13151 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13152 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013153 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13154 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13155 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13156 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013157 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13158 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13159 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13160 msm_routing_put_audio_mixer),
13161 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13162 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13163 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13164 msm_routing_put_audio_mixer),
13165 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13166 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13167 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13168 msm_routing_put_audio_mixer),
13169 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13170 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13171 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13172 msm_routing_put_audio_mixer),
13173 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13174 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13175 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13176 msm_routing_put_audio_mixer),
13177 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13178 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13179 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13180 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013181 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13182 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13183 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13184 msm_routing_put_audio_mixer),
13185 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13186 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13187 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13188 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013189 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13190 MSM_BACKEND_DAI_SLIMBUS_9_TX,
13191 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13192 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013193 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13194 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13195 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
13196 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013197};
13198
13199static const struct snd_kcontrol_new mmul6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013200 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13201 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013202 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13203 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013204 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13205 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013206 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13207 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013208 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13209 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13210 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13211 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013212 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13213 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013214 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13215 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013216 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13217 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013218 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13219 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013220 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13221 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013222 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13223 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013224 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
13225 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013226 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13227 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013228 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13229 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013230 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13231 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013232 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13233 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013234 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13235 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013236 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13237 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013238 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13239 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013240 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
13241 MSM_BACKEND_DAI_SENARY_MI2S_TX,
13242 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13243 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013244 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13245 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013246 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13247 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013248 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13249 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013250 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13251 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013252 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13253 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013254 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13255 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013256 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13257 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013258 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13259 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013260 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
13261 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013262 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013264 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
13265 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013266 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013268 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13269 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013270 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13271 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013272 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13273 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013274 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13275 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013276 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
13277 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013278 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13279 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013280 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
13281 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013282 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013284 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
13285 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013286 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013288 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
13289 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013290 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13291 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013292 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13293 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013294 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13295 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013296 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13297 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013298 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013300 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13301 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013302 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013304 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13305 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013306 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13307 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013308 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13309 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013310 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13311 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013312 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13313 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013314 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013316 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13317 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013318 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013320 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13321 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013322 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13323 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013324 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13325 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013326 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13327 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013328 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13329 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013330 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13331 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013332 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13333 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013334 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13335 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013336 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13337 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013338 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13339 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013340 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
13341 MSM_BACKEND_DAI_SEN_TDM_TX_0,
13342 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13343 msm_routing_put_audio_mixer),
13344 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
13345 MSM_BACKEND_DAI_SEN_TDM_TX_1,
13346 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13347 msm_routing_put_audio_mixer),
13348 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
13349 MSM_BACKEND_DAI_SEN_TDM_TX_2,
13350 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13351 msm_routing_put_audio_mixer),
13352 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
13353 MSM_BACKEND_DAI_SEN_TDM_TX_3,
13354 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13355 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013356 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
13357 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013358 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13359 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013360 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13361 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13362 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13363 msm_routing_put_audio_mixer),
13364 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13365 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13366 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13367 msm_routing_put_audio_mixer),
13368 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13369 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13370 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13371 msm_routing_put_audio_mixer),
13372 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13373 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13374 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13375 msm_routing_put_audio_mixer),
13376 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13377 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13378 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13379 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013380 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13381 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13382 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13383 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013384 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13385 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13386 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13387 msm_routing_put_audio_mixer),
13388 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13389 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13390 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13391 msm_routing_put_audio_mixer),
13392 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13393 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13394 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13395 msm_routing_put_audio_mixer),
13396 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13397 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13398 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13399 msm_routing_put_audio_mixer),
13400 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13401 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13402 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13403 msm_routing_put_audio_mixer),
13404 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13405 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13406 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13407 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013408 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13409 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13410 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13411 msm_routing_put_audio_mixer),
13412 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13413 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13414 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13415 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013416 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13417 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13418 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
13419 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013420};
13421
13422static const struct snd_kcontrol_new mmul8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013423 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13424 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013425 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13426 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013427 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13428 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13429 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13430 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013431 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13432 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013433 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13434 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013435 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13436 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013437 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13438 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013439 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13440 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013441 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13442 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013443 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
13444 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013445 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13446 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013447 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13448 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013449 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13450 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013451 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13452 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013453 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13454 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013455 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13456 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013457 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13458 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013459 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13460 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013461 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13462 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013463 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13464 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013465 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13466 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013467 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
13468 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013469 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13470 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013471 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
13472 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013473 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13474 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013475 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
13476 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013477 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13478 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013479 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
13480 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013481 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013483 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
13484 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013485 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013487 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13488 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013489 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13490 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013491 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13492 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013493 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013495 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
13496 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013497 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013499 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
13500 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013501 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013503 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
13504 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013505 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013507 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
13508 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013509 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013511 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13512 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013513 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013515 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13516 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013517 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013519 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13520 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013521 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013523 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13524 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013525 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013527 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13528 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013529 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013531 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13532 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013533 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013535 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13536 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013537 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013539 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13540 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013541 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013543 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13544 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013545 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013547 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13548 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013549 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013551 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13552 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013553 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13554 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013555 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13556 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013557 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13558 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013559 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
13560 MSM_BACKEND_DAI_SEN_TDM_TX_0,
13561 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13562 msm_routing_put_audio_mixer),
13563 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
13564 MSM_BACKEND_DAI_SEN_TDM_TX_1,
13565 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13566 msm_routing_put_audio_mixer),
13567 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
13568 MSM_BACKEND_DAI_SEN_TDM_TX_2,
13569 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13570 msm_routing_put_audio_mixer),
13571 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
13572 MSM_BACKEND_DAI_SEN_TDM_TX_3,
13573 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013575 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13576 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013577 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013579 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
13580 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013581 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13582 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013583 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13584 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13585 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13586 msm_routing_put_audio_mixer),
13587 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13588 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13589 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13590 msm_routing_put_audio_mixer),
13591 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13592 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13593 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13594 msm_routing_put_audio_mixer),
13595 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13596 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13597 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13598 msm_routing_put_audio_mixer),
13599 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13600 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13601 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13602 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013603 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13604 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13605 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13606 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013607 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13608 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13609 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13610 msm_routing_put_audio_mixer),
13611 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13612 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13613 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13614 msm_routing_put_audio_mixer),
13615 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13616 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13617 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, 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_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13622 msm_routing_put_audio_mixer),
13623 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13624 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13625 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13626 msm_routing_put_audio_mixer),
13627 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13628 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13629 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13630 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013631 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13632 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13633 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13634 msm_routing_put_audio_mixer),
13635 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13636 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13637 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13638 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013639 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13640 MSM_BACKEND_DAI_SLIMBUS_9_TX,
13641 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13642 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013643 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13644 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13645 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
13646 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013647};
13648
Asish Bhattacharya34504582017-08-08 12:55:01 +053013649static const struct snd_kcontrol_new mmul16_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013650 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13651 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013652 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13653 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013654 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13655 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13656 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013658 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13659 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013660 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013662 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13663 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013664 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13665 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013666 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13667 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013668 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013670 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
13671 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013672 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013674 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13675 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013676 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013678 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13679 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013680 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013682 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13683 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013684 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013686 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13687 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013688 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013690 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13691 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013692 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013694 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
13695 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013696 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013698 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
13699 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013700 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013702 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
13703 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013704 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13705 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013706 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
13707 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013708 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13709 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013710 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
13711 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013712 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013714 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13715 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013716 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013718 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13719 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013720 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013722 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
13723 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013724 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013726 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
13727 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013728 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13729 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013730 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
13731 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013732 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013734 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
13735 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013736 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013738 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13739 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013740 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013742 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13743 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013744 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013746 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13747 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013748 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013750 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13751 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013752 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013754 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13755 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013756 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013758 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13759 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013760 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013762 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13763 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013764 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013766 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13767 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013768 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013770 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13771 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013772 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013774 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
13775 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013776 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013778 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13779 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013780 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013782 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
13783 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013784 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13785 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013786 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
13787 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013788 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013790 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
13791 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053013792 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13793 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013794 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13795 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13796 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13797 msm_routing_put_audio_mixer),
13798 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13799 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13800 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13801 msm_routing_put_audio_mixer),
13802 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13803 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13804 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13805 msm_routing_put_audio_mixer),
13806 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13807 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13808 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13809 msm_routing_put_audio_mixer),
13810 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13811 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13812 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13813 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013814 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13815 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13816 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13817 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013818 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13819 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13820 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13821 msm_routing_get_audio_mixer,
13822 msm_routing_put_audio_mixer),
13823 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13824 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13825 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13826 msm_routing_get_audio_mixer,
13827 msm_routing_put_audio_mixer),
13828 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13829 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
13830 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13831 msm_routing_get_audio_mixer,
13832 msm_routing_put_audio_mixer),
13833 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13834 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
13835 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13836 msm_routing_get_audio_mixer,
13837 msm_routing_put_audio_mixer),
13838 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13839 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
13840 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13841 msm_routing_get_audio_mixer,
13842 msm_routing_put_audio_mixer),
13843 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13844 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
13845 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
13846 msm_routing_get_audio_mixer,
13847 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020013848 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
13849 MSM_BACKEND_DAI_PRI_SPDIF_TX,
13850 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13851 msm_routing_put_audio_mixer),
13852 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
13853 MSM_BACKEND_DAI_SEC_SPDIF_TX,
13854 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13855 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013856 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13857 MSM_BACKEND_DAI_SLIMBUS_9_TX,
13858 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13859 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053013860 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
13861 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
13862 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
13863 msm_routing_put_audio_mixer),
Asish Bhattacharya34504582017-08-08 12:55:01 +053013864};
13865
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013866static const struct snd_kcontrol_new mmul9_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013867 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13868 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013869 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13870 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053013871 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13872 MSM_BACKEND_DAI_SLIMBUS_1_TX,
13873 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013875 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13876 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013877 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013879 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13880 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013881 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013883 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13884 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013885 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013887 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13888 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013889 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13890 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013891 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
13892 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013893 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013895 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
13896 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013897 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13898 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013899 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
13900 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013901 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13902 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013903 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13904 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013905 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13906 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013907 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13908 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013909 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013911 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13912 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013913 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013915 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13916 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013917 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13918 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013919 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13920 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013921 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13922 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013923 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13924 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013925 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13926 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013927 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13928 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013929 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13930 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013931 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13932 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013933 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13934 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013935 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13936 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013937 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13938 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013939 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13940 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013941 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13942 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013943 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13944 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013945 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13946 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013947 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13948 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013949 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13950 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070013951 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
13952 MSM_BACKEND_DAI_SEN_TDM_TX_0,
13953 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13954 msm_routing_put_audio_mixer),
13955 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
13956 MSM_BACKEND_DAI_SEN_TDM_TX_1,
13957 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13958 msm_routing_put_audio_mixer),
13959 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
13960 MSM_BACKEND_DAI_SEN_TDM_TX_2,
13961 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13962 msm_routing_put_audio_mixer),
13963 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
13964 MSM_BACKEND_DAI_SEN_TDM_TX_3,
13965 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13966 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013967 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
13968 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
13969 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13970 msm_routing_put_audio_mixer),
13971 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
13972 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
13973 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13974 msm_routing_put_audio_mixer),
13975 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
13976 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
13977 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13978 msm_routing_put_audio_mixer),
13979 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13980 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
13981 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13982 msm_routing_put_audio_mixer),
13983 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13984 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
13985 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13986 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080013987 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
13988 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
13989 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13990 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013991 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13992 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
13993 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13994 msm_routing_put_audio_mixer),
13995 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13996 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
13997 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
13998 msm_routing_put_audio_mixer),
13999 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14000 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14001 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14002 msm_routing_put_audio_mixer),
14003 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14004 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14005 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14006 msm_routing_put_audio_mixer),
14007 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14008 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14009 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14010 msm_routing_put_audio_mixer),
14011 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14012 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14013 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14014 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014015 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14016 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14017 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14018 msm_routing_put_audio_mixer),
14019 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14020 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14021 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14022 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014023 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14024 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14025 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
14026 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014027};
14028
Laxminath Kasam38070be2017-08-17 18:21:59 +053014029static const struct snd_kcontrol_new mmul10_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014030 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14031 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014032 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14033 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014034 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14035 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14036 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14037 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014038 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14039 MSM_BACKEND_DAI_PRI_MI2S_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014040 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14041 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014042 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14043 MSM_BACKEND_DAI_INT_FM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014044 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14045 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014046 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14047 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014048 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14049 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014050 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14051 MSM_BACKEND_DAI_AFE_PCM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014052 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14053 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014054 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
14055 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014056 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14057 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014058 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
14059 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014060 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14061 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014062 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
14063 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014064 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14065 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014066 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
14067 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Vikram Panduranga72863152017-09-06 15:47:35 -070014068 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14069 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014070 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14071 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014072 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14073 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014074 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14075 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014076 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14077 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014078 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14079 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014080 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14081 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014082 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14083 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014084 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14085 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014086 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14087 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014088 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14089 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014090 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14091 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014092 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014094 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14095 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014096 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14097 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014098 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14099 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014100 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14101 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014102 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
14103 MSM_BACKEND_DAI_USB_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053014104 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14105 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014106 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14107 MSM_BACKEND_DAI_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070014108 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14109 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014110 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
14111 MSM_BACKEND_DAI_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070014112 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14113 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014114 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
14115 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070014116 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014118 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
14119 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070014120 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014122 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
14123 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070014124 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014126 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14127 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070014128 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014130 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
14131 MSM_BACKEND_DAI_INT2_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070014132 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014134 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14135 MSM_BACKEND_DAI_INT3_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070014136 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14137 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014138 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14139 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14140 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14141 msm_routing_put_audio_mixer),
14142 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14143 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14144 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14145 msm_routing_put_audio_mixer),
14146 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14147 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14148 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14149 msm_routing_put_audio_mixer),
14150 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14151 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14152 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14153 msm_routing_put_audio_mixer),
14154 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14155 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14156 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14157 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014158 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14159 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14160 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14161 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014162 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14163 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14164 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
14165 msm_routing_get_audio_mixer,
14166 msm_routing_put_audio_mixer),
14167 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14168 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14169 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
14170 msm_routing_get_audio_mixer,
14171 msm_routing_put_audio_mixer),
14172 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14173 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14174 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
14175 msm_routing_get_audio_mixer,
14176 msm_routing_put_audio_mixer),
14177 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14178 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14179 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
14180 msm_routing_get_audio_mixer,
14181 msm_routing_put_audio_mixer),
14182 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14183 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14184 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
14185 msm_routing_get_audio_mixer,
14186 msm_routing_put_audio_mixer),
14187 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14188 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14189 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
14190 msm_routing_get_audio_mixer,
14191 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014192 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14193 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14194 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14195 msm_routing_put_audio_mixer),
14196 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14197 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14198 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14199 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053014200 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
14201 MSM_BACKEND_DAI_SLIMBUS_9_TX,
14202 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14203 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014204 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14205 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14206 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
14207 msm_routing_put_audio_mixer),
Laxminath Kasam38070be2017-08-17 18:21:59 +053014208};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014209static const struct snd_kcontrol_new mmul17_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014210 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14211 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014212 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14213 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014214 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14215 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14216 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14217 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014218 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14219 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014220 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14221 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014222 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14223 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014224 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014226 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14227 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014228 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014230 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14231 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014232 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14233 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014234 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14235 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014236 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14237 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014238 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
14239 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014240 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14241 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014242 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
14243 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014244 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14245 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080014246 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14247 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14248 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14249 msm_routing_put_audio_mixer),
14250 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14251 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
14252 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14253 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014254 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14255 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14256 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14257 msm_routing_put_audio_mixer),
14258 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14259 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14260 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14261 msm_routing_put_audio_mixer),
14262 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14263 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14264 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14265 msm_routing_put_audio_mixer),
14266 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14267 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14268 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14269 msm_routing_put_audio_mixer),
14270 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14271 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14272 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14273 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014274 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14275 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14276 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14277 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014278 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14279 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14280 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
14281 msm_routing_get_audio_mixer,
14282 msm_routing_put_audio_mixer),
14283 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14284 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14285 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
14286 msm_routing_get_audio_mixer,
14287 msm_routing_put_audio_mixer),
14288 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14289 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14290 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
14291 msm_routing_get_audio_mixer,
14292 msm_routing_put_audio_mixer),
14293 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14294 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14295 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
14296 msm_routing_get_audio_mixer,
14297 msm_routing_put_audio_mixer),
14298 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14299 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14300 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
14301 msm_routing_get_audio_mixer,
14302 msm_routing_put_audio_mixer),
14303 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14304 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14305 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
14306 msm_routing_get_audio_mixer,
14307 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014308 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14309 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14310 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14311 msm_routing_put_audio_mixer),
14312 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14313 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14314 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14315 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014316 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14317 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14318 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
14319 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014320};
14321
14322static const struct snd_kcontrol_new mmul18_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014323 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14324 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014325 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14326 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014327 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14328 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14329 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14330 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014331 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14332 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014333 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14334 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014335 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14336 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014337 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14338 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014339 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14340 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
14341 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14342 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080014343 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14344 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14345 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014347 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14348 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014349 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014351 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14352 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014353 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014355 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14356 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014357 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14358 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014359 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14360 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014361 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014363 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
14364 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014365 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014367 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
14368 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014369 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14370 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014371 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14372 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14373 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14374 msm_routing_put_audio_mixer),
14375 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14376 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14377 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14378 msm_routing_put_audio_mixer),
14379 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14380 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14381 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14382 msm_routing_put_audio_mixer),
14383 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14384 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14385 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14386 msm_routing_put_audio_mixer),
14387 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14388 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14389 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14390 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014391 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14392 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14393 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14394 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014395 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14396 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14397 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14398 msm_routing_get_audio_mixer,
14399 msm_routing_put_audio_mixer),
14400 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14401 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14402 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14403 msm_routing_get_audio_mixer,
14404 msm_routing_put_audio_mixer),
14405 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14406 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14407 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14408 msm_routing_get_audio_mixer,
14409 msm_routing_put_audio_mixer),
14410 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14411 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14412 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14413 msm_routing_get_audio_mixer,
14414 msm_routing_put_audio_mixer),
14415 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14416 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14417 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14418 msm_routing_get_audio_mixer,
14419 msm_routing_put_audio_mixer),
14420 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14421 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14422 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
14423 msm_routing_get_audio_mixer,
14424 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014425 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14426 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14427 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14428 msm_routing_put_audio_mixer),
14429 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14430 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14431 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14432 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014433 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14434 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14435 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
14436 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014437};
14438
14439static const struct snd_kcontrol_new mmul19_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014440 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14441 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014442 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14443 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014444 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14445 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14446 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014448 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14449 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014450 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014452 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
14453 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053014454 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014456 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14457 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014458 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14459 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014460 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14461 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014462 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14463 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014464 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14465 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014466 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014468 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
14469 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014470 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014472 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
14473 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014474 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14475 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010014476 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14477 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
14478 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14479 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080014480 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14481 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
14482 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14483 msm_routing_put_audio_mixer),
14484 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14485 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
14486 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14487 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014488 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14489 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14490 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14491 msm_routing_put_audio_mixer),
14492 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14493 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14494 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14495 msm_routing_put_audio_mixer),
14496 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14497 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14498 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14499 msm_routing_put_audio_mixer),
14500 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14501 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14502 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14503 msm_routing_put_audio_mixer),
14504 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14505 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14506 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14507 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014508 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14509 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14510 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14511 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014512 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14513 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14514 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14515 msm_routing_get_audio_mixer,
14516 msm_routing_put_audio_mixer),
14517 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14518 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14519 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14520 msm_routing_get_audio_mixer,
14521 msm_routing_put_audio_mixer),
14522 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14523 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14524 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14525 msm_routing_get_audio_mixer,
14526 msm_routing_put_audio_mixer),
14527 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14528 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14529 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14530 msm_routing_get_audio_mixer,
14531 msm_routing_put_audio_mixer),
14532 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14533 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14534 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14535 msm_routing_get_audio_mixer,
14536 msm_routing_put_audio_mixer),
14537 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14538 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14539 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
14540 msm_routing_get_audio_mixer,
14541 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014542 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14543 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14544 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14545 msm_routing_put_audio_mixer),
14546 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14547 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14548 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14549 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014550 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14551 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14552 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
14553 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014554};
14555
14556static const struct snd_kcontrol_new mmul20_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014557 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14558 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014559 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014561 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14562 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014563 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014565 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14566 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014567 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014569 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14570 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014571 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014573 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14574 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053014575 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14576 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014577 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
14578 MSM_BACKEND_DAI_SENARY_MI2S_TX,
14579 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014581 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14582 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014583 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014585 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14586 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014587 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14588 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014589 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14590 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014591 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14592 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014593 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14594 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014595 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14596 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014597 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14598 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014599 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14600 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014601 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14602 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014603 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14604 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014605 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14606 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014607 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14608 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014609 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14610 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014611 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14612 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014613 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14614 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014615 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14616 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014617 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14618 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014619 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14620 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014621 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14622 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014623 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14624 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014625 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14626 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014627 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14628 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014629 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14630 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014631 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014633 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14634 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014635 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014637 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14638 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014639 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014641 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14642 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014643 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014645 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14646 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014647 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014649 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14650 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014651 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014653 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14654 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014655 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014657 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14658 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014659 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14660 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014661 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
14662 MSM_BACKEND_DAI_SEN_TDM_TX_0,
14663 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14664 msm_routing_put_audio_mixer),
14665 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
14666 MSM_BACKEND_DAI_SEN_TDM_TX_1,
14667 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14668 msm_routing_put_audio_mixer),
14669 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
14670 MSM_BACKEND_DAI_SEN_TDM_TX_2,
14671 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14672 msm_routing_put_audio_mixer),
14673 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
14674 MSM_BACKEND_DAI_SEN_TDM_TX_3,
14675 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14676 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014677 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
14678 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14679 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14680 msm_routing_put_audio_mixer),
14681 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
14682 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14683 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14684 msm_routing_put_audio_mixer),
14685 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
14686 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14687 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14688 msm_routing_put_audio_mixer),
14689 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
14690 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14691 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14692 msm_routing_put_audio_mixer),
14693 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
14694 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14695 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14696 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014697 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14698 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14699 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14700 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014701 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
14702 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14703 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14704 msm_routing_put_audio_mixer),
14705 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
14706 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14707 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14708 msm_routing_put_audio_mixer),
14709 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
14710 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14711 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14712 msm_routing_put_audio_mixer),
14713 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
14714 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14715 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14716 msm_routing_put_audio_mixer),
14717 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
14718 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14719 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14720 msm_routing_put_audio_mixer),
14721 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
14722 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14723 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14724 msm_routing_put_audio_mixer),
14725 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14726 MSM_BACKEND_DAI_PRI_SPDIF_TX,
14727 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14728 msm_routing_put_audio_mixer),
14729 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14730 MSM_BACKEND_DAI_SEC_SPDIF_TX,
14731 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14732 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014733 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14734 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14735 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
14736 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070014737};
14738
14739static const struct snd_kcontrol_new mmul21_mixer_controls[] = {
14740 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14741 MSM_BACKEND_DAI_AUXPCM_TX,
14742 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14743 msm_routing_put_audio_mixer),
14744 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14745 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
14746 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14747 msm_routing_put_audio_mixer),
14748 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14749 MSM_BACKEND_DAI_PRI_TDM_TX_0,
14750 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14751 msm_routing_put_audio_mixer),
14752 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14753 MSM_BACKEND_DAI_PRI_TDM_TX_1,
14754 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14755 msm_routing_put_audio_mixer),
14756 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14757 MSM_BACKEND_DAI_PRI_TDM_TX_2,
14758 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14759 msm_routing_put_audio_mixer),
14760 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14761 MSM_BACKEND_DAI_PRI_TDM_TX_3,
14762 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14763 msm_routing_put_audio_mixer),
14764 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14765 MSM_BACKEND_DAI_SEC_TDM_TX_0,
14766 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14767 msm_routing_put_audio_mixer),
14768 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14769 MSM_BACKEND_DAI_SEC_TDM_TX_1,
14770 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14771 msm_routing_put_audio_mixer),
14772 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14773 MSM_BACKEND_DAI_SEC_TDM_TX_2,
14774 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14775 msm_routing_put_audio_mixer),
14776 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14777 MSM_BACKEND_DAI_SEC_TDM_TX_3,
14778 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14779 msm_routing_put_audio_mixer),
14780 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14781 MSM_BACKEND_DAI_TERT_TDM_TX_0,
14782 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14783 msm_routing_put_audio_mixer),
14784 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14785 MSM_BACKEND_DAI_TERT_TDM_TX_1,
14786 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14787 msm_routing_put_audio_mixer),
14788 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14789 MSM_BACKEND_DAI_TERT_TDM_TX_2,
14790 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14791 msm_routing_put_audio_mixer),
14792 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14793 MSM_BACKEND_DAI_TERT_TDM_TX_3,
14794 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14795 msm_routing_put_audio_mixer),
14796 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14797 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
14798 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14799 msm_routing_put_audio_mixer),
14800 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14801 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
14802 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14803 msm_routing_put_audio_mixer),
14804 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14805 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
14806 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14807 msm_routing_put_audio_mixer),
14808 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14809 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
14810 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14811 msm_routing_put_audio_mixer),
14812 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14813 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
14814 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14815 msm_routing_put_audio_mixer),
14816 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14817 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
14818 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14819 msm_routing_put_audio_mixer),
14820 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14821 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
14822 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14823 msm_routing_put_audio_mixer),
14824 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14825 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
14826 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14827 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070014828 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
14829 MSM_BACKEND_DAI_SEN_TDM_TX_0,
14830 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14831 msm_routing_put_audio_mixer),
14832 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
14833 MSM_BACKEND_DAI_SEN_TDM_TX_1,
14834 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14835 msm_routing_put_audio_mixer),
14836 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
14837 MSM_BACKEND_DAI_SEN_TDM_TX_2,
14838 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14839 msm_routing_put_audio_mixer),
14840 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
14841 MSM_BACKEND_DAI_SEN_TDM_TX_3,
14842 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14843 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014844 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014845 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
14846 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014847 msm_routing_put_audio_mixer),
14848 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014849 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
14850 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014851 msm_routing_put_audio_mixer),
14852 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014853 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
14854 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014855 msm_routing_put_audio_mixer),
14856 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014857 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
14858 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014859 msm_routing_put_audio_mixer),
14860 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014861 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
14862 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053014863 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080014864 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
14865 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
14866 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14867 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014868 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014869 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
14870 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14871 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014872 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014873 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
14874 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14875 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014876 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014877 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
14878 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14879 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014880 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014881 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
14882 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14883 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014884 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014885 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
14886 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14887 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053014888 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014889 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
14890 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14891 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020014892 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
14893 MSM_BACKEND_DAI_PRI_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014894 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020014895 msm_routing_put_audio_mixer),
14896 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
14897 MSM_BACKEND_DAI_SEC_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053014898 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020014899 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053014900 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
14901 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
14902 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
14903 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014904};
14905
Derek Chenb097d922019-07-31 17:28:02 -070014906static const struct snd_kcontrol_new mmul22_mixer_controls[] = {
14907 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14908 MSM_BACKEND_DAI_PRI_TDM_TX_0,
14909 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14910 msm_routing_put_audio_mixer),
14911 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14912 MSM_BACKEND_DAI_PRI_TDM_TX_1,
14913 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14914 msm_routing_put_audio_mixer),
14915 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14916 MSM_BACKEND_DAI_PRI_TDM_TX_2,
14917 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14918 msm_routing_put_audio_mixer),
14919 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14920 MSM_BACKEND_DAI_PRI_TDM_TX_3,
14921 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14922 msm_routing_put_audio_mixer),
14923 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14924 MSM_BACKEND_DAI_SEC_TDM_TX_0,
14925 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14926 msm_routing_put_audio_mixer),
14927 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14928 MSM_BACKEND_DAI_SEC_TDM_TX_1,
14929 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14930 msm_routing_put_audio_mixer),
14931 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14932 MSM_BACKEND_DAI_SEC_TDM_TX_2,
14933 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14934 msm_routing_put_audio_mixer),
14935 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14936 MSM_BACKEND_DAI_SEC_TDM_TX_3,
14937 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14938 msm_routing_put_audio_mixer),
14939 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14940 MSM_BACKEND_DAI_TERT_TDM_TX_0,
14941 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14942 msm_routing_put_audio_mixer),
14943 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14944 MSM_BACKEND_DAI_TERT_TDM_TX_1,
14945 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14946 msm_routing_put_audio_mixer),
14947 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14948 MSM_BACKEND_DAI_TERT_TDM_TX_2,
14949 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14950 msm_routing_put_audio_mixer),
14951 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14952 MSM_BACKEND_DAI_TERT_TDM_TX_3,
14953 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14954 msm_routing_put_audio_mixer),
14955 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14956 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
14957 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14958 msm_routing_put_audio_mixer),
14959 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14960 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
14961 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14962 msm_routing_put_audio_mixer),
14963 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14964 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
14965 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14966 msm_routing_put_audio_mixer),
14967 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14968 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
14969 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14970 msm_routing_put_audio_mixer),
14971 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14972 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
14973 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14974 msm_routing_put_audio_mixer),
14975 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14976 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
14977 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14978 msm_routing_put_audio_mixer),
14979 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14980 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
14981 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14982 msm_routing_put_audio_mixer),
14983 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14984 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
14985 MSM_FRONTEND_DAI_MULTIMEDIA22, 1, 0, msm_routing_get_audio_mixer,
14986 msm_routing_put_audio_mixer),
14987};
14988
Surendar Karkac1cde372018-08-14 18:56:24 +053014989static const struct snd_kcontrol_new mmul27_mixer_controls[] = {
14990 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14991 MSM_BACKEND_DAI_SLIMBUS_0_TX,
14992 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14993 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053014994 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14995 MSM_BACKEND_DAI_SLIMBUS_1_TX,
14996 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
14997 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053014998 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
14999 MSM_BACKEND_DAI_SLIMBUS_6_TX,
15000 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15001 msm_routing_put_audio_mixer),
15002 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
15003 MSM_BACKEND_DAI_SLIMBUS_7_TX,
15004 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15005 msm_routing_put_audio_mixer),
15006 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15007 MSM_BACKEND_DAI_PRI_MI2S_TX,
15008 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15009 msm_routing_put_audio_mixer),
15010 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15011 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
15012 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15013 msm_routing_put_audio_mixer),
15014 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15015 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
15016 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15017 msm_routing_put_audio_mixer),
15018 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15019 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
15020 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15021 msm_routing_put_audio_mixer),
15022 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
15023 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
15024 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15025 msm_routing_put_audio_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070015026 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
15027 MSM_BACKEND_DAI_SENARY_MI2S_TX,
15028 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15029 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053015030 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
15031 MSM_BACKEND_DAI_PRI_SPDIF_TX,
15032 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15033 msm_routing_put_audio_mixer),
15034 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
15035 MSM_BACKEND_DAI_SEC_SPDIF_TX,
15036 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15037 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053015038 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
15039 MSM_BACKEND_DAI_SLIMBUS_9_TX,
15040 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15041 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053015042 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
15043 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
15044 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
15045 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053015046};
15047
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015048static const struct snd_kcontrol_new mmul28_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015049 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15050 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015051 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15052 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053015053 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
15054 MSM_BACKEND_DAI_SLIMBUS_1_TX,
15055 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15056 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015057 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15058 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015059 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15060 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015061 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
15062 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015063 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15064 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015065 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15066 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015067 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15068 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015069 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15070 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015071 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15072 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015073 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15074 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015075 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15076 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015077 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
15078 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015079 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015081 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
15082 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015083 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15084 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010015085 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15086 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
15087 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15088 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080015089 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15090 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
15091 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15092 msm_routing_put_audio_mixer),
15093 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15094 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053015095 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
Meng Wang5c4bab72018-04-25 10:40:01 +080015096 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053015097 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
15098 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
15099 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15100 msm_routing_put_audio_mixer),
15101 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
15102 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
15103 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15104 msm_routing_put_audio_mixer),
15105 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
15106 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
15107 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15108 msm_routing_put_audio_mixer),
15109 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
15110 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
15111 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15112 msm_routing_put_audio_mixer),
15113 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
15114 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
15115 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15116 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080015117 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
15118 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
15119 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15120 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053015121 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
15122 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
15123 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
15124 msm_routing_get_audio_mixer,
15125 msm_routing_put_audio_mixer),
15126 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
15127 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
15128 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
15129 msm_routing_get_audio_mixer,
15130 msm_routing_put_audio_mixer),
15131 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
15132 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
15133 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
15134 msm_routing_get_audio_mixer,
15135 msm_routing_put_audio_mixer),
15136 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
15137 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
15138 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
15139 msm_routing_get_audio_mixer,
15140 msm_routing_put_audio_mixer),
15141 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
15142 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
15143 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
15144 msm_routing_get_audio_mixer,
15145 msm_routing_put_audio_mixer),
15146 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
15147 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
15148 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
15149 msm_routing_get_audio_mixer,
15150 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020015151 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
15152 MSM_BACKEND_DAI_PRI_SPDIF_TX,
15153 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15154 msm_routing_put_audio_mixer),
15155 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
15156 MSM_BACKEND_DAI_SEC_SPDIF_TX,
15157 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15158 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053015159 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
15160 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
15161 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
15162 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015163};
15164
15165static const struct snd_kcontrol_new mmul29_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015166 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15167 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015168 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15169 msm_routing_put_audio_mixer),
Samyak Jain810e42a2019-01-07 17:53:34 +053015170 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
15171 MSM_BACKEND_DAI_SLIMBUS_1_TX,
15172 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015174 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15175 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015176 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015178 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
15179 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015180 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015182 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15183 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015184 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015186 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15187 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015188 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015190 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15191 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015192 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015194 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
15195 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015196 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015198 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
15199 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015200 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15201 msm_routing_put_audio_mixer),
Ralf Herza70027d2018-11-26 14:56:34 +010015202 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15203 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
15204 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15205 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080015206 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15207 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
15208 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15209 msm_routing_put_audio_mixer),
15210 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15211 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
15212 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15213 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053015214 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
15215 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
15216 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15217 msm_routing_put_audio_mixer),
15218 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
15219 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
15220 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15221 msm_routing_put_audio_mixer),
15222 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
15223 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
15224 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15225 msm_routing_put_audio_mixer),
15226 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
15227 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
15228 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15229 msm_routing_put_audio_mixer),
15230 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
15231 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
15232 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15233 msm_routing_put_audio_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080015234 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
15235 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
15236 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15237 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053015238 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
15239 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
15240 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15241 msm_routing_get_audio_mixer,
15242 msm_routing_put_audio_mixer),
15243 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
15244 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
15245 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15246 msm_routing_get_audio_mixer,
15247 msm_routing_put_audio_mixer),
15248 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
15249 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
15250 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15251 msm_routing_get_audio_mixer,
15252 msm_routing_put_audio_mixer),
15253 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
15254 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
15255 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15256 msm_routing_get_audio_mixer,
15257 msm_routing_put_audio_mixer),
15258 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
15259 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
15260 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15261 msm_routing_get_audio_mixer,
15262 msm_routing_put_audio_mixer),
15263 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
15264 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
15265 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
15266 msm_routing_get_audio_mixer,
15267 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020015268 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
15269 MSM_BACKEND_DAI_PRI_SPDIF_TX,
15270 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15271 msm_routing_put_audio_mixer),
15272 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
15273 MSM_BACKEND_DAI_SEC_SPDIF_TX,
15274 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15275 msm_routing_put_audio_mixer),
Surendar Karkad47fda42018-05-20 19:21:10 +053015276 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
15277 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
15278 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
15279 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053015280};
15281
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053015282static const struct snd_kcontrol_new mmul30_mixer_controls[] = {
15283 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15284 MSM_BACKEND_DAI_SLIMBUS_0_TX,
15285 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15286 msm_routing_put_audio_mixer),
15287 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
15288 MSM_BACKEND_DAI_SLIMBUS_1_TX,
15289 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15290 msm_routing_put_audio_mixer),
15291 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15292 MSM_BACKEND_DAI_PRI_MI2S_TX,
15293 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15294 msm_routing_put_audio_mixer),
15295 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
15296 MSM_BACKEND_DAI_INT3_MI2S_TX,
15297 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15298 msm_routing_put_audio_mixer),
15299 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15300 MSM_BACKEND_DAI_INT_FM_TX,
15301 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15302 msm_routing_put_audio_mixer),
15303 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15304 MSM_BACKEND_DAI_INT_BT_SCO_TX,
15305 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15306 msm_routing_put_audio_mixer),
15307 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15308 MSM_BACKEND_DAI_AFE_PCM_TX,
15309 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15310 msm_routing_put_audio_mixer),
15311 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
15312 MSM_BACKEND_DAI_INCALL_RECORD_RX,
15313 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15314 msm_routing_put_audio_mixer),
15315 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
15316 MSM_BACKEND_DAI_INCALL_RECORD_TX,
15317 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15318 msm_routing_put_audio_mixer),
15319 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15320 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
15321 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15322 msm_routing_put_audio_mixer),
15323 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15324 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
15325 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15326 msm_routing_put_audio_mixer),
15327 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15328 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
15329 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15330 msm_routing_put_audio_mixer),
15331 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
15332 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
15333 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15334 msm_routing_put_audio_mixer),
15335 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
15336 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
15337 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15338 msm_routing_put_audio_mixer),
15339 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
15340 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
15341 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15342 msm_routing_put_audio_mixer),
15343 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
15344 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
15345 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15346 msm_routing_put_audio_mixer),
15347 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
15348 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
15349 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15350 msm_routing_put_audio_mixer),
15351 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
15352 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
15353 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15354 msm_routing_get_audio_mixer,
15355 msm_routing_put_audio_mixer),
15356 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
15357 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
15358 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15359 msm_routing_get_audio_mixer,
15360 msm_routing_put_audio_mixer),
15361 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
15362 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
15363 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15364 msm_routing_get_audio_mixer,
15365 msm_routing_put_audio_mixer),
15366 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
15367 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
15368 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15369 msm_routing_get_audio_mixer,
15370 msm_routing_put_audio_mixer),
15371 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
15372 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
15373 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15374 msm_routing_get_audio_mixer,
15375 msm_routing_put_audio_mixer),
15376 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
15377 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
15378 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
15379 msm_routing_get_audio_mixer,
15380 msm_routing_put_audio_mixer),
15381 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
15382 MSM_BACKEND_DAI_PRI_SPDIF_TX,
15383 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15384 msm_routing_put_audio_mixer),
15385 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
15386 MSM_BACKEND_DAI_SEC_SPDIF_TX,
15387 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15388 msm_routing_put_audio_mixer),
15389 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
15390 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
15391 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
15392 msm_routing_put_audio_mixer),
15393};
15394
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015395static const struct snd_kcontrol_new pri_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015396 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15397 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015398 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15399 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015400 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15401 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015402 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15403 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015404 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15405 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015406 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15407 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015408 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15409 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015410 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15411 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015412 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15413 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015414 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15415 msm_routing_put_voice_mixer),
15416};
15417
15418static const struct snd_kcontrol_new sec_i2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015419 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15420 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015421 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15422 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015423 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15424 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015425 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15426 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015427 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15428 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015429 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15430 msm_routing_put_voice_mixer),
15431};
15432
15433static const struct snd_kcontrol_new sec_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015434 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15435 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015436 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15437 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015438 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15439 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
15440 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15441 msm_routing_put_voice_mixer),
15442 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15443 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
15444 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15445 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015446 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15447 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015448 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15449 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015450 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15451 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015452 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15453 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015454 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15455 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015456 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15457 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015458 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15459 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015460 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15461 msm_routing_put_voice_mixer),
15462};
15463
15464static const struct snd_kcontrol_new slimbus_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015465 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15466 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015467 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15468 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015469 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15470 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015471 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15472 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015473 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15474 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015475 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15476 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015477 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15478 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015479 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15480 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015481 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15482 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015483 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15484 msm_routing_put_voice_mixer),
15485};
15486
15487static const struct snd_kcontrol_new slimbus_6_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015488 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15489MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015490 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15491 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015492 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15493MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015494 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15495 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015496 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15497MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015498 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15499 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015500 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15501MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015502 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15503 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015504 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15505MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015506 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15507 msm_routing_put_voice_mixer),
15508};
15509
15510static const struct snd_kcontrol_new usb_audio_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015511 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15512 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015513 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15514 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015515 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15516 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015517 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15518 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015519 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15520 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015521 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15522 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015523 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15524 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015525 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15526 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015527 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15528 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015529 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15530 msm_routing_put_voice_mixer),
15531};
15532
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015533static const struct snd_kcontrol_new display_port_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015534 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15535MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015536 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15537 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015538 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15539MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015540 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15541 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015542 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15543MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015544 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15545 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015546 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15547MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015548 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15549 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015550 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15551MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080015552 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15553 msm_routing_put_voice_mixer),
15554};
15555
Karthikeyan Mani57550082018-05-03 18:43:58 -070015556static const struct snd_kcontrol_new display_port_rx1_voice_mixer_controls[] = {
15557 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15558 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15559 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15560 msm_routing_put_voice_mixer),
15561 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15562 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15563 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15564 msm_routing_put_voice_mixer),
15565 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15566 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15567 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15568 msm_routing_put_voice_mixer),
15569 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15570 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15571 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15572 msm_routing_put_voice_mixer),
15573 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15574 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
15575 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15576 msm_routing_put_voice_mixer),
15577};
15578
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015579static const struct snd_kcontrol_new bt_sco_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015580 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15581 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015582 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15583 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015584 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15585 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015586 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15587 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015588 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15589 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015590 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15591 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015592 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15593 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015594 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15595 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015596 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15597 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015598 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15599 msm_routing_put_voice_mixer),
15600};
15601
15602static const struct snd_kcontrol_new mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015603 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15604 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015605 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15606 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015607 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15608 MSM_BACKEND_DAI_MI2S_RX,
15609 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15610 msm_routing_put_voice_mixer),
15611 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15612 MSM_BACKEND_DAI_MI2S_RX,
15613 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15614 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015615 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15616 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015617 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15618 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015619 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15620 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015621 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15622 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015623 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15624 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015625 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15626 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015627 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15628 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015629 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15630 msm_routing_put_voice_mixer),
15631};
15632
15633static const struct snd_kcontrol_new pri_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015634 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015635 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015636 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15637 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015638 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15639 MSM_BACKEND_DAI_PRI_MI2S_RX,
15640 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15641 msm_routing_put_voice_mixer),
15642 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15643 MSM_BACKEND_DAI_PRI_MI2S_RX,
15644 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15645 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015646 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015647 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015648 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15649 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015650 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015651 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015652 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15653 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015654 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015655 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015656 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15657 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015658 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
Josh Kirsch9d769302018-04-10 17:25:42 -070015659 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015660 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15661 msm_routing_put_voice_mixer),
15662};
15663
15664static const struct snd_kcontrol_new int0_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015665 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15666MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015667 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15668 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015669 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15670MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015671 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15672 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015673 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15674MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015675 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15676 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015677 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15678MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015679 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15680 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015681 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15682MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015683 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15684 msm_routing_put_voice_mixer),
15685};
15686
15687static const struct snd_kcontrol_new int4_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015688 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15689 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015690 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15691 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015692 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15693 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015694 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15695 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015696 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15697 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015698 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15699 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015700 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15701 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015702 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15703 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015704 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15705 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015706 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15707 msm_routing_put_voice_mixer),
15708};
15709
15710static const struct snd_kcontrol_new tert_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015711 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15712 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015713 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15714 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015715 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15716 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
15717 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15718 msm_routing_put_voice_mixer),
15719 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15720 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
15721 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15722 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015723 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15724 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015725 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15726 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015727 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15728 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015729 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15730 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015731 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15732 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015733 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15734 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015735 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15736 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015737 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15738 msm_routing_put_voice_mixer),
15739};
15740
15741static const struct snd_kcontrol_new quat_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015742 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15743 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015744 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15745 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015746 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15747 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
15748 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_mixer,
15749 msm_routing_put_voice_mixer),
15750 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15751 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
15752 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_mixer,
15753 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015754 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15755 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015756 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15757 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015758 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15759 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015760 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15761 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015762 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15763 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015764 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15765 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015766 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15767 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015768 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15769 msm_routing_put_voice_mixer),
15770};
15771
15772static const struct snd_kcontrol_new quin_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015773 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15774 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015775 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15776 msm_routing_put_voice_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070015777 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
15778 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
15779 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15780 msm_routing_put_voice_stub_mixer),
15781 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
15782 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
15783 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
15784 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015785 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15786 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015787 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15788 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015789 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15790 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015791 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15792 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015793 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15794 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015795 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15796 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015797 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15798 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015799 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15800 msm_routing_put_voice_mixer),
15801};
15802
Karthikeyan Manic3700752019-03-11 18:33:53 -070015803static const struct snd_kcontrol_new sen_mi2s_rx_voice_mixer_controls[] = {
15804 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15805 MSM_BACKEND_DAI_SENARY_MI2S_RX,
15806 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15807 msm_routing_put_voice_mixer),
15808 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15809 MSM_BACKEND_DAI_SENARY_MI2S_RX,
15810 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15811 msm_routing_put_voice_mixer),
15812 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15813 MSM_BACKEND_DAI_SENARY_MI2S_RX,
15814 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15815 msm_routing_put_voice_mixer),
15816 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15817 MSM_BACKEND_DAI_SENARY_MI2S_RX,
15818 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15819 msm_routing_put_voice_mixer),
15820 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15821 MSM_BACKEND_DAI_SENARY_MI2S_RX,
15822 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15823 msm_routing_put_voice_mixer),
15824};
15825
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015826static const struct snd_kcontrol_new afe_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015827 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15828 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015829 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15830 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015831 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15832 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015833 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15834 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015835 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15836 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015837 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15838 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015839 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15840 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015841 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15842 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015843 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15844 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015845 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15846 msm_routing_put_voice_mixer),
15847};
15848
15849static const struct snd_kcontrol_new aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015850 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15851 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015852 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15853 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015854 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15855 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015856 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15857 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015858 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15859 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015860 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15861 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015862 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15863 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015864 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15865 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015866 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15867 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015868 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15869 msm_routing_put_voice_mixer),
15870};
15871
15872static const struct snd_kcontrol_new sec_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015873 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15874MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015875 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15876 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015877 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15878MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015879 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15880 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015881 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15882MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015883 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15884 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015885 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15886MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015887 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15888 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015889 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15890MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015891 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15892 msm_routing_put_voice_mixer),
15893};
15894
15895static const struct snd_kcontrol_new tert_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015896 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15897MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015898 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15899 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015900 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15901MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015902 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15903 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015904 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15905MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015906 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15907 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015908 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15909MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015910 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15911 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015912 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15913MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015914 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15915 msm_routing_put_voice_mixer),
15916};
15917
15918static const struct snd_kcontrol_new quat_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015919 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15920MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015921 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15922 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015923 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15924MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015925 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15926 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015927 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15928MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015929 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15930 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015931 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15932MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015933 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15934 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015935 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15936MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015937 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15938 msm_routing_put_voice_mixer),
15939};
15940
Rohit Kumara5077932017-09-10 22:05:05 +053015941static const struct snd_kcontrol_new quin_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015942 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15943MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015944 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15945 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015946 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15947MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015948 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15949 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015950 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15951MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015952 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15953 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015954 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15955MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015956 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
15957 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015958 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
15959MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015960 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15961 msm_routing_put_voice_mixer),
15962};
15963
Karthikeyan Manic3700752019-03-11 18:33:53 -070015964static const struct snd_kcontrol_new sen_aux_pcm_rx_voice_mixer_controls[] = {
15965 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM, MSM_BACKEND_DAI_SEN_AUXPCM_RX,
15966 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15967 msm_routing_put_voice_mixer),
15968 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM, MSM_BACKEND_DAI_SEN_AUXPCM_RX,
15969 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15970 msm_routing_put_voice_mixer),
15971 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM, MSM_BACKEND_DAI_SEN_AUXPCM_RX,
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_SEN_AUXPCM_RX,
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_SEN_AUXPCM_RX,
15980 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
15981 msm_routing_put_voice_mixer),
15982};
15983
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015984static const struct snd_kcontrol_new hdmi_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015985 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
15986 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015987 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
15988 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015989 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
15990 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015991 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
15992 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015993 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
15994 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015995 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
15996 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015997 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
15998 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015999 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16000 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016001 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16002 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016003 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 slimbus_7_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016008 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16009MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016010 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16011 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016012 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16013MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016014 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16015 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016016 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16017MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016018 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16019 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016020 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16021MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016022 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16023 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016024 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16025MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016026 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 slimbus_8_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016031 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16032 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016033 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16034 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016035 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16036 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016037 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16038 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016039 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16040 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016041 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16042 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016043 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16044 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016045 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16046 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016047 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16048 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016049 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 quat_tdm_rx_2_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016054 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16055 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016056 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16057 msm_routing_put_voice_mixer),
16058};
16059
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053016060static const struct snd_kcontrol_new quin_tdm_rx_2_voice_mixer_controls[] = {
16061 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16062 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
16063 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16064 msm_routing_put_voice_mixer),
16065};
16066
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016067static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_voice_mixer_controls[] = {
16068 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16069 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
16070 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16071 msm_routing_put_voice_mixer),
16072 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16073 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
16074 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16075 msm_routing_put_voice_mixer),
16076 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16077 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
16078 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16079 msm_routing_put_voice_mixer),
16080 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16081 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
16082 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16083 msm_routing_put_voice_mixer),
16084 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16085 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
16086 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16087 msm_routing_put_voice_mixer),
16088};
16089
16090static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_voice_mixer_controls[] = {
16091 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16092 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
16093 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16094 msm_routing_put_voice_mixer),
16095 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16096 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
16097 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16098 msm_routing_put_voice_mixer),
16099 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16100 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
16101 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16102 msm_routing_put_voice_mixer),
16103 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16104 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
16105 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16106 msm_routing_put_voice_mixer),
16107 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16108 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
16109 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16110 msm_routing_put_voice_mixer),
16111};
16112
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016113static const struct snd_kcontrol_new rx_cdc_dma_rx_0_voice_mixer_controls[] = {
16114 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16115 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
16116 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16117 msm_routing_put_voice_mixer),
16118 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16119 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
16120 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16121 msm_routing_put_voice_mixer),
16122 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16123 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
16124 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16125 msm_routing_put_voice_mixer),
16126 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16127 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
16128 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16129 msm_routing_put_voice_mixer),
16130 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16131 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
16132 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16133 msm_routing_put_voice_mixer),
16134};
16135
16136static const struct snd_kcontrol_new rx_cdc_dma_rx_1_voice_mixer_controls[] = {
16137 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16138 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
16139 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16140 msm_routing_put_voice_mixer),
16141 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16142 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
16143 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16144 msm_routing_put_voice_mixer),
16145 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16146 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
16147 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16148 msm_routing_put_voice_mixer),
16149 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16150 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
16151 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16152 msm_routing_put_voice_mixer),
16153 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16154 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
16155 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16156 msm_routing_put_voice_mixer),
16157};
16158
16159static const struct snd_kcontrol_new rx_cdc_dma_rx_2_voice_mixer_controls[] = {
16160 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16161 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
16162 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16163 msm_routing_put_voice_mixer),
16164 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16165 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
16166 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16167 msm_routing_put_voice_mixer),
16168 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16169 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
16170 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16171 msm_routing_put_voice_mixer),
16172 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16173 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
16174 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16175 msm_routing_put_voice_mixer),
16176 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16177 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
16178 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16179 msm_routing_put_voice_mixer),
16180};
16181
16182static const struct snd_kcontrol_new rx_cdc_dma_rx_3_voice_mixer_controls[] = {
16183 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16184 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
16185 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16186 msm_routing_put_voice_mixer),
16187 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16188 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
16189 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16190 msm_routing_put_voice_mixer),
16191 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16192 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
16193 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16194 msm_routing_put_voice_mixer),
16195 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16196 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
16197 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16198 msm_routing_put_voice_mixer),
16199 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16200 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
16201 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16202 msm_routing_put_voice_mixer),
16203};
16204
16205static const struct snd_kcontrol_new rx_cdc_dma_rx_4_voice_mixer_controls[] = {
16206 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16207 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
16208 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16209 msm_routing_put_voice_mixer),
16210 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16211 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
16212 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16213 msm_routing_put_voice_mixer),
16214 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16215 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
16216 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16217 msm_routing_put_voice_mixer),
16218 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16219 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
16220 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16221 msm_routing_put_voice_mixer),
16222 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16223 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
16224 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16225 msm_routing_put_voice_mixer),
16226};
16227
16228static const struct snd_kcontrol_new rx_cdc_dma_rx_5_voice_mixer_controls[] = {
16229 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16230 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
16231 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16232 msm_routing_put_voice_mixer),
16233 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16234 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
16235 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16236 msm_routing_put_voice_mixer),
16237 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16238 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
16239 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16240 msm_routing_put_voice_mixer),
16241 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16242 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
16243 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16244 msm_routing_put_voice_mixer),
16245 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16246 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
16247 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16248 msm_routing_put_voice_mixer),
16249};
16250
16251static const struct snd_kcontrol_new rx_cdc_dma_rx_6_voice_mixer_controls[] = {
16252 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16253 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
16254 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16255 msm_routing_put_voice_mixer),
16256 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16257 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
16258 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16259 msm_routing_put_voice_mixer),
16260 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16261 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
16262 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16263 msm_routing_put_voice_mixer),
16264 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16265 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
16266 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16267 msm_routing_put_voice_mixer),
16268 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16269 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
16270 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16271 msm_routing_put_voice_mixer),
16272};
16273
16274static const struct snd_kcontrol_new rx_cdc_dma_rx_7_voice_mixer_controls[] = {
16275 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16276 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
16277 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16278 msm_routing_put_voice_mixer),
16279 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16280 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
16281 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16282 msm_routing_put_voice_mixer),
16283 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16284 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
16285 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16286 msm_routing_put_voice_mixer),
16287 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16288 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
16289 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16290 msm_routing_put_voice_mixer),
16291 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16292 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
16293 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16294 msm_routing_put_voice_mixer),
16295};
16296
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053016297static const struct snd_kcontrol_new pri_tdm_rx_0_voice_mixer_controls[] = {
16298 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16299 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16300 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16301 msm_routing_put_voice_mixer),
16302 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
16303 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16304 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16305 msm_routing_put_voice_stub_mixer),
16306 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
16307 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16308 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16309 msm_routing_put_voice_stub_mixer),
16310 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
16311 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16312 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
16313 msm_routing_put_voice_mixer),
16314 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16315 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16316 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16317 msm_routing_put_voice_mixer),
16318 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16319 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16320 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16321 msm_routing_put_voice_mixer),
16322 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16323 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16324 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16325 msm_routing_put_voice_mixer),
16326 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16327 MSM_BACKEND_DAI_PRI_TDM_RX_0,
16328 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16329 msm_routing_put_voice_mixer),
16330};
16331
16332static const struct snd_kcontrol_new pri_tdm_rx_1_voice_mixer_controls[] = {
16333 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16334 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16335 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16336 msm_routing_put_voice_mixer),
16337 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
16338 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16339 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16340 msm_routing_put_voice_stub_mixer),
16341 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
16342 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16343 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16344 msm_routing_put_voice_stub_mixer),
16345 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
16346 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16347 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
16348 msm_routing_put_voice_mixer),
16349 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16350 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16351 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16352 msm_routing_put_voice_mixer),
16353 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16354 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16355 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16356 msm_routing_put_voice_mixer),
16357 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16358 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16359 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16360 msm_routing_put_voice_mixer),
16361 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16362 MSM_BACKEND_DAI_PRI_TDM_RX_1,
16363 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16364 msm_routing_put_voice_mixer),
16365};
16366
16367static const struct snd_kcontrol_new pri_tdm_rx_2_voice_mixer_controls[] = {
16368 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16369 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16370 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16371 msm_routing_put_voice_mixer),
16372 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
16373 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16374 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16375 msm_routing_put_voice_stub_mixer),
16376 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
16377 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16378 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16379 msm_routing_put_voice_stub_mixer),
16380 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
16381 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16382 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
16383 msm_routing_put_voice_mixer),
16384 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16385 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16386 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16387 msm_routing_put_voice_mixer),
16388 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16389 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16390 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16391 msm_routing_put_voice_mixer),
16392 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16393 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16394 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16395 msm_routing_put_voice_mixer),
16396 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16397 MSM_BACKEND_DAI_PRI_TDM_RX_2,
16398 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16399 msm_routing_put_voice_mixer),
16400};
16401
16402static const struct snd_kcontrol_new pri_tdm_rx_3_voice_mixer_controls[] = {
16403 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
16404 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16405 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16406 msm_routing_put_voice_mixer),
16407 SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM,
16408 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16409 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16410 msm_routing_put_voice_stub_mixer),
16411 SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM,
16412 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16413 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16414 msm_routing_put_voice_stub_mixer),
16415 SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM,
16416 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16417 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
16418 msm_routing_put_voice_mixer),
16419 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
16420 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16421 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
16422 msm_routing_put_voice_mixer),
16423 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
16424 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16425 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
16426 msm_routing_put_voice_mixer),
16427 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16428 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16429 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16430 msm_routing_put_voice_mixer),
16431 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16432 MSM_BACKEND_DAI_PRI_TDM_RX_3,
16433 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16434 msm_routing_put_voice_mixer),
16435};
16436
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016437static const struct snd_kcontrol_new stub_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016438 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16439 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016440 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16441 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016442 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16443 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016444 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16445 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016446};
16447
16448static const struct snd_kcontrol_new slimbus_1_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016449 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16450 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016451 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16452 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016453 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16454 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016455 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16456 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016457};
16458
16459static const struct snd_kcontrol_new slimbus_3_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016460 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
16461 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016462 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16463 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016464 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
16465 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080016466 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16467 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016468};
16469
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016470static const struct snd_kcontrol_new tx_voicemmode1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016471 SOC_DOUBLE_EXT("PRI_TX_MMode1", SND_SOC_NOPM,
16472 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016473 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16474 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016475 SOC_DOUBLE_EXT("MI2S_TX_MMode1", SND_SOC_NOPM,
16476 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016477 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16478 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016479 SOC_DOUBLE_EXT("SLIM_0_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016480 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16481 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016482 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016483 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16484 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016485 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016486 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
16487 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016488 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016489 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
16490 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016491 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016492 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16493 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016494 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016495 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16496 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016497 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016498 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16499 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016500 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053016501 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16502 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016503 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
16504 MSM_BACKEND_DAI_SEN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16505 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016506 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016507 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
16508 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang93b92622019-07-24 14:45:19 +080016509 SOC_DOUBLE_EXT("SEC_MI2S_TX_MMode1", SND_SOC_NOPM,
16510 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
16511 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016512 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016513 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
16514 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016515 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016516 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
16517 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016518 SOC_DOUBLE_EXT("SLIM_7_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016519 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16520 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016521 SOC_DOUBLE_EXT("SLIM_8_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016522 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
16523 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016524 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode1", SND_SOC_NOPM,
16525 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016526 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
16527 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016528 SOC_DOUBLE_EXT("QUAT_TDM_TX_0_MMode1", SND_SOC_NOPM,
Meng Wang93b92622019-07-24 14:45:19 +080016529 MSM_BACKEND_DAI_QUAT_TDM_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016530 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016531 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
16532 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
16533 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16534 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
16535 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
16536 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016537 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
16538 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
16539 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016540 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
16541 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
16542 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16543 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
16544 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
16545 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16546 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
16547 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
16548 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16549 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode1", SND_SOC_NOPM,
16550 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
16551 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16552 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode1", SND_SOC_NOPM,
16553 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE1,
16554 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16555 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode1", SND_SOC_NOPM,
16556 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE1,
16557 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e349b82018-02-23 16:34:40 +053016558 SOC_DOUBLE_EXT("QUAT_MI2S_TX_MMode1", SND_SOC_NOPM,
16559 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
16560 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16561 SOC_DOUBLE_EXT("QUIN_MI2S_TX_MMode1", SND_SOC_NOPM,
16562 MSM_BACKEND_DAI_QUINARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
16563 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Vignesh Kulothungan1572b9f2019-05-16 14:56:31 -070016564 SOC_DOUBLE_EXT("PRI_TDM_TX_3_MMode1", SND_SOC_NOPM,
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053016565 MSM_BACKEND_DAI_PRI_TDM_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
16566 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016567};
16568
16569static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016570 SOC_DOUBLE_EXT("PRI_TX_MMode2", SND_SOC_NOPM,
16571 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016572 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16573 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016574 SOC_DOUBLE_EXT("MI2S_TX_MMode2", SND_SOC_NOPM,
16575 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016576 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
16577 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016578 SOC_DOUBLE_EXT("SLIM_0_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016579 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16580 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016581 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016582 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16583 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016584 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016585 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
16586 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016587 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016588 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
16589 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016590 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016591 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16592 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016593 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016594 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16595 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016596 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016597 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16598 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016599 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053016600 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16601 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016602 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
16603 MSM_BACKEND_DAI_SEN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16604 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016605 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016606 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
16607 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang93b92622019-07-24 14:45:19 +080016608 SOC_DOUBLE_EXT("SEC_MI2S_TX_MMode2", SND_SOC_NOPM,
16609 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
16610 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016611 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016612 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
16613 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016614 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016615 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
16616 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016617 SOC_DOUBLE_EXT("SLIM_7_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016618 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16619 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016620 SOC_DOUBLE_EXT("SLIM_8_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016621 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16622 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016623 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016624 MSM_BACKEND_DAI_USB_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
16625 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016626 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
16627 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
16628 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16629 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
16630 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
16631 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016632 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
16633 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
16634 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016635 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
16636 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
16637 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16638 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
16639 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
16640 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16641 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
16642 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
16643 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16644 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode2", SND_SOC_NOPM,
16645 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
16646 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16647 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode2", SND_SOC_NOPM,
16648 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE2,
16649 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16650 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode2", SND_SOC_NOPM,
16651 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE2,
16652 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e349b82018-02-23 16:34:40 +053016653 SOC_DOUBLE_EXT("QUAT_MI2S_TX_MMode2", SND_SOC_NOPM,
16654 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
16655 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16656 SOC_DOUBLE_EXT("QUIN_MI2S_TX_MMode2", SND_SOC_NOPM,
16657 MSM_BACKEND_DAI_QUINARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
16658 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Vignesh Kulothungan1572b9f2019-05-16 14:56:31 -070016659 SOC_DOUBLE_EXT("PRI_TDM_TX_3_MMode2", SND_SOC_NOPM,
16660 MSM_BACKEND_DAI_PRI_TDM_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053016661 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016662};
16663
16664static const struct snd_kcontrol_new tx_voip_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016665 SOC_DOUBLE_EXT("PRI_TX_Voip", SND_SOC_NOPM,
16666 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016667 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16668 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016669 SOC_DOUBLE_EXT("MI2S_TX_Voip", SND_SOC_NOPM,
16670 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016671 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16672 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016673 SOC_DOUBLE_EXT("SLIM_0_TX_Voip", SND_SOC_NOPM,
16674 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016675 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16676 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016677 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_Voip", SND_SOC_NOPM,
16678 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016679 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16680 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016681 SOC_DOUBLE_EXT("AFE_PCM_TX_Voip", SND_SOC_NOPM,
16682 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016683 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16684 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016685 SOC_DOUBLE_EXT("AUX_PCM_TX_Voip", SND_SOC_NOPM,
16686 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016687 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16688 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016689 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16690 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016691 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16692 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016693 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16694 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016695 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16696 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016697 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16698 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016699 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16700 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016701 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16702 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053016703 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16704 msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016705 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
16706 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
16707 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16708 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016709 SOC_DOUBLE_EXT("PRI_MI2S_TX_Voip", SND_SOC_NOPM,
16710 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016711 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16712 msm_routing_put_voice_mixer),
Meng Wang93b92622019-07-24 14:45:19 +080016713 SOC_DOUBLE_EXT("SEC_MI2S_TX_Voip", SND_SOC_NOPM,
16714 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
16715 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16716 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016717 SOC_DOUBLE_EXT("TERT_MI2S_TX_Voip", SND_SOC_NOPM,
16718 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016719 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16720 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016721 SOC_DOUBLE_EXT("INT3_MI2S_TX_Voip", SND_SOC_NOPM,
16722 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016723 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16724 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016725 SOC_DOUBLE_EXT("SLIM_7_TX_Voip", SND_SOC_NOPM,
16726 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016727 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16728 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016729 SOC_DOUBLE_EXT("SLIM_8_TX_Voip", SND_SOC_NOPM,
16730 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016731 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16732 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016733 SOC_DOUBLE_EXT("USB_AUDIO_TX_Voip", SND_SOC_NOPM,
16734 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016735 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16736 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016737 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
16738 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
16739 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16740 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
16741 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
16742 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016743 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
16744 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
16745 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016746 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
16747 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
16748 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16749 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
16750 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
16751 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16752 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
16753 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
16754 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16755 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_Voip", SND_SOC_NOPM,
16756 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOIP,
16757 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16758 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_Voip", SND_SOC_NOPM,
16759 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOIP,
16760 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
16761 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_Voip", SND_SOC_NOPM,
16762 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOIP,
16763 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Bala Kishore Patibdc425e2018-06-15 17:38:40 +053016764 SOC_SINGLE_EXT("PRI_TDM_TX_3_Voip", MSM_BACKEND_DAI_PRI_TDM_TX_3,
16765 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
16766 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016767};
16768
16769static const struct snd_kcontrol_new tx_voice_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016770 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
16771 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016772 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16773 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016774 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16775 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016776 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16777 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016778 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
16779 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016780 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16781 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016782 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
16783 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016784 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16785 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016786 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
16787 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016788 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16789 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016790 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16791 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016792 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16793 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016794 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16795 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016796 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16797 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016798 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16799 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016800 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16801 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016802 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16803 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016804 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16805 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016806 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16807 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016808 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16809 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016810 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16811 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016812 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16813 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016814 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
16815 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016816 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16817 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016818 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
16819 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016820 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16821 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016822 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
16823 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053016824 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16825 msm_routing_put_voice_stub_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016826 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
16827 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
16828 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16829 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016830 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16831 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016832 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16833 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016834 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
16835 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016836 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16837 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016838 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16839 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016840 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16841 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016842 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
16843 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016844 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16845 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016846 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16847 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016848 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16849 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016850 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16851 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
16852 1, 0, msm_routing_get_voice_stub_mixer,
16853 msm_routing_put_voice_stub_mixer),
16854 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16855 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
16856 1, 0, msm_routing_get_voice_stub_mixer,
16857 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016858 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16859 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
16860 1, 0, msm_routing_get_voice_stub_mixer,
16861 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016862 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
16863 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
16864 1, 0, msm_routing_get_voice_stub_mixer,
16865 msm_routing_put_voice_stub_mixer),
16866 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
16867 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
16868 1, 0, msm_routing_get_voice_stub_mixer,
16869 msm_routing_put_voice_stub_mixer),
16870 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
16871 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
16872 1, 0, msm_routing_get_voice_stub_mixer,
16873 msm_routing_put_voice_stub_mixer),
16874 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16875 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE_STUB,
16876 1, 0, msm_routing_get_voice_stub_mixer,
16877 msm_routing_put_voice_stub_mixer),
16878 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
16879 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE_STUB,
16880 1, 0, msm_routing_get_voice_stub_mixer,
16881 msm_routing_put_voice_stub_mixer),
16882 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
16883 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE_STUB,
16884 1, 0, msm_routing_get_voice_stub_mixer,
16885 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016886};
16887
16888static const struct snd_kcontrol_new tx_voice2_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016889 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
16890 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016891 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16892 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016893 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
16894 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016895 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16896 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016897 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
16898 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016899 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16900 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016901 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16902 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016903 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16904 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016905 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16906 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016907 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16908 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016909 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
16910 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016911 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16912 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016913 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
16914 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016915 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16916 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016917 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
16918 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053016919 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16920 msm_routing_put_voice_stub_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070016921 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
16922 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
16923 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16924 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016925 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16926 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016927 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16928 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016929 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
16930 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016931 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16932 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016933 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16934 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016935 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16936 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016937 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16938 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016939 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16940 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016941 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16942 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016943 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16944 msm_routing_put_voice_stub_mixer),
Josh Kirsch9d769302018-04-10 17:25:42 -070016945 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16946 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
16947 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16948 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016949 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
16950 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016951 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16952 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016953 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16954 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016955 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16956 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053016957 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16958 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
16959 1, 0, msm_routing_get_voice_stub_mixer,
16960 msm_routing_put_voice_stub_mixer),
16961 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16962 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
16963 1, 0, msm_routing_get_voice_stub_mixer,
16964 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080016965 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
16966 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
16967 1, 0, msm_routing_get_voice_stub_mixer,
16968 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053016969 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
16970 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
16971 1, 0, msm_routing_get_voice_stub_mixer,
16972 msm_routing_put_voice_stub_mixer),
16973 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
16974 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
16975 1, 0, msm_routing_get_voice_stub_mixer,
16976 msm_routing_put_voice_stub_mixer),
16977 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
16978 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
16979 1, 0, msm_routing_get_voice_stub_mixer,
16980 msm_routing_put_voice_stub_mixer),
16981 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16982 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE2_STUB,
16983 1, 0, msm_routing_get_voice_stub_mixer,
16984 msm_routing_put_voice_stub_mixer),
16985 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
16986 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE2_STUB,
16987 1, 0, msm_routing_get_voice_stub_mixer,
16988 msm_routing_put_voice_stub_mixer),
16989 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
16990 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE2_STUB,
16991 1, 0, msm_routing_get_voice_stub_mixer,
16992 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016993};
16994
16995static const struct snd_kcontrol_new tx_volte_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016996 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
16997 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016998 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
16999 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017000 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17001 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017002 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17003 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017004 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
17005 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017006 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17007 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017008 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17009 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017010 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17011 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017012 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17013 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017014 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17015 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017016 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
17017 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017018 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17019 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017020 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
17021 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017022 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17023 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017024 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
17025 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053017026 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17027 msm_routing_put_voice_stub_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017028 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
17029 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
17030 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17031 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017032 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17033 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017034 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17035 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017036 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
17037 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017038 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17039 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017040 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17041 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017042 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17043 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017044 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17045 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017046 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17047 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017048 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17049 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017050 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17051 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017052 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
17053 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017054 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17055 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017056 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17057 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017058 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
17059 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017060 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17061 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
17062 1, 0, msm_routing_get_voice_stub_mixer,
17063 msm_routing_put_voice_stub_mixer),
17064 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
17065 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
17066 1, 0, msm_routing_get_voice_stub_mixer,
17067 msm_routing_put_voice_stub_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017068 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
17069 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
17070 1, 0, msm_routing_get_voice_stub_mixer,
17071 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053017072 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
17073 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
17074 1, 0, msm_routing_get_voice_stub_mixer,
17075 msm_routing_put_voice_stub_mixer),
17076 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
17077 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
17078 1, 0, msm_routing_get_voice_stub_mixer,
17079 msm_routing_put_voice_stub_mixer),
17080 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
17081 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
17082 1, 0, msm_routing_get_voice_stub_mixer,
17083 msm_routing_put_voice_stub_mixer),
17084 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17085 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOLTE_STUB,
17086 1, 0, msm_routing_get_voice_stub_mixer,
17087 msm_routing_put_voice_stub_mixer),
17088 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
17089 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOLTE_STUB,
17090 1, 0, msm_routing_get_voice_stub_mixer,
17091 msm_routing_put_voice_stub_mixer),
17092 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
17093 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOLTE_STUB,
17094 1, 0, msm_routing_get_voice_stub_mixer,
17095 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017096};
17097
17098static const struct snd_kcontrol_new tx_qchat_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017099 SOC_DOUBLE_EXT("PRI_TX_QCHAT", SND_SOC_NOPM,
17100 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017101 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17102 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017103 SOC_DOUBLE_EXT("SLIM_0_TX_QCHAT", SND_SOC_NOPM,
17104 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017105 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17106 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017107 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_QCHAT", SND_SOC_NOPM,
17108 MSM_BACKEND_DAI_INT_BT_SCO_TX,
17109 MSM_FRONTEND_DAI_QCHAT, 1, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017110 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017111 SOC_DOUBLE_EXT("AFE_PCM_TX_QCHAT", SND_SOC_NOPM,
17112 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017113 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17114 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017115 SOC_DOUBLE_EXT("AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
17116 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017117 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17118 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017119 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
17120 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017121 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17122 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017123 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
17124 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017125 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17126 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017127 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
17128 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017129 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17130 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017131 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
17132 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053017133 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17134 msm_routing_put_voice_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017135 SOC_DOUBLE_EXT("SEN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
17136 MSM_BACKEND_DAI_SEN_AUXPCM_TX,
17137 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17138 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017139 SOC_DOUBLE_EXT("MI2S_TX_QCHAT", SND_SOC_NOPM,
17140 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017141 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17142 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017143 SOC_DOUBLE_EXT("PRI_MI2S_TX_QCHAT", SND_SOC_NOPM,
17144 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017145 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17146 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017147 SOC_DOUBLE_EXT("TERT_MI2S_TX_QCHAT", SND_SOC_NOPM,
17148 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017149 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17150 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017151 SOC_DOUBLE_EXT("INT3_MI2S_TX_QCHAT", SND_SOC_NOPM,
17152 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017153 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17154 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017155 SOC_DOUBLE_EXT("SLIM_7_TX_QCHAT", SND_SOC_NOPM,
17156 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017157 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17158 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017159 SOC_DOUBLE_EXT("SLIM_8_TX_QCHAT", SND_SOC_NOPM,
17160 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017161 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17162 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017163 SOC_DOUBLE_EXT("USB_AUDIO_TX_QCHAT", SND_SOC_NOPM,
17164 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017165 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
17166 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017167 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
17168 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
17169 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
17170 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
17171 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
17172 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080017173 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
17174 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
17175 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053017176 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
17177 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
17178 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
17179 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
17180 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
17181 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
17182 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
17183 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
17184 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
17185 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_QCHAT", SND_SOC_NOPM,
17186 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_QCHAT,
17187 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
17188 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_QCHAT", SND_SOC_NOPM,
17189 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_QCHAT,
17190 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
17191 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_QCHAT", SND_SOC_NOPM,
17192 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_QCHAT,
17193 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017194};
17195
17196static const struct snd_kcontrol_new int0_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017197 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17198 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017199 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17200 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017201 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17202 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017203 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17204 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017205 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17206 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017207 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17208 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017209 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17210 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017211 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17212 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017213 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17214 MSM_BACKEND_DAI_INT0_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017215 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17216 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017217 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17218 MSM_BACKEND_DAI_INT0_MI2S_RX,
17219 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17220 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017221 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17222 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017223 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17224 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017225 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17226 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017227 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17228 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017229 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17230 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017231 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17232 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017233 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
17234 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017235 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
17236 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017237 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17238 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017239 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17240 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017241 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
17242 MSM_BACKEND_DAI_INT0_MI2S_RX,
17243 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
17244 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017245};
17246
17247static const struct snd_kcontrol_new int4_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017248 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17249 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017250 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17251 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017252 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17253 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017254 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17255 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017256 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17257 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017258 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17259 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017260 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17261 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017262 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17263 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017264 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17265 MSM_BACKEND_DAI_INT4_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017266 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17267 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017268 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17269 MSM_BACKEND_DAI_INT4_MI2S_RX,
17270 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17271 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017272 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
17273 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017274 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17275 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017276 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17277 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017278 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17279 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017280 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17281 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017282 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17283 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017284 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
17285 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017286 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
17287 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017288 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17289 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017290 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17291 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017292 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
17293 MSM_BACKEND_DAI_INT4_MI2S_RX,
17294 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
17295 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017296};
17297
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053017298static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_port_mixer_controls[] = {
17299 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17300 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
17301 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, 1, 0, msm_routing_get_port_mixer,
17302 msm_routing_put_port_mixer),
17303 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17304 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
17305 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
17306 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080017307 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17308 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
17309 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17310 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080017311 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17312 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
17313 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17314 msm_routing_put_port_mixer),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053017315};
17316
17317static const struct snd_kcontrol_new rx_cdc_dma_rx_0_port_mixer_controls[] = {
17318 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17319 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
17320 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
17321 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080017322 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17323 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
17324 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17325 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017326 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
Meng Wang3f8ba542018-12-10 14:17:10 +080017327 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
Surendar Karka3ef3d812018-09-28 18:52:35 +053017328 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
17329 msm_routing_put_port_mixer),
Meng Wang3f8ba542018-12-10 14:17:10 +080017330 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17331 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
17332 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17333 msm_routing_put_port_mixer),
17334
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053017335};
17336
Laxminath Kasamdcf2ab22019-11-01 15:33:47 +053017337static const struct snd_kcontrol_new rx_cdc_dma_rx_1_port_mixer_controls[] = {
17338 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
17339 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
17340 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, 1, 0, msm_routing_get_port_mixer,
17341 msm_routing_put_port_mixer),
17342 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
17343 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
17344 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
17345 msm_routing_put_port_mixer),
17346 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17347 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
17348 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17349 msm_routing_put_port_mixer),
17350 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17351 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
17352 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17353 msm_routing_put_port_mixer),
17354};
17355
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017356static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017357 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17358 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017359 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17360 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017361 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17362 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017363 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17364 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017365 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17366 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017367 MSM_BACKEND_DAI_SLIMBUS_1_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("SLIM_7_TX", SND_SOC_NOPM,
17370 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017371 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
17372 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017373 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17374 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017375 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17376 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017377 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17378 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017379 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17380 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017381 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17382 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017383 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17384 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017385 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
17386 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017387 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17388 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017389 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
17390 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017391 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17392 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017393 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
17394 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017395 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17396 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017397 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
17398 MSM_BACKEND_DAI_SLIMBUS_0_RX,
17399 MSM_BACKEND_DAI_SEN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17400 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017401 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17402 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017403 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17404 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017405 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17406 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017407 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17408 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017409 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17410 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017411 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17412 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017413 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17414 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017415 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17416 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017417 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17418 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017419 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17420 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017421 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17422 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017423 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17424 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017425 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17426 MSM_BACKEND_DAI_SLIMBUS_0_RX,
17427 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17428 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017429 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17430 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017431 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17432 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017433 SOC_DOUBLE_EXT("PRI_MI2S_RX", SND_SOC_NOPM,
17434 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017435 MSM_BACKEND_DAI_PRI_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17436 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017437 SOC_DOUBLE_EXT("SEC_MI2S_RX", SND_SOC_NOPM,
17438 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017439 MSM_BACKEND_DAI_SECONDARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17440 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017441 SOC_DOUBLE_EXT("TERT_MI2S_RX", SND_SOC_NOPM,
17442 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017443 MSM_BACKEND_DAI_TERTIARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17444 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017445 SOC_DOUBLE_EXT("QUAT_MI2S_RX", SND_SOC_NOPM,
17446 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017447 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17448 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017449 SOC_DOUBLE_EXT("QUIN_MI2S_RX", SND_SOC_NOPM,
17450 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Surendar Karka3ef3d812018-09-28 18:52:35 +053017451 MSM_BACKEND_DAI_QUINARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17452 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017453 SOC_DOUBLE_EXT("SEN_MI2S_RX", SND_SOC_NOPM,
17454 MSM_BACKEND_DAI_SLIMBUS_0_RX,
17455 MSM_BACKEND_DAI_SENARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
17456 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017457 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
17458 MSM_BACKEND_DAI_SLIMBUS_0_RX,
17459 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
Rohit Kumara5077932017-09-10 22:05:05 +053017460 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017461};
17462
17463static const struct snd_kcontrol_new aux_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017464 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17465 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017466 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17467 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017468 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17469 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017470 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17471 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017472 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17473 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017474 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17475 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017476 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17477 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017478 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17479 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017480 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
17481 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017482 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
17483 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017484 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17485 MSM_BACKEND_DAI_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080017486 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17487 msm_routing_put_port_mixer),
Suprith Malligere Shankaregowda467f2c92019-04-19 19:35:41 +053017488 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
17489 MSM_BACKEND_DAI_AUXPCM_RX,
17490 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
17491 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017492};
17493
17494static const struct snd_kcontrol_new sec_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017495 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17496 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017497 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17498 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017499 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17500 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017501 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17502 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017503 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17504 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017505 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17506 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017507 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17508 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080017509 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17510 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017511};
17512
17513static const struct snd_kcontrol_new tert_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017514 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
17515 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017516 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17517 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017518 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17519 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017520 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17521 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017522 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17523 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017524 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17525 msm_routing_put_port_mixer),
17526};
17527
17528static const struct snd_kcontrol_new quat_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017529 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
17530 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017531 MSM_BACKEND_DAI_QUAT_AUXPCM_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_QUAT_AUXPCM_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("AUX_PCM_UL_TX", SND_SOC_NOPM,
17538 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017539 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17540 msm_routing_put_port_mixer),
17541};
17542
Rohit Kumara5077932017-09-10 22:05:05 +053017543static const struct snd_kcontrol_new quin_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017544 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
17545 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017546 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17547 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017548 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17549 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017550 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17551 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017552 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17553 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017554 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17555 msm_routing_put_port_mixer),
17556};
17557
Karthikeyan Manic3700752019-03-11 18:33:53 -070017558static const struct snd_kcontrol_new sen_auxpcm_rx_port_mixer_controls[] = {
17559 SOC_DOUBLE_EXT("SEN_AUXPCM_UL_TX", SND_SOC_NOPM,
17560 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
17561 MSM_BACKEND_DAI_SEN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17562 msm_routing_put_port_mixer),
17563 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17564 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
17565 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17566 msm_routing_put_port_mixer),
17567 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17568 MSM_BACKEND_DAI_SEN_AUXPCM_RX,
17569 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17570 msm_routing_put_port_mixer),
17571};
17572
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017573static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017574 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17575 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017576 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17577 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017578 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17579 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017580 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0, msm_routing_get_port_mixer,
17581 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017582 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17583 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017584 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17585 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017586 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17587 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017588 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17589 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017590 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
17591 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017592 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17593 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017594 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
17595 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017596 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17597 msm_routing_put_port_mixer),
17598};
17599
17600static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017601 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_RX", SND_SOC_NOPM,
17602 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017603 MSM_BACKEND_DAI_INT_BT_SCO_RX, 1, 0, msm_routing_get_port_mixer,
17604 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017605 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17606 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017607 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17608 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017609 SOC_DOUBLE_EXT("AFE_PCM_RX", SND_SOC_NOPM,
17610 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017611 MSM_BACKEND_DAI_AFE_PCM_RX, 1, 0, msm_routing_get_port_mixer,
17612 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017613 SOC_DOUBLE_EXT("AUX_PCM_RX", SND_SOC_NOPM,
17614 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017615 MSM_BACKEND_DAI_AUXPCM_RX, 1, 0, msm_routing_get_port_mixer,
17616 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017617 SOC_DOUBLE_EXT("SLIM_0_RX", SND_SOC_NOPM,
17618 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017619 MSM_BACKEND_DAI_SLIMBUS_0_RX, 1, 0, msm_routing_get_port_mixer,
17620 msm_routing_put_port_mixer),
17621};
17622
17623static const struct snd_kcontrol_new sbus_6_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017624 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17625 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017626 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17627 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017628 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17629 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017630 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17631 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017632 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17633 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017634 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17635 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017636 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
17637 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017638 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
17639 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017640 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17641 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017642 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17643 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017644 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17645 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017646 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17647 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017648 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17649 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017650 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17651 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017652 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17653 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017654 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17655 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017656 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17657 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017658 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17659 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017660 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17661 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017662 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17663 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017664 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17665 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017666 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17667 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017668 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17669 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017670 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17671 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053017672 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
17673 MSM_BACKEND_DAI_SLIMBUS_6_RX,
17674 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
17675 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017676};
17677
17678static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017679 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17680 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017681 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17682 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017683 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17684 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017685 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17686 msm_routing_put_port_mixer),
17687};
17688
17689static const struct snd_kcontrol_new afe_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017690 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17691 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017692 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17693 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017694 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17695 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017696 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17697 msm_routing_put_port_mixer),
17698};
17699
17700
17701static const struct snd_kcontrol_new hdmi_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017702 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17703 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017704 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17705 msm_routing_put_port_mixer),
17706};
17707
17708static const struct snd_kcontrol_new display_port_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017709 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17710 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017711 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17712 msm_routing_put_port_mixer),
17713};
17714
Karthikeyan Mani57550082018-05-03 18:43:58 -070017715static const struct snd_kcontrol_new display_port_rx1_port_mixer_controls[] = {
17716 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17717 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
17718 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17719 msm_routing_put_port_mixer),
17720};
17721
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017722static const struct snd_kcontrol_new sec_i2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017723 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17724 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017725 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17726 msm_routing_put_port_mixer),
17727};
17728
17729static const struct snd_kcontrol_new mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017730 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
17731 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017732 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
17733 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017734 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
17735 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017736 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17737 msm_routing_put_port_mixer),
17738};
17739
17740static const struct snd_kcontrol_new primary_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017741 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17742 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017743 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17744 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017745 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17746 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017747 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17748 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017749 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17750 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017751 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17752 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017753 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17754 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017755 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17756 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017757 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17758 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017759 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
17760 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017761 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17762 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017763 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17764 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017765 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17766 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017767 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17768 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017769 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17770 MSM_BACKEND_DAI_PRI_MI2S_RX,
17771 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17772 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017773 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17774 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017775 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17776 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017777 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17778 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017779 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17780 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017781 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17782 MSM_BACKEND_DAI_PRI_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080017783 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17784 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017785};
17786
17787static const struct snd_kcontrol_new usb_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017788 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
17789 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017790 MSM_BACKEND_DAI_USB_TX, 1, 0, msm_routing_get_port_mixer,
17791 msm_routing_put_port_mixer),
17792};
17793
17794static const struct snd_kcontrol_new quat_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017795 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17796 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017797 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17798 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017799 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17800 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017801 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17802 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017803 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17804 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017805 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
17806 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017807 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17808 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017809 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
17810 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017811 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17812 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017813 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17814 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017815 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17816 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017817 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17818 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017819 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17820 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017821 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17822 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017823 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17824 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017825 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17826 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017827 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17828 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
17829 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17830 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017831 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17832 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017833 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17834 msm_routing_put_port_mixer),
17835};
17836
Rohit Kumara5077932017-09-10 22:05:05 +053017837static const struct snd_kcontrol_new quin_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017838 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17839 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017840 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17841 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017842 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17843 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017844 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17845 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017846 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17847 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017848 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17849 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017850 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17851 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017852 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17853 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017854 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17855 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017856 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17857 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070017858 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17859 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
17860 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17861 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017862 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17863 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017864 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17865 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017866 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17867 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053017868 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17869 msm_routing_put_port_mixer),
17870};
17871
Karthikeyan Manic3700752019-03-11 18:33:53 -070017872static const struct snd_kcontrol_new sen_mi2s_rx_port_mixer_controls[] = {
17873 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17874 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17875 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17876 msm_routing_put_port_mixer),
17877 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
17878 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17879 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17880 msm_routing_put_port_mixer),
17881 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
17882 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17883 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
17884 msm_routing_put_port_mixer),
17885 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17886 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17887 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17888 msm_routing_put_port_mixer),
17889 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
17890 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17891 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17892 msm_routing_put_port_mixer),
17893 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
17894 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17895 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17896 msm_routing_put_port_mixer),
17897 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17898 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17899 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
17900 msm_routing_put_port_mixer),
17901 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
17902 MSM_BACKEND_DAI_SENARY_MI2S_RX,
17903 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
17904 msm_routing_put_port_mixer),
17905};
17906
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017907static const struct snd_kcontrol_new pri_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080017908 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
17909 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017910 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
17911 msm_routing_get_port_mixer,
17912 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017913 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
17914 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017915 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
17916 msm_routing_get_port_mixer,
17917 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017918 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
17919 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017920 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
17921 msm_routing_get_port_mixer,
17922 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017923 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
17924 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017925 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
17926 msm_routing_get_port_mixer,
17927 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017928 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
17929 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017930 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
17931 msm_routing_get_port_mixer,
17932 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017933 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
17934 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017935 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
17936 msm_routing_get_port_mixer,
17937 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017938 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
17939 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017940 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
17941 msm_routing_get_port_mixer,
17942 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017943 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
17944 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017945 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
17946 msm_routing_get_port_mixer,
17947 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017948 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
17949 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017950 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
17951 msm_routing_get_port_mixer,
17952 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017953 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
17954 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017955 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
17956 msm_routing_get_port_mixer,
17957 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017958 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
17959 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017960 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
17961 msm_routing_get_port_mixer,
17962 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017963 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
17964 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017965 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
17966 msm_routing_get_port_mixer,
17967 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017968 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
17969 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017970 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
17971 msm_routing_get_port_mixer,
17972 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017973 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
17974 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017975 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
17976 msm_routing_get_port_mixer,
17977 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017978 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
17979 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017980 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
17981 msm_routing_get_port_mixer,
17982 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017983 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
17984 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017985 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
17986 msm_routing_get_port_mixer,
17987 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017988 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
17989 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017990 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
17991 msm_routing_get_port_mixer,
17992 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017993 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
17994 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053017995 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
17996 msm_routing_get_port_mixer,
17997 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080017998 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
17999 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018000 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18001 msm_routing_get_port_mixer,
18002 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018003 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18004 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018005 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18006 msm_routing_get_port_mixer,
18007 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018008 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18009 MSM_BACKEND_DAI_PRI_TDM_RX_0,
18010 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18011 msm_routing_get_port_mixer,
18012 msm_routing_put_port_mixer),
18013 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18014 MSM_BACKEND_DAI_PRI_TDM_RX_0,
18015 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18016 msm_routing_get_port_mixer,
18017 msm_routing_put_port_mixer),
18018 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18019 MSM_BACKEND_DAI_PRI_TDM_RX_0,
18020 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18021 msm_routing_get_port_mixer,
18022 msm_routing_put_port_mixer),
18023 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18024 MSM_BACKEND_DAI_PRI_TDM_RX_0,
18025 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18026 msm_routing_get_port_mixer,
18027 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018028};
18029
18030static const struct snd_kcontrol_new pri_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018031 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18032 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018033 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18034 msm_routing_get_port_mixer,
18035 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018036 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18037 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018038 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18039 msm_routing_get_port_mixer,
18040 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018041 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18042 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018043 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18044 msm_routing_get_port_mixer,
18045 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018046 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18047 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018048 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18049 msm_routing_get_port_mixer,
18050 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018051 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18052 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018053 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18054 msm_routing_get_port_mixer,
18055 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018056 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18057 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018058 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18059 msm_routing_get_port_mixer,
18060 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018061 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18062 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018063 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18064 msm_routing_get_port_mixer,
18065 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018066 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18067 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018068 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18069 msm_routing_get_port_mixer,
18070 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018071 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
18072 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018073 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
18074 msm_routing_get_port_mixer,
18075 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018076 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
18077 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018078 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
18079 msm_routing_get_port_mixer,
18080 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018081 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
18082 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018083 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
18084 msm_routing_get_port_mixer,
18085 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018086 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
18087 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018088 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
18089 msm_routing_get_port_mixer,
18090 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018091 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18092 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018093 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18094 msm_routing_get_port_mixer,
18095 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018096 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18097 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018098 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18099 msm_routing_get_port_mixer,
18100 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018101 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18102 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018103 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18104 msm_routing_get_port_mixer,
18105 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018106 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18107 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018108 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18109 msm_routing_get_port_mixer,
18110 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018111 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18112 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018113 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18114 msm_routing_get_port_mixer,
18115 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018116 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18117 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018118 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18119 msm_routing_get_port_mixer,
18120 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018121 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18122 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018123 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18124 msm_routing_get_port_mixer,
18125 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018126 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18127 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018128 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18129 msm_routing_get_port_mixer,
18130 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018131 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18132 MSM_BACKEND_DAI_PRI_TDM_RX_1,
18133 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18134 msm_routing_get_port_mixer,
18135 msm_routing_put_port_mixer),
18136 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18137 MSM_BACKEND_DAI_PRI_TDM_RX_1,
18138 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18139 msm_routing_get_port_mixer,
18140 msm_routing_put_port_mixer),
18141 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18142 MSM_BACKEND_DAI_PRI_TDM_RX_1,
18143 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18144 msm_routing_get_port_mixer,
18145 msm_routing_put_port_mixer),
18146 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18147 MSM_BACKEND_DAI_PRI_TDM_RX_1,
18148 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18149 msm_routing_get_port_mixer,
18150 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018151};
18152
18153static const struct snd_kcontrol_new pri_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018154 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18155 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018156 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18157 msm_routing_get_port_mixer,
18158 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018159 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18160 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018161 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18162 msm_routing_get_port_mixer,
18163 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018164 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18165 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018166 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18167 msm_routing_get_port_mixer,
18168 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018169 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18170 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018171 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18172 msm_routing_get_port_mixer,
18173 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018174 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18175 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018176 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18177 msm_routing_get_port_mixer,
18178 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018179 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18180 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018181 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18182 msm_routing_get_port_mixer,
18183 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018184 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18185 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018186 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18187 msm_routing_get_port_mixer,
18188 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018189 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18190 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018191 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18192 msm_routing_get_port_mixer,
18193 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018194 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
18195 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018196 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
18197 msm_routing_get_port_mixer,
18198 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018199 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
18200 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018201 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
18202 msm_routing_get_port_mixer,
18203 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018204 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
18205 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018206 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
18207 msm_routing_get_port_mixer,
18208 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018209 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
18210 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018211 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
18212 msm_routing_get_port_mixer,
18213 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018214 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18215 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018216 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18217 msm_routing_get_port_mixer,
18218 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018219 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18220 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018221 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18222 msm_routing_get_port_mixer,
18223 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018224 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18225 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018226 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18227 msm_routing_get_port_mixer,
18228 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018229 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18230 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018231 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18232 msm_routing_get_port_mixer,
18233 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018234 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18235 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018236 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18237 msm_routing_get_port_mixer,
18238 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018239 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18240 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018241 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18242 msm_routing_get_port_mixer,
18243 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018244 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18245 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018246 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18247 msm_routing_get_port_mixer,
18248 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018249 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18250 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018251 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18252 msm_routing_get_port_mixer,
18253 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018254 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18255 MSM_BACKEND_DAI_PRI_TDM_RX_2,
18256 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18257 msm_routing_get_port_mixer,
18258 msm_routing_put_port_mixer),
18259 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18260 MSM_BACKEND_DAI_PRI_TDM_RX_2,
18261 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18262 msm_routing_get_port_mixer,
18263 msm_routing_put_port_mixer),
18264 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18265 MSM_BACKEND_DAI_PRI_TDM_RX_2,
18266 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18267 msm_routing_get_port_mixer,
18268 msm_routing_put_port_mixer),
18269 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18270 MSM_BACKEND_DAI_PRI_TDM_RX_2,
18271 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18272 msm_routing_get_port_mixer,
18273 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018274};
18275
18276static const struct snd_kcontrol_new pri_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018277 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18278 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018279 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18280 msm_routing_get_port_mixer,
18281 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018282 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18283 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018284 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18285 msm_routing_get_port_mixer,
18286 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018287 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18288 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018289 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18290 msm_routing_get_port_mixer,
18291 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018292 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18293 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018294 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18295 msm_routing_get_port_mixer,
18296 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018297 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18298 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018299 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18300 msm_routing_get_port_mixer,
18301 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018302 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18303 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018304 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18305 msm_routing_get_port_mixer,
18306 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018307 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18308 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018309 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18310 msm_routing_get_port_mixer,
18311 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018312 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18313 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018314 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18315 msm_routing_get_port_mixer,
18316 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018317 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
18318 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018319 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
18320 msm_routing_get_port_mixer,
18321 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018322 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
18323 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018324 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
18325 msm_routing_get_port_mixer,
18326 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018327 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
18328 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018329 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
18330 msm_routing_get_port_mixer,
18331 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018332 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
18333 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018334 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
18335 msm_routing_get_port_mixer,
18336 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018337 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18338 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018339 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18340 msm_routing_get_port_mixer,
18341 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018342 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18343 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018344 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18345 msm_routing_get_port_mixer,
18346 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018347 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18348 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018349 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18350 msm_routing_get_port_mixer,
18351 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018352 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18353 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018354 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18355 msm_routing_get_port_mixer,
18356 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018357 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18358 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018359 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18360 msm_routing_get_port_mixer,
18361 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018362 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18363 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018364 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18365 msm_routing_get_port_mixer,
18366 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018367 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18368 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018369 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18370 msm_routing_get_port_mixer,
18371 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018372 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18373 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018374 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18375 msm_routing_get_port_mixer,
18376 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018377 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18378 MSM_BACKEND_DAI_PRI_TDM_RX_3,
18379 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18380 msm_routing_get_port_mixer,
18381 msm_routing_put_port_mixer),
18382 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18383 MSM_BACKEND_DAI_PRI_TDM_RX_3,
18384 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18385 msm_routing_get_port_mixer,
18386 msm_routing_put_port_mixer),
18387 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18388 MSM_BACKEND_DAI_PRI_TDM_RX_3,
18389 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18390 msm_routing_get_port_mixer,
18391 msm_routing_put_port_mixer),
18392 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18393 MSM_BACKEND_DAI_PRI_TDM_RX_3,
18394 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18395 msm_routing_get_port_mixer,
18396 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018397};
18398
18399static const struct snd_kcontrol_new sec_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018400 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18401 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018402 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18403 msm_routing_get_port_mixer,
18404 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018405 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18406 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018407 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18408 msm_routing_get_port_mixer,
18409 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018410 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18411 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018412 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18413 msm_routing_get_port_mixer,
18414 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018415 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18416 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018417 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18418 msm_routing_get_port_mixer,
18419 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018420 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18421 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018422 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18423 msm_routing_get_port_mixer,
18424 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018425 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18426 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018427 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18428 msm_routing_get_port_mixer,
18429 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018430 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18431 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018432 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18433 msm_routing_get_port_mixer,
18434 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018435 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18436 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018437 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18438 msm_routing_get_port_mixer,
18439 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018440 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
18441 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018442 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
18443 msm_routing_get_port_mixer,
18444 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018445 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
18446 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018447 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
18448 msm_routing_get_port_mixer,
18449 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018450 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
18451 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018452 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
18453 msm_routing_get_port_mixer,
18454 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018455 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
18456 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018457 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
18458 msm_routing_get_port_mixer,
18459 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018460 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18461 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018462 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18463 msm_routing_get_port_mixer,
18464 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018465 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18466 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018467 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18468 msm_routing_get_port_mixer,
18469 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018470 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18471 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018472 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18473 msm_routing_get_port_mixer,
18474 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018475 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18476 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018477 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18478 msm_routing_get_port_mixer,
18479 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018480 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18481 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018482 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18483 msm_routing_get_port_mixer,
18484 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018485 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18486 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018487 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18488 msm_routing_get_port_mixer,
18489 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018490 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18491 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018492 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18493 msm_routing_get_port_mixer,
18494 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018495 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18496 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018497 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18498 msm_routing_get_port_mixer,
18499 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018500 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18501 MSM_BACKEND_DAI_SEC_TDM_RX_0,
18502 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18503 msm_routing_get_port_mixer,
18504 msm_routing_put_port_mixer),
18505 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18506 MSM_BACKEND_DAI_SEC_TDM_RX_0,
18507 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18508 msm_routing_get_port_mixer,
18509 msm_routing_put_port_mixer),
18510 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18511 MSM_BACKEND_DAI_SEC_TDM_RX_0,
18512 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18513 msm_routing_get_port_mixer,
18514 msm_routing_put_port_mixer),
18515 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18516 MSM_BACKEND_DAI_SEC_TDM_RX_0,
18517 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18518 msm_routing_get_port_mixer,
18519 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018520};
18521
18522static const struct snd_kcontrol_new sec_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018523 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18524 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018525 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18526 msm_routing_get_port_mixer,
18527 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018528 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18529 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018530 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18531 msm_routing_get_port_mixer,
18532 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018533 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18534 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018535 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18536 msm_routing_get_port_mixer,
18537 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018538 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18539 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018540 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18541 msm_routing_get_port_mixer,
18542 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018543 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18544 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018545 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18546 msm_routing_get_port_mixer,
18547 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018548 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18549 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018550 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18551 msm_routing_get_port_mixer,
18552 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018553 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18554 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018555 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18556 msm_routing_get_port_mixer,
18557 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018558 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18559 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018560 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18561 msm_routing_get_port_mixer,
18562 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018563 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
18564 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018565 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
18566 msm_routing_get_port_mixer,
18567 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018568 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
18569 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018570 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
18571 msm_routing_get_port_mixer,
18572 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018573 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
18574 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018575 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
18576 msm_routing_get_port_mixer,
18577 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018578 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
18579 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018580 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
18581 msm_routing_get_port_mixer,
18582 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018583 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18584 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018585 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18586 msm_routing_get_port_mixer,
18587 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018588 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18589 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018590 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18591 msm_routing_get_port_mixer,
18592 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018593 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18594 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018595 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18596 msm_routing_get_port_mixer,
18597 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018598 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18599 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018600 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18601 msm_routing_get_port_mixer,
18602 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018603 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18604 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018605 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18606 msm_routing_get_port_mixer,
18607 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018608 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18609 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018610 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18611 msm_routing_get_port_mixer,
18612 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018613 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18614 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018615 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18616 msm_routing_get_port_mixer,
18617 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018618 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18619 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053018620 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18621 msm_routing_get_port_mixer,
18622 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018623 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18624 MSM_BACKEND_DAI_SEC_TDM_RX_1,
18625 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18626 msm_routing_get_port_mixer,
18627 msm_routing_put_port_mixer),
18628 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18629 MSM_BACKEND_DAI_SEC_TDM_RX_1,
18630 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18631 msm_routing_get_port_mixer,
18632 msm_routing_put_port_mixer),
18633 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18634 MSM_BACKEND_DAI_SEC_TDM_RX_1,
18635 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18636 msm_routing_get_port_mixer,
18637 msm_routing_put_port_mixer),
18638 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18639 MSM_BACKEND_DAI_SEC_TDM_RX_1,
18640 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18641 msm_routing_get_port_mixer,
18642 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018643};
18644
18645static const struct snd_kcontrol_new sec_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018646 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18647 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018648 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18649 msm_routing_get_port_mixer,
18650 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018651 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18652 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018653 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18654 msm_routing_get_port_mixer,
18655 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018656 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18657 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018658 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18659 msm_routing_get_port_mixer,
18660 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018661 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18662 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018663 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18664 msm_routing_get_port_mixer,
18665 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018666 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18667 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018668 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18669 msm_routing_get_port_mixer,
18670 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018671 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18672 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018673 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18674 msm_routing_get_port_mixer,
18675 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018676 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18677 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018678 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18679 msm_routing_get_port_mixer,
18680 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018681 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18682 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018683 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18684 msm_routing_get_port_mixer,
18685 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018686 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
18687 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018688 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
18689 msm_routing_get_port_mixer,
18690 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018691 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
18692 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018693 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
18694 msm_routing_get_port_mixer,
18695 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018696 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
18697 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018698 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
18699 msm_routing_get_port_mixer,
18700 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018701 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
18702 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018703 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
18704 msm_routing_get_port_mixer,
18705 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018706 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18707 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018708 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18709 msm_routing_get_port_mixer,
18710 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018711 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18712 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018713 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18714 msm_routing_get_port_mixer,
18715 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018716 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18717 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018718 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18719 msm_routing_get_port_mixer,
18720 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018721 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18722 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018723 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18724 msm_routing_get_port_mixer,
18725 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018726 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18727 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018728 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18729 msm_routing_get_port_mixer,
18730 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018731 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18732 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018733 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18734 msm_routing_get_port_mixer,
18735 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018736 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18737 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018738 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18739 msm_routing_get_port_mixer,
18740 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018741 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18742 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053018743 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18744 msm_routing_get_port_mixer,
18745 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018746 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18747 MSM_BACKEND_DAI_SEC_TDM_RX_2,
18748 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18749 msm_routing_get_port_mixer,
18750 msm_routing_put_port_mixer),
18751 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18752 MSM_BACKEND_DAI_SEC_TDM_RX_2,
18753 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18754 msm_routing_get_port_mixer,
18755 msm_routing_put_port_mixer),
18756 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18757 MSM_BACKEND_DAI_SEC_TDM_RX_2,
18758 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18759 msm_routing_get_port_mixer,
18760 msm_routing_put_port_mixer),
18761 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18762 MSM_BACKEND_DAI_SEC_TDM_RX_2,
18763 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18764 msm_routing_get_port_mixer,
18765 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018766};
18767
18768static const struct snd_kcontrol_new sec_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018769 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18770 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018771 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18772 msm_routing_get_port_mixer,
18773 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018774 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18775 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018776 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18777 msm_routing_get_port_mixer,
18778 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018779 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18780 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018781 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18782 msm_routing_get_port_mixer,
18783 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018784 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18785 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018786 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18787 msm_routing_get_port_mixer,
18788 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018789 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18790 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018791 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18792 msm_routing_get_port_mixer,
18793 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018794 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18795 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018796 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18797 msm_routing_get_port_mixer,
18798 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018799 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18800 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018801 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18802 msm_routing_get_port_mixer,
18803 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018804 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18805 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018806 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18807 msm_routing_get_port_mixer,
18808 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018809 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
18810 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018811 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
18812 msm_routing_get_port_mixer,
18813 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018814 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
18815 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018816 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
18817 msm_routing_get_port_mixer,
18818 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018819 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
18820 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018821 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
18822 msm_routing_get_port_mixer,
18823 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018824 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
18825 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018826 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
18827 msm_routing_get_port_mixer,
18828 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018829 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18830 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018831 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18832 msm_routing_get_port_mixer,
18833 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018834 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18835 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018836 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18837 msm_routing_get_port_mixer,
18838 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018839 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18840 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018841 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18842 msm_routing_get_port_mixer,
18843 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018844 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18845 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018846 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18847 msm_routing_get_port_mixer,
18848 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018849 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18850 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018851 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18852 msm_routing_get_port_mixer,
18853 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018854 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18855 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018856 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18857 msm_routing_get_port_mixer,
18858 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018859 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18860 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018861 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18862 msm_routing_get_port_mixer,
18863 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018864 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18865 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053018866 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18867 msm_routing_get_port_mixer,
18868 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070018869 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
18870 MSM_BACKEND_DAI_SEC_TDM_RX_3,
18871 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
18872 msm_routing_get_port_mixer,
18873 msm_routing_put_port_mixer),
18874 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
18875 MSM_BACKEND_DAI_SEC_TDM_RX_3,
18876 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
18877 msm_routing_get_port_mixer,
18878 msm_routing_put_port_mixer),
18879 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
18880 MSM_BACKEND_DAI_SEC_TDM_RX_3,
18881 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
18882 msm_routing_get_port_mixer,
18883 msm_routing_put_port_mixer),
18884 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
18885 MSM_BACKEND_DAI_SEC_TDM_RX_3,
18886 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
18887 msm_routing_get_port_mixer,
18888 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018889};
18890
Derek Chenfdcc0982018-10-02 15:14:03 -070018891static const struct snd_kcontrol_new sec_tdm_rx_7_port_mixer_controls[] = {
18892 SOC_DOUBLE_EXT("TERT_TDM_TX_7", SND_SOC_NOPM,
18893 MSM_BACKEND_DAI_SEC_TDM_RX_7,
18894 MSM_BACKEND_DAI_TERT_TDM_TX_7, 1, 0,
18895 msm_routing_get_port_mixer,
18896 msm_routing_put_port_mixer),
18897};
18898
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018899static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080018900 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
18901 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018902 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
18903 msm_routing_get_port_mixer,
18904 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018905 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
18906 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018907 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
18908 msm_routing_get_port_mixer,
18909 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018910 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
18911 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018912 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
18913 msm_routing_get_port_mixer,
18914 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018915 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
18916 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018917 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
18918 msm_routing_get_port_mixer,
18919 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018920 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
18921 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018922 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
18923 msm_routing_get_port_mixer,
18924 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018925 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
18926 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018927 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
18928 msm_routing_get_port_mixer,
18929 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018930 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
18931 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018932 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
18933 msm_routing_get_port_mixer,
18934 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018935 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
18936 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018937 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
18938 msm_routing_get_port_mixer,
18939 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018940 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
18941 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018942 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
18943 msm_routing_get_port_mixer,
18944 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018945 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
18946 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018947 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
18948 msm_routing_get_port_mixer,
18949 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018950 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
18951 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018952 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
18953 msm_routing_get_port_mixer,
18954 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018955 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
18956 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018957 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
18958 msm_routing_get_port_mixer,
18959 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018960 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
18961 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018962 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
18963 msm_routing_get_port_mixer,
18964 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018965 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
18966 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018967 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
18968 msm_routing_get_port_mixer,
18969 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018970 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
18971 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018972 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
18973 msm_routing_get_port_mixer,
18974 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018975 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
18976 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018977 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
18978 msm_routing_get_port_mixer,
18979 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018980 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
18981 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018982 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
18983 msm_routing_get_port_mixer,
18984 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018985 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
18986 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018987 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
18988 msm_routing_get_port_mixer,
18989 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018990 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
18991 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018992 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
18993 msm_routing_get_port_mixer,
18994 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080018995 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
18996 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053018997 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
18998 msm_routing_get_port_mixer,
18999 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019000 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19001 MSM_BACKEND_DAI_TERT_TDM_RX_0,
19002 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19003 msm_routing_get_port_mixer,
19004 msm_routing_put_port_mixer),
19005 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19006 MSM_BACKEND_DAI_TERT_TDM_RX_0,
19007 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19008 msm_routing_get_port_mixer,
19009 msm_routing_put_port_mixer),
19010 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19011 MSM_BACKEND_DAI_TERT_TDM_RX_0,
19012 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19013 msm_routing_get_port_mixer,
19014 msm_routing_put_port_mixer),
19015 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19016 MSM_BACKEND_DAI_TERT_TDM_RX_0,
19017 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19018 msm_routing_get_port_mixer,
19019 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019020};
19021
19022static const struct snd_kcontrol_new tert_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019023 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19024 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019025 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19026 msm_routing_get_port_mixer,
19027 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019028 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19029 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019030 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19031 msm_routing_get_port_mixer,
19032 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019033 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19034 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019035 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
19036 msm_routing_get_port_mixer,
19037 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019038 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19039 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019040 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19041 msm_routing_get_port_mixer,
19042 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019043 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19044 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019045 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19046 msm_routing_get_port_mixer,
19047 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019048 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19049 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019050 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19051 msm_routing_get_port_mixer,
19052 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019053 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19054 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019055 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19056 msm_routing_get_port_mixer,
19057 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019058 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19059 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019060 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19061 msm_routing_get_port_mixer,
19062 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019063 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19064 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019065 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19066 msm_routing_get_port_mixer,
19067 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019068 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19069 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019070 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19071 msm_routing_get_port_mixer,
19072 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019073 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19074 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019075 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19076 msm_routing_get_port_mixer,
19077 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019078 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19079 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019080 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19081 msm_routing_get_port_mixer,
19082 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019083 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19084 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019085 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19086 msm_routing_get_port_mixer,
19087 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019088 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19089 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019090 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19091 msm_routing_get_port_mixer,
19092 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019093 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19094 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019095 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19096 msm_routing_get_port_mixer,
19097 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019098 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19099 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019100 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19101 msm_routing_get_port_mixer,
19102 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019103 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19104 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019105 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19106 msm_routing_get_port_mixer,
19107 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019108 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19109 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019110 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19111 msm_routing_get_port_mixer,
19112 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019113 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19114 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019115 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19116 msm_routing_get_port_mixer,
19117 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019118 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19119 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019120 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19121 msm_routing_get_port_mixer,
19122 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019123 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19124 MSM_BACKEND_DAI_TERT_TDM_RX_1,
19125 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19126 msm_routing_get_port_mixer,
19127 msm_routing_put_port_mixer),
19128 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19129 MSM_BACKEND_DAI_TERT_TDM_RX_1,
19130 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19131 msm_routing_get_port_mixer,
19132 msm_routing_put_port_mixer),
19133 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19134 MSM_BACKEND_DAI_TERT_TDM_RX_1,
19135 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19136 msm_routing_get_port_mixer,
19137 msm_routing_put_port_mixer),
19138 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19139 MSM_BACKEND_DAI_TERT_TDM_RX_1,
19140 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19141 msm_routing_get_port_mixer,
19142 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019143};
19144
19145static const struct snd_kcontrol_new tert_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019146 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19147 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019148 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19149 msm_routing_get_port_mixer,
19150 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019151 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19152 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019153 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19154 msm_routing_get_port_mixer,
19155 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019156 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19157 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019158 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
19159 msm_routing_get_port_mixer,
19160 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019161 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19162 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019163 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19164 msm_routing_get_port_mixer,
19165 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019166 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19167 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019168 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19169 msm_routing_get_port_mixer,
19170 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019171 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19172 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019173 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19174 msm_routing_get_port_mixer,
19175 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019176 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19177 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019178 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19179 msm_routing_get_port_mixer,
19180 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019181 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19182 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019183 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19184 msm_routing_get_port_mixer,
19185 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019186 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19187 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019188 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19189 msm_routing_get_port_mixer,
19190 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019191 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19192 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019193 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19194 msm_routing_get_port_mixer,
19195 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019196 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19197 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019198 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19199 msm_routing_get_port_mixer,
19200 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019201 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19202 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019203 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19204 msm_routing_get_port_mixer,
19205 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019206 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19207 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019208 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19209 msm_routing_get_port_mixer,
19210 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019211 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19212 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019213 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19214 msm_routing_get_port_mixer,
19215 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019216 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19217 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019218 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19219 msm_routing_get_port_mixer,
19220 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019221 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19222 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019223 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19224 msm_routing_get_port_mixer,
19225 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019226 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19227 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019228 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19229 msm_routing_get_port_mixer,
19230 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019231 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19232 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019233 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19234 msm_routing_get_port_mixer,
19235 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019236 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19237 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019238 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19239 msm_routing_get_port_mixer,
19240 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019241 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19242 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019243 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19244 msm_routing_get_port_mixer,
19245 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019246 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19247 MSM_BACKEND_DAI_TERT_TDM_RX_2,
19248 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19249 msm_routing_get_port_mixer,
19250 msm_routing_put_port_mixer),
19251 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19252 MSM_BACKEND_DAI_TERT_TDM_RX_2,
19253 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19254 msm_routing_get_port_mixer,
19255 msm_routing_put_port_mixer),
19256 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19257 MSM_BACKEND_DAI_TERT_TDM_RX_2,
19258 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19259 msm_routing_get_port_mixer,
19260 msm_routing_put_port_mixer),
19261 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19262 MSM_BACKEND_DAI_TERT_TDM_RX_2,
19263 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19264 msm_routing_get_port_mixer,
19265 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019266};
19267
19268static const struct snd_kcontrol_new tert_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019269 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19270 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019271 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19272 msm_routing_get_port_mixer,
19273 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019274 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19275 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019276 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19277 msm_routing_get_port_mixer,
19278 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019279 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
19280 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019281 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
19282 msm_routing_get_port_mixer,
19283 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019284 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19285 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019286 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19287 msm_routing_get_port_mixer,
19288 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019289 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19290 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019291 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19292 msm_routing_get_port_mixer,
19293 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019294 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19295 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019296 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19297 msm_routing_get_port_mixer,
19298 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019299 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19300 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019301 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19302 msm_routing_get_port_mixer,
19303 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019304 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19305 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019306 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19307 msm_routing_get_port_mixer,
19308 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019309 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19310 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019311 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19312 msm_routing_get_port_mixer,
19313 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019314 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19315 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019316 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19317 msm_routing_get_port_mixer,
19318 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019319 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19320 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019321 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19322 msm_routing_get_port_mixer,
19323 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019324 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19325 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019326 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19327 msm_routing_get_port_mixer,
19328 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019329 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19330 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019331 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19332 msm_routing_get_port_mixer,
19333 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019334 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19335 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019336 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19337 msm_routing_get_port_mixer,
19338 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019339 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19340 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019341 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19342 msm_routing_get_port_mixer,
19343 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019344 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19345 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019346 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19347 msm_routing_get_port_mixer,
19348 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019349 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19350 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019351 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19352 msm_routing_get_port_mixer,
19353 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019354 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19355 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019356 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19357 msm_routing_get_port_mixer,
19358 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019359 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19360 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019361 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19362 msm_routing_get_port_mixer,
19363 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019364 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19365 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019366 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19367 msm_routing_get_port_mixer,
19368 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019369 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19370 MSM_BACKEND_DAI_TERT_TDM_RX_3,
19371 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19372 msm_routing_get_port_mixer,
19373 msm_routing_put_port_mixer),
19374 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19375 MSM_BACKEND_DAI_TERT_TDM_RX_3,
19376 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19377 msm_routing_get_port_mixer,
19378 msm_routing_put_port_mixer),
19379 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19380 MSM_BACKEND_DAI_TERT_TDM_RX_3,
19381 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19382 msm_routing_get_port_mixer,
19383 msm_routing_put_port_mixer),
19384 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19385 MSM_BACKEND_DAI_TERT_TDM_RX_3,
19386 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19387 msm_routing_get_port_mixer,
19388 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019389};
19390
19391static const struct snd_kcontrol_new quat_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019392 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19393 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019394 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19395 msm_routing_get_port_mixer,
19396 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019397 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19398 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019399 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19400 msm_routing_get_port_mixer,
19401 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019402 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19403 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019404 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19405 msm_routing_get_port_mixer,
19406 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019407 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19408 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019409 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19410 msm_routing_get_port_mixer,
19411 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019412 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19413 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019414 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19415 msm_routing_get_port_mixer,
19416 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019417 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19418 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019419 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19420 msm_routing_get_port_mixer,
19421 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019422 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19423 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019424 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19425 msm_routing_get_port_mixer,
19426 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019427 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19428 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019429 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19430 msm_routing_get_port_mixer,
19431 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019432 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19433 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019434 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19435 msm_routing_get_port_mixer,
19436 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019437 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19438 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019439 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19440 msm_routing_get_port_mixer,
19441 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019442 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19443 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019444 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19445 msm_routing_get_port_mixer,
19446 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019447 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19448 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019449 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19450 msm_routing_get_port_mixer,
19451 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019452 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19453 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019454 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19455 msm_routing_get_port_mixer,
19456 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019457 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19458 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019459 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19460 msm_routing_get_port_mixer,
19461 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019462 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19463 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019464 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19465 msm_routing_get_port_mixer,
19466 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019467 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19468 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019469 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19470 msm_routing_get_port_mixer,
19471 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019472 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19473 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019474 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19475 msm_routing_get_port_mixer,
19476 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019477 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19478 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019479 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19480 msm_routing_get_port_mixer,
19481 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019482 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19483 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019484 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19485 msm_routing_get_port_mixer,
19486 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019487 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19488 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019489 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19490 msm_routing_get_port_mixer,
19491 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019492 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19493 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
19494 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19495 msm_routing_get_port_mixer,
19496 msm_routing_put_port_mixer),
19497 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19498 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
19499 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19500 msm_routing_get_port_mixer,
19501 msm_routing_put_port_mixer),
19502 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19503 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
19504 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19505 msm_routing_get_port_mixer,
19506 msm_routing_put_port_mixer),
19507 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19508 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
19509 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19510 msm_routing_get_port_mixer,
19511 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019512};
19513
19514static const struct snd_kcontrol_new quat_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019515 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19516 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019517 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19518 msm_routing_get_port_mixer,
19519 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019520 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19521 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019522 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19523 msm_routing_get_port_mixer,
19524 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019525 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19526 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019527 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19528 msm_routing_get_port_mixer,
19529 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019530 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19531 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019532 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19533 msm_routing_get_port_mixer,
19534 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019535 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19536 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019537 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19538 msm_routing_get_port_mixer,
19539 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019540 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19541 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019542 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19543 msm_routing_get_port_mixer,
19544 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019545 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19546 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019547 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19548 msm_routing_get_port_mixer,
19549 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019550 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19551 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019552 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19553 msm_routing_get_port_mixer,
19554 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019555 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19556 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019557 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19558 msm_routing_get_port_mixer,
19559 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019560 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19561 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019562 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19563 msm_routing_get_port_mixer,
19564 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019565 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19566 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019567 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19568 msm_routing_get_port_mixer,
19569 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019570 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19571 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019572 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19573 msm_routing_get_port_mixer,
19574 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019575 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19576 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019577 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19578 msm_routing_get_port_mixer,
19579 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019580 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19581 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019582 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19583 msm_routing_get_port_mixer,
19584 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019585 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19586 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019587 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19588 msm_routing_get_port_mixer,
19589 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019590 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19591 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019592 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19593 msm_routing_get_port_mixer,
19594 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019595 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19596 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019597 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19598 msm_routing_get_port_mixer,
19599 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019600 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19601 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019602 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19603 msm_routing_get_port_mixer,
19604 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019605 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19606 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019607 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19608 msm_routing_get_port_mixer,
19609 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019610 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19611 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053019612 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19613 msm_routing_get_port_mixer,
19614 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019615 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19616 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
19617 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19618 msm_routing_get_port_mixer,
19619 msm_routing_put_port_mixer),
19620 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19621 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
19622 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19623 msm_routing_get_port_mixer,
19624 msm_routing_put_port_mixer),
19625 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19626 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
19627 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19628 msm_routing_get_port_mixer,
19629 msm_routing_put_port_mixer),
19630 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19631 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
19632 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19633 msm_routing_get_port_mixer,
19634 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019635};
19636
19637static const struct snd_kcontrol_new quat_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019638 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19639 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019640 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19641 msm_routing_get_port_mixer,
19642 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019643 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19644 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019645 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19646 msm_routing_get_port_mixer,
19647 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019648 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19649 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019650 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19651 msm_routing_get_port_mixer,
19652 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019653 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19654 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019655 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19656 msm_routing_get_port_mixer,
19657 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019658 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19659 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019660 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19661 msm_routing_get_port_mixer,
19662 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019663 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19664 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019665 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19666 msm_routing_get_port_mixer,
19667 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019668 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19669 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019670 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19671 msm_routing_get_port_mixer,
19672 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019673 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19674 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019675 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19676 msm_routing_get_port_mixer,
19677 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019678 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19679 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019680 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19681 msm_routing_get_port_mixer,
19682 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019683 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19684 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019685 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19686 msm_routing_get_port_mixer,
19687 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019688 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19689 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019690 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19691 msm_routing_get_port_mixer,
19692 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019693 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19694 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019695 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19696 msm_routing_get_port_mixer,
19697 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019698 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19699 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019700 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19701 msm_routing_get_port_mixer,
19702 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019703 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19704 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019705 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19706 msm_routing_get_port_mixer,
19707 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019708 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19709 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019710 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19711 msm_routing_get_port_mixer,
19712 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019713 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19714 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019715 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19716 msm_routing_get_port_mixer,
19717 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019718 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19719 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019720 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19721 msm_routing_get_port_mixer,
19722 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019723 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19724 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019725 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19726 msm_routing_get_port_mixer,
19727 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019728 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19729 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019730 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19731 msm_routing_get_port_mixer,
19732 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019733 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19734 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053019735 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19736 msm_routing_get_port_mixer,
19737 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019738 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19739 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
19740 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19741 msm_routing_get_port_mixer,
19742 msm_routing_put_port_mixer),
19743 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19744 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
19745 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19746 msm_routing_get_port_mixer,
19747 msm_routing_put_port_mixer),
19748 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19749 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
19750 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19751 msm_routing_get_port_mixer,
19752 msm_routing_put_port_mixer),
19753 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19754 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
19755 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19756 msm_routing_get_port_mixer,
19757 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019758};
19759
19760static const struct snd_kcontrol_new quat_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019761 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19762 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019763 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19764 msm_routing_get_port_mixer,
19765 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019766 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19767 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019768 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19769 msm_routing_get_port_mixer,
19770 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019771 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19772 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019773 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19774 msm_routing_get_port_mixer,
19775 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019776 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19777 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019778 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19779 msm_routing_get_port_mixer,
19780 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019781 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19782 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019783 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19784 msm_routing_get_port_mixer,
19785 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019786 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19787 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019788 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19789 msm_routing_get_port_mixer,
19790 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019791 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19792 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019793 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19794 msm_routing_get_port_mixer,
19795 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019796 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19797 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019798 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19799 msm_routing_get_port_mixer,
19800 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019801 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19802 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019803 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19804 msm_routing_get_port_mixer,
19805 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019806 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19807 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019808 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19809 msm_routing_get_port_mixer,
19810 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019811 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19812 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019813 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19814 msm_routing_get_port_mixer,
19815 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019816 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19817 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019818 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19819 msm_routing_get_port_mixer,
19820 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019821 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19822 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019823 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19824 msm_routing_get_port_mixer,
19825 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019826 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19827 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019828 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19829 msm_routing_get_port_mixer,
19830 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019831 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19832 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019833 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19834 msm_routing_get_port_mixer,
19835 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019836 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19837 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019838 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19839 msm_routing_get_port_mixer,
19840 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019841 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19842 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019843 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19844 msm_routing_get_port_mixer,
19845 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019846 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19847 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019848 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19849 msm_routing_get_port_mixer,
19850 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019851 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19852 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019853 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19854 msm_routing_get_port_mixer,
19855 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019856 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19857 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053019858 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19859 msm_routing_get_port_mixer,
19860 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019861 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19862 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
19863 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
19864 msm_routing_get_port_mixer,
19865 msm_routing_put_port_mixer),
19866 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
19867 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
19868 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
19869 msm_routing_get_port_mixer,
19870 msm_routing_put_port_mixer),
19871 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
19872 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
19873 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
19874 msm_routing_get_port_mixer,
19875 msm_routing_put_port_mixer),
19876 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
19877 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
19878 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
19879 msm_routing_get_port_mixer,
19880 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053019881};
19882
Derek Chenb9048cb2019-03-07 14:54:13 -050019883static const struct snd_kcontrol_new quat_tdm_rx_7_port_mixer_controls[] = {
19884 SOC_DOUBLE_EXT("QUAT_TDM_TX_7", SND_SOC_NOPM,
19885 MSM_BACKEND_DAI_QUAT_TDM_RX_7,
19886 MSM_BACKEND_DAI_QUAT_TDM_TX_7, 1, 0,
19887 msm_routing_get_port_mixer,
19888 msm_routing_put_port_mixer),
Derek Chen728c5cc2019-06-26 14:21:52 -070019889 SOC_DOUBLE_EXT("QUIN_TDM_TX_7", SND_SOC_NOPM,
19890 MSM_BACKEND_DAI_QUAT_TDM_RX_7,
19891 MSM_BACKEND_DAI_QUIN_TDM_TX_7, 1, 0,
19892 msm_routing_get_port_mixer,
19893 msm_routing_put_port_mixer),
Derek Chenb9048cb2019-03-07 14:54:13 -050019894};
19895
Rohit Kumara5077932017-09-10 22:05:05 +053019896static const struct snd_kcontrol_new quin_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080019897 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
19898 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019899 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
19900 msm_routing_get_port_mixer,
19901 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019902 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
19903 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019904 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
19905 msm_routing_get_port_mixer,
19906 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019907 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
19908 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019909 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
19910 msm_routing_get_port_mixer,
19911 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019912 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
19913 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019914 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
19915 msm_routing_get_port_mixer,
19916 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019917 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
19918 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019919 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
19920 msm_routing_get_port_mixer,
19921 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019922 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
19923 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019924 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
19925 msm_routing_get_port_mixer,
19926 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019927 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
19928 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019929 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
19930 msm_routing_get_port_mixer,
19931 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019932 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
19933 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019934 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
19935 msm_routing_get_port_mixer,
19936 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019937 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
19938 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019939 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
19940 msm_routing_get_port_mixer,
19941 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019942 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
19943 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019944 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
19945 msm_routing_get_port_mixer,
19946 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019947 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
19948 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019949 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
19950 msm_routing_get_port_mixer,
19951 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019952 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
19953 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019954 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
19955 msm_routing_get_port_mixer,
19956 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019957 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
19958 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019959 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
19960 msm_routing_get_port_mixer,
19961 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019962 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
19963 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019964 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
19965 msm_routing_get_port_mixer,
19966 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019967 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
19968 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019969 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
19970 msm_routing_get_port_mixer,
19971 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019972 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
19973 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019974 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
19975 msm_routing_get_port_mixer,
19976 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019977 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
19978 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019979 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
19980 msm_routing_get_port_mixer,
19981 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019982 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
19983 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019984 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
19985 msm_routing_get_port_mixer,
19986 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019987 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
19988 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019989 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
19990 msm_routing_get_port_mixer,
19991 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080019992 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
19993 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053019994 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
19995 msm_routing_get_port_mixer,
19996 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070019997 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
19998 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
19999 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20000 msm_routing_get_port_mixer,
20001 msm_routing_put_port_mixer),
20002 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20003 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
20004 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20005 msm_routing_get_port_mixer,
20006 msm_routing_put_port_mixer),
20007 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20008 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
20009 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20010 msm_routing_get_port_mixer,
20011 msm_routing_put_port_mixer),
20012 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20013 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
20014 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20015 msm_routing_get_port_mixer,
20016 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053020017};
20018
20019static const struct snd_kcontrol_new quin_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020020 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20021 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020022 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20023 msm_routing_get_port_mixer,
20024 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020025 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20026 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020027 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20028 msm_routing_get_port_mixer,
20029 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020030 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20031 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020032 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20033 msm_routing_get_port_mixer,
20034 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020035 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20036 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020037 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20038 msm_routing_get_port_mixer,
20039 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020040 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20041 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020042 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20043 msm_routing_get_port_mixer,
20044 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020045 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20046 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020047 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20048 msm_routing_get_port_mixer,
20049 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020050 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20051 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020052 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20053 msm_routing_get_port_mixer,
20054 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020055 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20056 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020057 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20058 msm_routing_get_port_mixer,
20059 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020060 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20061 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020062 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20063 msm_routing_get_port_mixer,
20064 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020065 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20066 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020067 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20068 msm_routing_get_port_mixer,
20069 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020070 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20071 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020072 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20073 msm_routing_get_port_mixer,
20074 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020075 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20076 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020077 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20078 msm_routing_get_port_mixer,
20079 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020080 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20081 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020082 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20083 msm_routing_get_port_mixer,
20084 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020085 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20086 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020087 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20088 msm_routing_get_port_mixer,
20089 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020090 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20091 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020092 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20093 msm_routing_get_port_mixer,
20094 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020095 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20096 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020097 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20098 msm_routing_get_port_mixer,
20099 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020100 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20101 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020102 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20103 msm_routing_get_port_mixer,
20104 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020105 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20106 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020107 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20108 msm_routing_get_port_mixer,
20109 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020110 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20111 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020112 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20113 msm_routing_get_port_mixer,
20114 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020115 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20116 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053020117 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20118 msm_routing_get_port_mixer,
20119 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070020120 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20121 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
20122 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20123 msm_routing_get_port_mixer,
20124 msm_routing_put_port_mixer),
20125 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20126 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
20127 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20128 msm_routing_get_port_mixer,
20129 msm_routing_put_port_mixer),
20130 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20131 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
20132 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20133 msm_routing_get_port_mixer,
20134 msm_routing_put_port_mixer),
20135 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20136 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
20137 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20138 msm_routing_get_port_mixer,
20139 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053020140};
20141
20142static const struct snd_kcontrol_new quin_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020143 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20144 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020145 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20146 msm_routing_get_port_mixer,
20147 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020148 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20149 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020150 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20151 msm_routing_get_port_mixer,
20152 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020153 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20154 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020155 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20156 msm_routing_get_port_mixer,
20157 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020158 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20159 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020160 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20161 msm_routing_get_port_mixer,
20162 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020163 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20164 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020165 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20166 msm_routing_get_port_mixer,
20167 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020168 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20169 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020170 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20171 msm_routing_get_port_mixer,
20172 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020173 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20174 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020175 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20176 msm_routing_get_port_mixer,
20177 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020178 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20179 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020180 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20181 msm_routing_get_port_mixer,
20182 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020183 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20184 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020185 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20186 msm_routing_get_port_mixer,
20187 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020188 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20189 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020190 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20191 msm_routing_get_port_mixer,
20192 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020193 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20194 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020195 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20196 msm_routing_get_port_mixer,
20197 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020198 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20199 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020200 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20201 msm_routing_get_port_mixer,
20202 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020203 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20204 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020205 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20206 msm_routing_get_port_mixer,
20207 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020208 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20209 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020210 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20211 msm_routing_get_port_mixer,
20212 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020213 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20214 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020215 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20216 msm_routing_get_port_mixer,
20217 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020218 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20219 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020220 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20221 msm_routing_get_port_mixer,
20222 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020223 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20224 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020225 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20226 msm_routing_get_port_mixer,
20227 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020228 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20229 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020230 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20231 msm_routing_get_port_mixer,
20232 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020233 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20234 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020235 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20236 msm_routing_get_port_mixer,
20237 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020238 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20239 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053020240 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20241 msm_routing_get_port_mixer,
20242 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070020243 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20244 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
20245 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20246 msm_routing_get_port_mixer,
20247 msm_routing_put_port_mixer),
20248 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20249 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
20250 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20251 msm_routing_get_port_mixer,
20252 msm_routing_put_port_mixer),
20253 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20254 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
20255 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20256 msm_routing_get_port_mixer,
20257 msm_routing_put_port_mixer),
20258 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20259 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
20260 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20261 msm_routing_get_port_mixer,
20262 msm_routing_put_port_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +053020263};
20264
20265static const struct snd_kcontrol_new quin_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020266 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20267 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020268 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20269 msm_routing_get_port_mixer,
20270 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020271 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20272 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020273 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20274 msm_routing_get_port_mixer,
20275 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020276 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20277 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020278 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20279 msm_routing_get_port_mixer,
20280 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020281 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20282 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020283 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20284 msm_routing_get_port_mixer,
20285 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020286 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20287 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020288 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20289 msm_routing_get_port_mixer,
20290 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020291 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20292 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020293 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20294 msm_routing_get_port_mixer,
20295 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020296 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20297 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020298 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20299 msm_routing_get_port_mixer,
20300 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020301 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20302 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020303 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20304 msm_routing_get_port_mixer,
20305 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020306 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20307 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020308 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20309 msm_routing_get_port_mixer,
20310 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020311 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20312 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020313 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20314 msm_routing_get_port_mixer,
20315 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020316 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20317 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020318 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20319 msm_routing_get_port_mixer,
20320 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020321 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20322 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020323 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20324 msm_routing_get_port_mixer,
20325 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020326 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20327 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020328 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20329 msm_routing_get_port_mixer,
20330 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020331 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20332 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020333 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20334 msm_routing_get_port_mixer,
20335 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020336 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20337 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020338 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20339 msm_routing_get_port_mixer,
20340 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020341 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20342 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020343 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20344 msm_routing_get_port_mixer,
20345 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020346 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20347 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020348 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20349 msm_routing_get_port_mixer,
20350 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020351 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20352 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020353 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20354 msm_routing_get_port_mixer,
20355 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020356 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20357 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020358 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20359 msm_routing_get_port_mixer,
20360 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020361 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20362 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053020363 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20364 msm_routing_get_port_mixer,
20365 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070020366 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20367 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
20368 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20369 msm_routing_get_port_mixer,
20370 msm_routing_put_port_mixer),
20371 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20372 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
20373 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20374 msm_routing_get_port_mixer,
20375 msm_routing_put_port_mixer),
20376 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20377 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
20378 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20379 msm_routing_get_port_mixer,
20380 msm_routing_put_port_mixer),
20381 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20382 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
20383 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20384 msm_routing_get_port_mixer,
20385 msm_routing_put_port_mixer),
20386};
20387
20388static const struct snd_kcontrol_new sen_tdm_rx_0_port_mixer_controls[] = {
20389 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20390 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20391 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20392 msm_routing_get_port_mixer,
20393 msm_routing_put_port_mixer),
20394 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20395 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20396 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20397 msm_routing_get_port_mixer,
20398 msm_routing_put_port_mixer),
20399 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20400 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20401 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20402 msm_routing_get_port_mixer,
20403 msm_routing_put_port_mixer),
20404 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20405 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20406 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20407 msm_routing_get_port_mixer,
20408 msm_routing_put_port_mixer),
20409 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20410 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20411 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20412 msm_routing_get_port_mixer,
20413 msm_routing_put_port_mixer),
20414 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20415 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20416 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20417 msm_routing_get_port_mixer,
20418 msm_routing_put_port_mixer),
20419 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20420 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20421 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20422 msm_routing_get_port_mixer,
20423 msm_routing_put_port_mixer),
20424 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20425 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20426 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20427 msm_routing_get_port_mixer,
20428 msm_routing_put_port_mixer),
20429 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20430 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20431 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20432 msm_routing_get_port_mixer,
20433 msm_routing_put_port_mixer),
20434 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20435 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20436 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20437 msm_routing_get_port_mixer,
20438 msm_routing_put_port_mixer),
20439 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20440 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20441 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20442 msm_routing_get_port_mixer,
20443 msm_routing_put_port_mixer),
20444 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20445 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20446 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20447 msm_routing_get_port_mixer,
20448 msm_routing_put_port_mixer),
20449 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20450 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20451 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20452 msm_routing_get_port_mixer,
20453 msm_routing_put_port_mixer),
20454 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20455 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20456 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20457 msm_routing_get_port_mixer,
20458 msm_routing_put_port_mixer),
20459 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20460 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20461 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20462 msm_routing_get_port_mixer,
20463 msm_routing_put_port_mixer),
20464 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20465 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20466 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20467 msm_routing_get_port_mixer,
20468 msm_routing_put_port_mixer),
20469 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20470 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20471 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20472 msm_routing_get_port_mixer,
20473 msm_routing_put_port_mixer),
20474 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20475 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20476 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20477 msm_routing_get_port_mixer,
20478 msm_routing_put_port_mixer),
20479 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20480 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20481 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20482 msm_routing_get_port_mixer,
20483 msm_routing_put_port_mixer),
20484 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20485 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20486 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20487 msm_routing_get_port_mixer,
20488 msm_routing_put_port_mixer),
20489 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20490 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20491 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20492 msm_routing_get_port_mixer,
20493 msm_routing_put_port_mixer),
20494 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20495 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20496 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20497 msm_routing_get_port_mixer,
20498 msm_routing_put_port_mixer),
20499 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20500 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20501 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20502 msm_routing_get_port_mixer,
20503 msm_routing_put_port_mixer),
20504 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20505 MSM_BACKEND_DAI_SEN_TDM_RX_0,
20506 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20507 msm_routing_get_port_mixer,
20508 msm_routing_put_port_mixer),
20509};
20510
20511static const struct snd_kcontrol_new sen_tdm_rx_1_port_mixer_controls[] = {
20512 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20513 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20514 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20515 msm_routing_get_port_mixer,
20516 msm_routing_put_port_mixer),
20517 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20518 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20519 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20520 msm_routing_get_port_mixer,
20521 msm_routing_put_port_mixer),
20522 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20523 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20524 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20525 msm_routing_get_port_mixer,
20526 msm_routing_put_port_mixer),
20527 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20528 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20529 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20530 msm_routing_get_port_mixer,
20531 msm_routing_put_port_mixer),
20532 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20533 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20534 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20535 msm_routing_get_port_mixer,
20536 msm_routing_put_port_mixer),
20537 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20538 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20539 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20540 msm_routing_get_port_mixer,
20541 msm_routing_put_port_mixer),
20542 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20543 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20544 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20545 msm_routing_get_port_mixer,
20546 msm_routing_put_port_mixer),
20547 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20548 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20549 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20550 msm_routing_get_port_mixer,
20551 msm_routing_put_port_mixer),
20552 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20553 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20554 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20555 msm_routing_get_port_mixer,
20556 msm_routing_put_port_mixer),
20557 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20558 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20559 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20560 msm_routing_get_port_mixer,
20561 msm_routing_put_port_mixer),
20562 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20563 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20564 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20565 msm_routing_get_port_mixer,
20566 msm_routing_put_port_mixer),
20567 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20568 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20569 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20570 msm_routing_get_port_mixer,
20571 msm_routing_put_port_mixer),
20572 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20573 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20574 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20575 msm_routing_get_port_mixer,
20576 msm_routing_put_port_mixer),
20577 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20578 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20579 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20580 msm_routing_get_port_mixer,
20581 msm_routing_put_port_mixer),
20582 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20583 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20584 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20585 msm_routing_get_port_mixer,
20586 msm_routing_put_port_mixer),
20587 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20588 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20589 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20590 msm_routing_get_port_mixer,
20591 msm_routing_put_port_mixer),
20592 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20593 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20594 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20595 msm_routing_get_port_mixer,
20596 msm_routing_put_port_mixer),
20597 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20598 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20599 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20600 msm_routing_get_port_mixer,
20601 msm_routing_put_port_mixer),
20602 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20603 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20604 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20605 msm_routing_get_port_mixer,
20606 msm_routing_put_port_mixer),
20607 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20608 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20609 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20610 msm_routing_get_port_mixer,
20611 msm_routing_put_port_mixer),
20612 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20613 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20614 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20615 msm_routing_get_port_mixer,
20616 msm_routing_put_port_mixer),
20617 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20618 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20619 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20620 msm_routing_get_port_mixer,
20621 msm_routing_put_port_mixer),
20622 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20623 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20624 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20625 msm_routing_get_port_mixer,
20626 msm_routing_put_port_mixer),
20627 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20628 MSM_BACKEND_DAI_SEN_TDM_RX_1,
20629 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20630 msm_routing_get_port_mixer,
20631 msm_routing_put_port_mixer),
20632};
20633
20634static const struct snd_kcontrol_new sen_tdm_rx_2_port_mixer_controls[] = {
20635 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20636 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20637 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20638 msm_routing_get_port_mixer,
20639 msm_routing_put_port_mixer),
20640 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20641 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20642 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20643 msm_routing_get_port_mixer,
20644 msm_routing_put_port_mixer),
20645 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20646 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20647 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20648 msm_routing_get_port_mixer,
20649 msm_routing_put_port_mixer),
20650 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20651 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20652 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20653 msm_routing_get_port_mixer,
20654 msm_routing_put_port_mixer),
20655 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20656 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20657 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20658 msm_routing_get_port_mixer,
20659 msm_routing_put_port_mixer),
20660 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20661 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20662 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20663 msm_routing_get_port_mixer,
20664 msm_routing_put_port_mixer),
20665 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20666 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20667 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20668 msm_routing_get_port_mixer,
20669 msm_routing_put_port_mixer),
20670 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20671 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20672 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20673 msm_routing_get_port_mixer,
20674 msm_routing_put_port_mixer),
20675 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20676 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20677 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20678 msm_routing_get_port_mixer,
20679 msm_routing_put_port_mixer),
20680 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20681 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20682 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20683 msm_routing_get_port_mixer,
20684 msm_routing_put_port_mixer),
20685 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20686 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20687 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20688 msm_routing_get_port_mixer,
20689 msm_routing_put_port_mixer),
20690 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20691 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20692 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20693 msm_routing_get_port_mixer,
20694 msm_routing_put_port_mixer),
20695 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20696 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20697 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20698 msm_routing_get_port_mixer,
20699 msm_routing_put_port_mixer),
20700 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20701 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20702 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20703 msm_routing_get_port_mixer,
20704 msm_routing_put_port_mixer),
20705 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20706 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20707 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20708 msm_routing_get_port_mixer,
20709 msm_routing_put_port_mixer),
20710 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20711 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20712 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20713 msm_routing_get_port_mixer,
20714 msm_routing_put_port_mixer),
20715 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20716 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20717 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20718 msm_routing_get_port_mixer,
20719 msm_routing_put_port_mixer),
20720 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20721 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20722 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20723 msm_routing_get_port_mixer,
20724 msm_routing_put_port_mixer),
20725 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20726 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20727 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20728 msm_routing_get_port_mixer,
20729 msm_routing_put_port_mixer),
20730 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20731 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20732 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20733 msm_routing_get_port_mixer,
20734 msm_routing_put_port_mixer),
20735 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20736 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20737 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20738 msm_routing_get_port_mixer,
20739 msm_routing_put_port_mixer),
20740 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20741 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20742 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20743 msm_routing_get_port_mixer,
20744 msm_routing_put_port_mixer),
20745 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20746 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20747 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20748 msm_routing_get_port_mixer,
20749 msm_routing_put_port_mixer),
20750 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20751 MSM_BACKEND_DAI_SEN_TDM_RX_2,
20752 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20753 msm_routing_get_port_mixer,
20754 msm_routing_put_port_mixer),
20755};
20756
20757static const struct snd_kcontrol_new sen_tdm_rx_3_port_mixer_controls[] = {
20758 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20759 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20760 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
20761 msm_routing_get_port_mixer,
20762 msm_routing_put_port_mixer),
20763 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20764 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20765 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
20766 msm_routing_get_port_mixer,
20767 msm_routing_put_port_mixer),
20768 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20769 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20770 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
20771 msm_routing_get_port_mixer,
20772 msm_routing_put_port_mixer),
20773 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20774 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20775 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
20776 msm_routing_get_port_mixer,
20777 msm_routing_put_port_mixer),
20778 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
20779 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20780 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
20781 msm_routing_get_port_mixer,
20782 msm_routing_put_port_mixer),
20783 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
20784 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20785 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
20786 msm_routing_get_port_mixer,
20787 msm_routing_put_port_mixer),
20788 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20789 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20790 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
20791 msm_routing_get_port_mixer,
20792 msm_routing_put_port_mixer),
20793 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
20794 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20795 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
20796 msm_routing_get_port_mixer,
20797 msm_routing_put_port_mixer),
20798 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
20799 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20800 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
20801 msm_routing_get_port_mixer,
20802 msm_routing_put_port_mixer),
20803 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
20804 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20805 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
20806 msm_routing_get_port_mixer,
20807 msm_routing_put_port_mixer),
20808 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
20809 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20810 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
20811 msm_routing_get_port_mixer,
20812 msm_routing_put_port_mixer),
20813 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
20814 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20815 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
20816 msm_routing_get_port_mixer,
20817 msm_routing_put_port_mixer),
20818 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
20819 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20820 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
20821 msm_routing_get_port_mixer,
20822 msm_routing_put_port_mixer),
20823 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
20824 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20825 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
20826 msm_routing_get_port_mixer,
20827 msm_routing_put_port_mixer),
20828 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
20829 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20830 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
20831 msm_routing_get_port_mixer,
20832 msm_routing_put_port_mixer),
20833 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
20834 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20835 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
20836 msm_routing_get_port_mixer,
20837 msm_routing_put_port_mixer),
20838 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
20839 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20840 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
20841 msm_routing_get_port_mixer,
20842 msm_routing_put_port_mixer),
20843 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
20844 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20845 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
20846 msm_routing_get_port_mixer,
20847 msm_routing_put_port_mixer),
20848 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
20849 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20850 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
20851 msm_routing_get_port_mixer,
20852 msm_routing_put_port_mixer),
20853 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
20854 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20855 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
20856 msm_routing_get_port_mixer,
20857 msm_routing_put_port_mixer),
20858 SOC_DOUBLE_EXT("SEN_TDM_TX_0", SND_SOC_NOPM,
20859 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20860 MSM_BACKEND_DAI_SEN_TDM_TX_0, 1, 0,
20861 msm_routing_get_port_mixer,
20862 msm_routing_put_port_mixer),
20863 SOC_DOUBLE_EXT("SEN_TDM_TX_1", SND_SOC_NOPM,
20864 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20865 MSM_BACKEND_DAI_SEN_TDM_TX_1, 1, 0,
20866 msm_routing_get_port_mixer,
20867 msm_routing_put_port_mixer),
20868 SOC_DOUBLE_EXT("SEN_TDM_TX_2", SND_SOC_NOPM,
20869 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20870 MSM_BACKEND_DAI_SEN_TDM_TX_2, 1, 0,
20871 msm_routing_get_port_mixer,
20872 msm_routing_put_port_mixer),
20873 SOC_DOUBLE_EXT("SEN_TDM_TX_3", SND_SOC_NOPM,
20874 MSM_BACKEND_DAI_SEN_TDM_RX_3,
20875 MSM_BACKEND_DAI_SEN_TDM_TX_3, 1, 0,
20876 msm_routing_get_port_mixer,
20877 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020878};
20879
Han Lu7b6c5882019-06-09 16:03:21 +080020880static const struct snd_kcontrol_new quin_tdm_rx_7_port_mixer_controls[] = {
Derek Chen728c5cc2019-06-26 14:21:52 -070020881 SOC_DOUBLE_EXT("TERT_TDM_TX_7", SND_SOC_NOPM,
20882 MSM_BACKEND_DAI_QUIN_TDM_RX_7,
20883 MSM_BACKEND_DAI_TERT_TDM_TX_7, 1, 0,
20884 msm_routing_get_port_mixer,
20885 msm_routing_put_port_mixer),
20886 SOC_DOUBLE_EXT("QUAT_TDM_TX_7", SND_SOC_NOPM,
20887 MSM_BACKEND_DAI_QUIN_TDM_RX_7,
20888 MSM_BACKEND_DAI_QUAT_TDM_TX_7, 1, 0,
20889 msm_routing_get_port_mixer,
20890 msm_routing_put_port_mixer),
Han Lu7b6c5882019-06-09 16:03:21 +080020891 SOC_DOUBLE_EXT("QUIN_TDM_TX_7", SND_SOC_NOPM,
20892 MSM_BACKEND_DAI_QUIN_TDM_RX_7,
20893 MSM_BACKEND_DAI_QUIN_TDM_TX_7, 1, 0,
20894 msm_routing_get_port_mixer,
20895 msm_routing_put_port_mixer),
20896};
20897
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020898static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020899 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20900 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020901 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20902 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020903 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20904 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020905 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20906 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020907 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
20908 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020909 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
20910 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020911 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20912 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020913 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20914 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020915 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
20916 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053020917 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20918 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070020919 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
20920 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
20921 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20922 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020923 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20924 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020925 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20926 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020927 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
20928 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020929 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
20930 msm_routing_put_port_mixer),
20931};
20932
20933static const struct snd_kcontrol_new sec_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020934 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
20935 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020936 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20937 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020938 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
20939 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020940 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20941 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020942 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20943 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020944 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20945 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020946 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
20947 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020948 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20949 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020950 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
20951 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053020952 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20953 msm_routing_put_port_mixer),
Karthikeyan Manic3700752019-03-11 18:33:53 -070020954 SOC_DOUBLE_EXT("SENARY_MI2S_TX", SND_SOC_NOPM,
20955 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
20956 MSM_BACKEND_DAI_SENARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
20957 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020958 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
20959 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020960 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
20961 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020962 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
20963 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020964 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
20965 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020966 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
20967 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020968 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
20969 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020970 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
20971 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080020972 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
20973 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020974};
20975
20976static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080020977 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
20978 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020979 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20980 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020981 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
20982 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020983 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20984 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020985 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
20986 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020987 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20988 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020989 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
20990 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020991 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20992 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020993 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
20994 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020995 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
20996 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080020997 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
20998 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020999 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21000 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021001 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
21002 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021003 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21004 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021005 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
21006 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021007 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21008 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021009 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21010 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21011 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21012 msm_routing_put_listen_mixer),
21013 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21014 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21015 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21016 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021017 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21018 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21019 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21020 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021021 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21022 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21023 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21024 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021025 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21026 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21027 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
21028 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021029};
21030
21031static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021032 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21033 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021034 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21035 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021036 SOC_DOUBLE_EXT("SLIMBUS_1_TX",
21037 SND_SOC_NOPM,
21038 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021039 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21040 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021041 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
21042 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021043 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21044 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021045 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
21046 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021047 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21048 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021049 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
21050 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021051 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21052 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021053 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
21054 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021055 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21056 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021057 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
21058 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021059 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21060 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021061 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
21062 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021063 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21064 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021065 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21066 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21067 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21068 msm_routing_put_listen_mixer),
21069 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21070 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21071 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21072 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021073 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21074 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21075 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21076 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021077 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21078 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21079 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21080 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021081 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21082 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21083 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
21084 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021085};
21086
21087static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021088 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21089 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021090 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21091 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021092 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21093 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021094 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21095 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021096 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
21097 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021098 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21099 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021100 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
21101 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021102 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21103 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021104 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
21105 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021106 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21107 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021108 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
21109 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021110 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21111 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021112 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
21113 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021114 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21115 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021116 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
21117 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021118 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21119 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021120 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21121 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21122 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21123 msm_routing_put_listen_mixer),
21124 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21125 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21126 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21127 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021128 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21129 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21130 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21131 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021132 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21133 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21134 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21135 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021136 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21137 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21138 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
21139 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021140};
21141
21142static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021143 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21144 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021145 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21146 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021147 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21148 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021149 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21150 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021151 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
21152 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021153 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21154 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021155 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
21156 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021157 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21158 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021159 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
21160 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021161 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21162 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021163 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
21164 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021165 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21166 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021167 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
21168 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021169 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21170 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021171 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
21172 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021173 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21174 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021175 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21176 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21177 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21178 msm_routing_put_listen_mixer),
21179 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21180 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21181 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21182 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021183 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21184 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21185 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21186 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021187 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21188 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21189 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21190 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021191 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21192 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21193 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
21194 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021195};
21196
21197static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021198 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21199 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021200 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21201 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021202 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21203 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021204 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21205 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021206 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
21207 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021208 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21209 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021210 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
21211 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021212 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21213 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021214 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
21215 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021216 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21217 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021218 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
21219 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021220 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21221 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021222 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
21223 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021224 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21225 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021226 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
21227 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021228 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21229 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021230 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21231 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21232 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21233 msm_routing_put_listen_mixer),
21234 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21235 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21236 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21237 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021238 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21239 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21240 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21241 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021242 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21243 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21244 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21245 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021246 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21247 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21248 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
21249 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021250};
21251
21252static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021253 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21254 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021255 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21256 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021257 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21258 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021259 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21260 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021261 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
21262 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021263 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21264 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021265 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
21266 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021267 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21268 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021269 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
21270 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021271 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21272 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021273 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
21274 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021275 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21276 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021277 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
21278 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021279 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21280 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021281 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
21282 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021283 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21284 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021285 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21286 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21287 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21288 msm_routing_put_listen_mixer),
21289 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21290 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21291 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21292 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021293 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21294 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21295 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21296 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021297 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21298 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21299 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21300 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021301 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21302 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21303 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
21304 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021305};
21306
21307static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021308 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21309 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021310 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21311 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021312 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21313 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021314 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21315 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021316 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
21317 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021318 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21319 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021320 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
21321 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021322 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21323 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021324 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
21325 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021326 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21327 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021328 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
21329 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021330 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21331 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021332 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
21333 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021334 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21335 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021336 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
21337 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021338 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21339 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021340 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21341 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21342 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21343 msm_routing_put_listen_mixer),
21344 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21345 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21346 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21347 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021348 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21349 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21350 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21351 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021352 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21353 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21354 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21355 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021356 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21357 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21358 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
21359 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021360};
21361
21362static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080021363 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
21364 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021365 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21366 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021367 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
21368 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021369 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21370 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021371 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
21372 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021373 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21374 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021375 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
21376 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021377 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21378 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021379 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
21380 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021381 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21382 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021383 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
21384 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021385 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21386 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021387 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
21388 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021389 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21390 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080021391 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
21392 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021393 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21394 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021395 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
21396 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
21397 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21398 msm_routing_put_listen_mixer),
21399 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
21400 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
21401 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21402 msm_routing_put_listen_mixer),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080021403 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_2", SND_SOC_NOPM,
21404 MSM_BACKEND_DAI_VA_CDC_DMA_TX_2,
21405 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21406 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021407 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
21408 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
21409 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21410 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021411 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
21412 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
21413 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
21414 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021415};
21416
21417static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
21418 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21419 0, 1, 0, msm_routing_get_switch_mixer,
21420 msm_routing_put_switch_mixer);
21421
21422static const struct snd_kcontrol_new slim1_fm_switch_mixer_controls =
21423 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21424 0, 1, 0, msm_routing_get_switch_mixer,
21425 msm_routing_put_switch_mixer);
21426
21427static const struct snd_kcontrol_new slim3_fm_switch_mixer_controls =
21428 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21429 0, 1, 0, msm_routing_get_switch_mixer,
21430 msm_routing_put_switch_mixer);
21431
21432static const struct snd_kcontrol_new slim4_fm_switch_mixer_controls =
21433 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21434 0, 1, 0, msm_routing_get_switch_mixer,
21435 msm_routing_put_switch_mixer);
21436
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053021437static const struct snd_kcontrol_new cdc_dma_wsa_switch_mixer_controls =
21438 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21439 0, 1, 0, msm_routing_get_switch_mixer,
21440 msm_routing_put_switch_mixer);
21441
21442static const struct snd_kcontrol_new cdc_dma_rx_switch_mixer_controls =
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053021443 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21444 0, 1, 0, msm_routing_get_switch_mixer,
21445 msm_routing_put_switch_mixer);
21446
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021447static const struct snd_kcontrol_new slim6_fm_switch_mixer_controls =
21448 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21449 0, 1, 0, msm_routing_get_switch_mixer,
21450 msm_routing_put_switch_mixer);
21451
21452static const struct snd_kcontrol_new pcm_rx_switch_mixer_controls =
21453 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21454 0, 1, 0, msm_routing_get_fm_pcmrx_switch_mixer,
21455 msm_routing_put_fm_pcmrx_switch_mixer);
21456
21457static const struct snd_kcontrol_new int0_mi2s_rx_switch_mixer_controls =
21458 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21459 0, 1, 0, msm_routing_get_int0_mi2s_switch_mixer,
21460 msm_routing_put_int0_mi2s_switch_mixer);
21461
21462static const struct snd_kcontrol_new int4_mi2s_rx_switch_mixer_controls =
21463 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21464 0, 1, 0, msm_routing_get_int4_mi2s_switch_mixer,
21465 msm_routing_put_int4_mi2s_switch_mixer);
21466
21467static const struct snd_kcontrol_new pri_mi2s_rx_switch_mixer_controls =
21468 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21469 0, 1, 0, msm_routing_get_pri_mi2s_switch_mixer,
21470 msm_routing_put_pri_mi2s_switch_mixer);
21471
21472static const struct snd_kcontrol_new sec_mi2s_rx_switch_mixer_controls =
21473 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21474 0, 1, 0, msm_routing_get_sec_mi2s_switch_mixer,
21475 msm_routing_put_sec_mi2s_switch_mixer);
21476
21477static const struct snd_kcontrol_new tert_mi2s_rx_switch_mixer_controls =
21478 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21479 0, 1, 0, msm_routing_get_tert_mi2s_switch_mixer,
21480 msm_routing_put_tert_mi2s_switch_mixer);
21481
21482static const struct snd_kcontrol_new quat_mi2s_rx_switch_mixer_controls =
21483 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21484 0, 1, 0, msm_routing_get_quat_mi2s_switch_mixer,
21485 msm_routing_put_quat_mi2s_switch_mixer);
21486
Rohit Kumara5077932017-09-10 22:05:05 +053021487static const struct snd_kcontrol_new quin_mi2s_rx_switch_mixer_controls =
21488 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21489 0, 1, 0, msm_routing_get_quin_mi2s_switch_mixer,
21490 msm_routing_put_quin_mi2s_switch_mixer);
21491
Karthikeyan Manic3700752019-03-11 18:33:53 -070021492static const struct snd_kcontrol_new sen_mi2s_rx_switch_mixer_controls =
21493 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21494 0, 1, 0, msm_routing_get_sen_mi2s_switch_mixer,
21495 msm_routing_put_sen_mi2s_switch_mixer);
21496
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021497static const struct snd_kcontrol_new hfp_pri_aux_switch_mixer_controls =
21498 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21499 0, 1, 0, msm_routing_get_hfp_switch_mixer,
21500 msm_routing_put_hfp_switch_mixer);
21501
21502static const struct snd_kcontrol_new hfp_aux_switch_mixer_controls =
21503 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21504 0, 1, 0, msm_routing_get_hfp_switch_mixer,
21505 msm_routing_put_hfp_switch_mixer);
21506
21507static const struct snd_kcontrol_new hfp_int_switch_mixer_controls =
21508 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21509 0, 1, 0, msm_routing_get_hfp_switch_mixer,
21510 msm_routing_put_hfp_switch_mixer);
21511
21512static const struct snd_kcontrol_new hfp_slim7_switch_mixer_controls =
21513 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21514 0, 1, 0, msm_routing_get_hfp_switch_mixer,
21515 msm_routing_put_hfp_switch_mixer);
21516
21517static const struct snd_kcontrol_new usb_switch_mixer_controls =
21518 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21519 0, 1, 0, msm_routing_get_usb_switch_mixer,
21520 msm_routing_put_usb_switch_mixer);
21521
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080021522static const struct snd_kcontrol_new a2dp_slim7_switch_mixer_controls =
21523 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21524 0, 1, 0, msm_routing_a2dp_switch_mixer_get,
21525 msm_routing_a2dp_switch_mixer_put);
21526
Zhou Songcaa541d2019-02-19 18:37:47 +080021527static const struct snd_kcontrol_new sco_slim7_switch_mixer_controls =
21528 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
21529 0, 1, 0, msm_routing_sco_switch_mixer_get,
21530 msm_routing_sco_switch_mixer_put);
21531
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021532static const struct soc_enum lsm_port_enum =
21533 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_port_text), lsm_port_text);
21534
21535static const char * const lsm_func_text[] = {
21536 "None", "AUDIO", "BEACON", "ULTRASOUND", "SWAUDIO",
21537};
21538static const struct soc_enum lsm_func_enum =
21539 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_func_text), lsm_func_text);
21540
21541static const struct snd_kcontrol_new lsm_controls[] = {
21542 /* kcontrol of lsm_function */
21543 SOC_ENUM_EXT(SLIMBUS_0_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21544 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21545 SOC_ENUM_EXT(SLIMBUS_1_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21546 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21547 SOC_ENUM_EXT(SLIMBUS_2_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21548 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21549 SOC_ENUM_EXT(SLIMBUS_3_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21550 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21551 SOC_ENUM_EXT(SLIMBUS_4_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21552 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21553 SOC_ENUM_EXT(SLIMBUS_5_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21554 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21555 SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21556 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21557 SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21558 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
21559 SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21560 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021561 SOC_ENUM_EXT(TX_CDC_DMA_TX_3_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21562 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021563 SOC_ENUM_EXT(QUIN_TDM_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
21564 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021565 /* kcontrol of lsm_port */
21566 SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
21567 msm_routing_lsm_port_get,
21568 msm_routing_lsm_port_put),
21569 SOC_ENUM_EXT("LSM2 Port", lsm_port_enum,
21570 msm_routing_lsm_port_get,
21571 msm_routing_lsm_port_put),
21572 SOC_ENUM_EXT("LSM3 Port", lsm_port_enum,
21573 msm_routing_lsm_port_get,
21574 msm_routing_lsm_port_put),
21575 SOC_ENUM_EXT("LSM4 Port", lsm_port_enum,
21576 msm_routing_lsm_port_get,
21577 msm_routing_lsm_port_put),
21578 SOC_ENUM_EXT("LSM5 Port", lsm_port_enum,
21579 msm_routing_lsm_port_get,
21580 msm_routing_lsm_port_put),
21581 SOC_ENUM_EXT("LSM6 Port", lsm_port_enum,
21582 msm_routing_lsm_port_get,
21583 msm_routing_lsm_port_put),
21584 SOC_ENUM_EXT("LSM7 Port", lsm_port_enum,
21585 msm_routing_lsm_port_get,
21586 msm_routing_lsm_port_put),
21587 SOC_ENUM_EXT("LSM8 Port", lsm_port_enum,
21588 msm_routing_lsm_port_get,
21589 msm_routing_lsm_port_put),
21590};
21591
21592static const char * const aanc_slim_0_rx_text[] = {
21593 "ZERO", "SLIMBUS_0_TX", "SLIMBUS_1_TX", "SLIMBUS_2_TX", "SLIMBUS_3_TX",
21594 "SLIMBUS_4_TX", "SLIMBUS_5_TX", "SLIMBUS_6_TX"
21595};
21596
21597static const struct soc_enum aanc_slim_0_rx_enum =
21598 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(aanc_slim_0_rx_text),
21599 aanc_slim_0_rx_text);
21600
21601static const struct snd_kcontrol_new aanc_slim_0_rx_mux[] = {
21602 SOC_ENUM_EXT("AANC_SLIM_0_RX MUX", aanc_slim_0_rx_enum,
21603 msm_routing_slim_0_rx_aanc_mux_get,
21604 msm_routing_slim_0_rx_aanc_mux_put)
21605};
21606
Sudheer Papothic07b37a2018-05-04 05:56:47 +053021607static int msm_routing_aanc_noise_level_get(struct snd_kcontrol *kcontrol,
21608 struct snd_ctl_elem_value *ucontrol)
21609{
21610 ucontrol->value.integer.value[0] = aanc_level;
21611
21612 return 0;
21613}
21614
21615static int msm_routing_aanc_noise_level_put(struct snd_kcontrol *kcontrol,
21616 struct snd_ctl_elem_value *ucontrol)
21617{
21618 int ret = 0;
21619
21620 mutex_lock(&routing_lock);
21621 aanc_level = ucontrol->value.integer.value[0];
21622 pr_debug("%s: value: %ld\n",
21623 __func__, ucontrol->value.integer.value[0]);
21624 ret = afe_set_aanc_noise_level(aanc_level);
21625 mutex_unlock(&routing_lock);
21626
21627 return ret;
21628}
21629
21630static const struct snd_kcontrol_new aanc_noise_level[] = {
21631 SOC_SINGLE_EXT("AANC Noise Level", SND_SOC_NOPM, 0, 255,
21632 0, msm_routing_aanc_noise_level_get, msm_routing_aanc_noise_level_put)
21633};
21634
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021635static int msm_routing_get_stereo_to_custom_stereo_control(
21636 struct snd_kcontrol *kcontrol,
21637 struct snd_ctl_elem_value *ucontrol)
21638{
21639 ucontrol->value.integer.value[0] = is_custom_stereo_on;
21640 return 0;
21641}
21642
21643static int msm_routing_put_stereo_to_custom_stereo_control(
21644 struct snd_kcontrol *kcontrol,
21645 struct snd_ctl_elem_value *ucontrol)
21646{
21647 int flag = 0, i = 0, rc = 0, idx = 0;
21648 int be_index = 0, port_id, topo_id;
21649 unsigned int session_id = 0;
21650 uint16_t op_FL_ip_FL_weight = 0;
21651 uint16_t op_FL_ip_FR_weight = 0;
21652 uint16_t op_FR_ip_FL_weight = 0;
21653 uint16_t op_FR_ip_FR_weight = 0;
21654
21655 flag = ucontrol->value.integer.value[0];
21656 pr_debug("%s E flag %d\n", __func__, flag);
21657
21658 if ((is_custom_stereo_on && flag) || (!is_custom_stereo_on && !flag)) {
21659 pr_err("%s: is_custom_stereo_on %d, flag %d\n",
21660 __func__, is_custom_stereo_on, flag);
21661 return 0;
21662 }
21663 is_custom_stereo_on = flag ? true : false;
21664 pr_debug("%s:is_custom_stereo_on %d\n", __func__, is_custom_stereo_on);
21665 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
21666 port_id = msm_bedais[be_index].port_id;
21667 if (!msm_bedais[be_index].active)
21668 continue;
21669 if ((port_id != SLIMBUS_0_RX) &&
21670 (port_id != RT_PROXY_PORT_001_RX) &&
21671 (port_id != AFE_PORT_ID_PRIMARY_MI2S_RX) &&
21672 (port_id != AFE_PORT_ID_INT4_MI2S_RX))
21673 continue;
21674
21675 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
21676 MSM_FRONTEND_DAI_MM_SIZE) {
21677 if (fe_dai_map[i][SESSION_TYPE_RX].perf_mode !=
21678 LEGACY_PCM_MODE)
21679 goto skip_send_custom_stereo;
21680 session_id =
21681 fe_dai_map[i][SESSION_TYPE_RX].strm_id;
21682 if (is_custom_stereo_on) {
21683 op_FL_ip_FL_weight =
21684 Q14_GAIN_ZERO_POINT_FIVE;
21685 op_FL_ip_FR_weight =
21686 Q14_GAIN_ZERO_POINT_FIVE;
21687 op_FR_ip_FL_weight =
21688 Q14_GAIN_ZERO_POINT_FIVE;
21689 op_FR_ip_FR_weight =
21690 Q14_GAIN_ZERO_POINT_FIVE;
21691 } else {
21692 op_FL_ip_FL_weight = Q14_GAIN_UNITY;
21693 op_FL_ip_FR_weight = 0;
21694 op_FR_ip_FL_weight = 0;
21695 op_FR_ip_FR_weight = Q14_GAIN_UNITY;
21696 }
21697 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
21698 unsigned long copp =
21699 session_copp_map[i]
21700 [SESSION_TYPE_RX][be_index];
21701 if (!test_bit(idx, &copp))
21702 goto skip_send_custom_stereo;
21703 topo_id = adm_get_topology_for_port_copp_idx(
21704 msm_bedais[be_index].port_id, idx);
21705 if (topo_id < 0)
21706 pr_debug("%s:Err:custom stereo topo %d",
21707 __func__, topo_id);
21708 pr_debug("idx %d\n", idx);
21709 if (topo_id == DS2_ADM_COPP_TOPOLOGY_ID)
21710 rc = msm_ds2_dap_set_custom_stereo_onoff
21711 (msm_bedais[be_index].port_id,
21712 idx, is_custom_stereo_on);
21713 else if (topo_id == DOLBY_ADM_COPP_TOPOLOGY_ID)
21714 rc = dolby_dap_set_custom_stereo_onoff(
21715 msm_bedais[be_index].port_id,
21716 idx, is_custom_stereo_on);
21717 else
21718 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd
21719 (msm_bedais[be_index].port_id,
21720 idx, session_id,
21721 op_FL_ip_FL_weight,
21722 op_FL_ip_FR_weight,
21723 op_FR_ip_FL_weight,
21724 op_FR_ip_FR_weight);
21725 if (rc < 0)
21726skip_send_custom_stereo:
21727 pr_err("%s: err setting custom stereo\n",
21728 __func__);
21729 }
21730
21731 }
21732 }
21733 return 0;
21734}
21735
21736static const struct snd_kcontrol_new stereo_to_custom_stereo_controls[] = {
21737 SOC_SINGLE_EXT("Set Custom Stereo OnOff", SND_SOC_NOPM, 0,
21738 1, 0, msm_routing_get_stereo_to_custom_stereo_control,
21739 msm_routing_put_stereo_to_custom_stereo_control),
21740};
21741
21742static int msm_routing_get_app_type_cfg_control(struct snd_kcontrol *kcontrol,
21743 struct snd_ctl_elem_value *ucontrol)
21744{
21745 return 0;
21746}
21747
21748static int msm_routing_put_app_type_cfg_control(struct snd_kcontrol *kcontrol,
21749 struct snd_ctl_elem_value *ucontrol)
21750{
21751 int i = 0, j;
21752 int num_app_types = ucontrol->value.integer.value[i++];
21753
21754 pr_debug("%s\n", __func__);
21755
21756 memset(app_type_cfg, 0, MAX_APP_TYPES*
21757 sizeof(struct msm_pcm_routing_app_type_data));
21758 if (num_app_types > MAX_APP_TYPES) {
21759 pr_err("%s: number of app types exceed the max supported\n",
21760 __func__);
21761 return -EINVAL;
21762 }
21763 for (j = 0; j < num_app_types; j++) {
21764 app_type_cfg[j].app_type =
21765 ucontrol->value.integer.value[i++];
21766 app_type_cfg[j].sample_rate =
21767 ucontrol->value.integer.value[i++];
21768 app_type_cfg[j].bit_width =
21769 ucontrol->value.integer.value[i++];
21770 }
21771
21772 return 0;
21773}
21774
21775static int msm_routing_put_app_type_gain_control(struct snd_kcontrol *kcontrol,
21776 struct snd_ctl_elem_value *ucontrol)
21777{
21778 int j, fe_id, be_id, port_type;
21779 int ret = 0;
21780 unsigned long copp;
21781 struct msm_pcm_routing_bdai_data *bedai;
21782 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
21783 SESSION_TYPE_RX;
21784 int app_type = ucontrol->value.integer.value[1];
21785 int gain = (ucontrol->value.integer.value[2] +
21786 ucontrol->value.integer.value[3])/2;
21787
21788 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
21789 MSM_AFE_PORT_TYPE_TX;
21790
21791 mutex_lock(&routing_lock);
21792 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
21793 if (is_be_dai_extproc(be_id))
21794 continue;
21795
21796 bedai = &msm_bedais[be_id];
21797 if (afe_get_port_type(bedai->port_id) != port_type)
21798 continue;
21799
21800 if (!bedai->active)
21801 continue;
21802
21803 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
21804 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
21805 continue;
21806
21807 if (app_type !=
21808 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
21809 continue;
21810
21811 copp = session_copp_map[fe_id][dir][be_id];
21812 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
21813 if (!test_bit(j, &copp))
21814 continue;
21815 ret |= adm_set_volume(bedai->port_id, j, gain);
21816 }
21817 }
21818 }
21819 mutex_unlock(&routing_lock);
21820 return ret ? -EINVAL : 0;
21821}
21822
21823static const struct snd_kcontrol_new app_type_cfg_controls[] = {
21824 SOC_SINGLE_MULTI_EXT("App Type Config", SND_SOC_NOPM, 0,
Guodong Hu2479acc2019-05-24 10:15:33 +080021825 0x7FFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021826 msm_routing_put_app_type_cfg_control),
21827 SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
21828 0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
21829};
21830
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021831static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,
21832 struct snd_ctl_elem_value *ucontrol)
21833{
21834 int copp_idx, fe_id, be_id, port_type;
21835 int ret = 0;
21836 unsigned long copp;
21837 struct msm_pcm_routing_bdai_data *bedai;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021838 u8 *packed_params = NULL;
21839 struct param_hdr_v3 param_hdr;
21840 u32 packed_param_size = (sizeof(struct param_hdr_v3) +
21841 sizeof(uint32_t));
21842
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021843 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
21844 SESSION_TYPE_RX;
21845 int app_type = ucontrol->value.integer.value[1];
21846 int module_id = ucontrol->value.integer.value[2];
21847 int instance_id = ucontrol->value.integer.value[3];
21848 int param_id = ucontrol->value.integer.value[4];
21849 int param_value = ucontrol->value.integer.value[5];
21850
21851 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
21852 MSM_AFE_PORT_TYPE_TX;
21853 pr_debug("%s app_type:%d mod_id:%d instance_id:%d param_id:%d value:%d\n",
21854 __func__, app_type, module_id,
21855 instance_id, param_id, param_value);
21856
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021857 packed_params = kzalloc(packed_param_size, GFP_KERNEL);
21858 if (!packed_params)
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021859 return -ENOMEM;
21860
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021861 memset(&param_hdr, 0, sizeof(param_hdr));
21862 param_hdr.module_id = module_id;
21863 param_hdr.instance_id = instance_id;
21864 param_hdr.param_id = param_id;
21865 param_hdr.param_size = sizeof(uint32_t);
21866
21867 packed_param_size = 0;
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021868
21869 mutex_lock(&routing_lock);
21870 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
21871 if (is_be_dai_extproc(be_id))
21872 continue;
21873
21874 bedai = &msm_bedais[be_id];
21875 if (afe_get_port_type(bedai->port_id) != port_type)
21876 continue;
21877
21878 if (!bedai->active)
21879 continue;
21880
21881 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
21882 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
21883 continue;
21884
21885 if (app_type !=
21886 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
21887 continue;
21888
21889 copp = session_copp_map[fe_id][dir][be_id];
21890 for (copp_idx = 0; copp_idx < MAX_COPPS_PER_PORT;
21891 copp_idx++) {
21892 if (!test_bit(copp_idx, &copp))
21893 continue;
21894
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021895 ret = q6common_pack_pp_params(packed_params,
21896 &param_hdr,
21897 (u8 *) &param_value,
21898 &packed_param_size);
21899 if (ret) {
21900 pr_err("%s: Failed to pack params, error %d\n",
21901 __func__, ret);
21902 goto done;
21903 }
21904
21905 ret = adm_set_pp_params(bedai->port_id,
21906 copp_idx, NULL,
21907 packed_params,
21908 packed_param_size);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021909 if (ret) {
21910 pr_err("%s: Setting param failed with err=%d\n",
21911 __func__, ret);
21912 ret = -EINVAL;
21913 goto done;
21914 }
21915 }
21916 }
21917 }
21918done:
21919 mutex_unlock(&routing_lock);
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080021920 kfree(packed_params);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070021921 return ret;
21922}
21923
21924static const struct snd_kcontrol_new module_cfg_controls[] = {
21925 SOC_SINGLE_MULTI_EXT("Audio Effect", SND_SOC_NOPM, 0,
21926 0x2000, 0, 6, NULL, msm_routing_put_module_cfg_control)
21927};
21928
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021929static int msm_routing_get_lsm_app_type_cfg_control(
21930 struct snd_kcontrol *kcontrol,
21931 struct snd_ctl_elem_value *ucontrol)
21932{
Meng Wangadbca4f2018-10-29 14:30:13 +080021933 int shift = ((struct soc_multi_mixer_control *)
21934 kcontrol->private_value)->shift;
21935 int i = 0, j = 0;
21936
21937 ucontrol->value.integer.value[i] = num_app_cfg_types;
21938
21939 for (j = 0; j < num_app_cfg_types; ++j) {
21940 ucontrol->value.integer.value[++i] =
21941 lsm_app_type_cfg[j].app_type;
21942 ucontrol->value.integer.value[++i] =
21943 lsm_app_type_cfg[j].sample_rate;
21944 ucontrol->value.integer.value[++i] =
21945 lsm_app_type_cfg[j].bit_width;
21946 if (shift == 1)
21947 ucontrol->value.integer.value[++i] =
21948 lsm_app_type_cfg[j].num_out_channels;
21949 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021950 return 0;
21951}
21952
21953static int msm_routing_put_lsm_app_type_cfg_control(
21954 struct snd_kcontrol *kcontrol,
21955 struct snd_ctl_elem_value *ucontrol)
21956{
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070021957 int shift = ((struct soc_multi_mixer_control *)
21958 kcontrol->private_value)->shift;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021959 int i = 0, j;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021960
Ajit Pandey248ce562019-09-06 10:51:02 +053021961 if (ucontrol->value.integer.value[0] > MAX_APP_TYPES) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021962 pr_err("%s: number of app types exceed the max supported\n",
21963 __func__);
21964 return -EINVAL;
21965 }
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070021966
Ajit Pandey248ce562019-09-06 10:51:02 +053021967 num_app_cfg_types = ucontrol->value.integer.value[i++];
21968 memset(lsm_app_type_cfg, 0, MAX_APP_TYPES*
21969 sizeof(struct msm_pcm_routing_app_type_data));
21970
Meng Wangadbca4f2018-10-29 14:30:13 +080021971 for (j = 0; j < num_app_cfg_types; j++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021972 lsm_app_type_cfg[j].app_type =
21973 ucontrol->value.integer.value[i++];
21974 lsm_app_type_cfg[j].sample_rate =
21975 ucontrol->value.integer.value[i++];
21976 lsm_app_type_cfg[j].bit_width =
21977 ucontrol->value.integer.value[i++];
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070021978 /* Shift of 1 indicates this is V2 mixer control */
21979 if (shift == 1)
21980 lsm_app_type_cfg[j].num_out_channels =
21981 ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021982 }
21983
21984 return 0;
21985}
21986
21987static const struct snd_kcontrol_new lsm_app_type_cfg_controls[] = {
21988 SOC_SINGLE_MULTI_EXT("Listen App Type Config", SND_SOC_NOPM, 0,
21989 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
21990 msm_routing_put_lsm_app_type_cfg_control),
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070021991 SOC_SINGLE_MULTI_EXT("Listen App Type Config V2", SND_SOC_NOPM, 1,
21992 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
21993 msm_routing_put_lsm_app_type_cfg_control),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021994};
21995
21996static int msm_routing_get_use_ds1_or_ds2_control(
21997 struct snd_kcontrol *kcontrol,
21998 struct snd_ctl_elem_value *ucontrol)
21999{
22000 ucontrol->value.integer.value[0] = is_ds2_on;
22001 return 0;
22002}
22003
22004static int msm_routing_put_use_ds1_or_ds2_control(
22005 struct snd_kcontrol *kcontrol,
22006 struct snd_ctl_elem_value *ucontrol)
22007{
22008 is_ds2_on = ucontrol->value.integer.value[0];
22009 return 0;
22010}
22011
22012static const struct snd_kcontrol_new use_ds1_or_ds2_controls[] = {
22013 SOC_SINGLE_EXT("DS2 OnOff", SND_SOC_NOPM, 0,
22014 1, 0, msm_routing_get_use_ds1_or_ds2_control,
22015 msm_routing_put_use_ds1_or_ds2_control),
22016};
22017
Ramlal Karrab6ef9e02019-08-14 17:53:29 +053022018static int msm_routing_get_hifi_filter_control(
22019 struct snd_kcontrol *kcontrol,
22020 struct snd_ctl_elem_value *ucontrol)
22021{
22022 ucontrol->value.integer.value[0] = hifi_filter_enabled;
22023 return 0;
22024}
22025
22026static int msm_routing_put_hifi_filter_control(
22027 struct snd_kcontrol *kcontrol,
22028 struct snd_ctl_elem_value *ucontrol)
22029{
22030 hifi_filter_enabled = ucontrol->value.integer.value[0];
22031 return 0;
22032}
22033
22034static const struct snd_kcontrol_new hifi_filter_controls[] = {
22035 SOC_SINGLE_EXT("HiFi Filter", SND_SOC_NOPM, 0,
22036 1, 0, msm_routing_get_hifi_filter_control,
22037 msm_routing_put_hifi_filter_control),
22038};
22039
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022040int msm_routing_get_rms_value_control(struct snd_kcontrol *kcontrol,
22041 struct snd_ctl_elem_value *ucontrol) {
22042 int rc = 0;
22043 int be_idx = 0;
22044 char *param_value;
22045 int *update_param_value;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080022046 uint32_t param_size = (RMS_PAYLOAD_LEN + 1) * sizeof(uint32_t);
22047 struct param_hdr_v3 param_hdr;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022048
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080022049 param_value = kzalloc(param_size, GFP_KERNEL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022050 if (!param_value)
22051 return -ENOMEM;
22052
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080022053 memset(&param_hdr, 0, sizeof(param_hdr));
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022054 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++)
22055 if (msm_bedais[be_idx].port_id == SLIMBUS_0_TX)
22056 break;
22057 if ((be_idx < MSM_BACKEND_DAI_MAX) && msm_bedais[be_idx].active) {
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080022058 param_hdr.module_id = RMS_MODULEID_APPI_PASSTHRU;
22059 param_hdr.instance_id = INSTANCE_ID_0;
22060 param_hdr.param_id = RMS_PARAM_FIRST_SAMPLE;
22061 param_hdr.param_size = param_size;
22062 rc = adm_get_pp_params(SLIMBUS_0_TX, 0, ADM_CLIENT_ID_DEFAULT,
22063 NULL, &param_hdr, (u8 *) param_value);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022064 if (rc) {
22065 pr_err("%s: get parameters failed:%d\n", __func__, rc);
22066 kfree(param_value);
22067 return -EINVAL;
22068 }
22069 update_param_value = (int *)param_value;
22070 ucontrol->value.integer.value[0] = update_param_value[0];
22071
22072 pr_debug("%s: FROM DSP value[0] 0x%x\n",
22073 __func__, update_param_value[0]);
22074 }
22075 kfree(param_value);
22076 return 0;
22077}
22078
22079static int msm_voc_session_id_put(struct snd_kcontrol *kcontrol,
22080 struct snd_ctl_elem_value *ucontrol)
22081{
22082 voc_session_id = ucontrol->value.integer.value[0];
22083
22084 pr_debug("%s: voc_session_id=%u\n", __func__, voc_session_id);
22085
22086 return 0;
22087}
22088
22089static int msm_voc_session_id_get(struct snd_kcontrol *kcontrol,
22090 struct snd_ctl_elem_value *ucontrol)
22091{
22092 ucontrol->value.integer.value[0] = voc_session_id;
22093
22094 return 0;
22095}
22096
22097static struct snd_kcontrol_new msm_voc_session_controls[] = {
22098 SOC_SINGLE_MULTI_EXT("Voc VSID", SND_SOC_NOPM, 0,
22099 0xFFFFFFFF, 0, 1, msm_voc_session_id_get,
22100 msm_voc_session_id_put),
22101};
22102
22103static int msm_sound_focus_info(struct snd_kcontrol *kcontrol,
22104 struct snd_ctl_elem_info *uinfo)
22105{
22106 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
22107 uinfo->count = sizeof(struct sound_focus_param);
22108
22109 return 0;
22110}
22111
22112static int msm_voice_sound_focus_put(struct snd_kcontrol *kcontrol,
22113 struct snd_ctl_elem_value *ucontrol)
22114{
22115 int ret = 0;
22116 struct sound_focus_param soundFocusData;
22117
22118 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
22119 sizeof(struct sound_focus_param));
22120 ret = voc_set_sound_focus(soundFocusData);
22121 if (ret) {
22122 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
22123 __func__, ret);
22124
22125 ret = -EINVAL;
22126 }
22127
22128 return ret;
22129}
22130
22131static int msm_voice_sound_focus_get(struct snd_kcontrol *kcontrol,
22132 struct snd_ctl_elem_value *ucontrol)
22133{
22134 int ret = 0;
22135 struct sound_focus_param soundFocusData;
22136
22137 memset(&soundFocusData, 0, sizeof(struct sound_focus_param));
22138
22139 ret = voc_get_sound_focus(&soundFocusData);
22140 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070022141 pr_debug("%s: Error getting Sound Focus Params, err=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022142 __func__, ret);
22143
22144 ret = -EINVAL;
22145 goto done;
22146 }
22147 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
22148 sizeof(struct sound_focus_param));
22149
22150done:
22151 return ret;
22152}
22153
22154static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
22155 struct snd_ctl_elem_info *uinfo)
22156{
22157 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
22158 uinfo->count = sizeof(struct source_tracking_param);
22159
22160 return 0;
22161}
22162
22163static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
22164 struct snd_ctl_elem_value *ucontrol)
22165{
Meng Wang92edfde2018-04-24 12:18:37 +080022166 int ret = 0;
22167 struct source_tracking_param sourceTrackingData;
22168
22169 memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
22170
22171 ret = voc_get_source_tracking(&sourceTrackingData);
22172 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070022173 pr_debug("%s: Error getting Source Tracking Params, err=%d\n",
Meng Wang92edfde2018-04-24 12:18:37 +080022174 __func__, ret);
22175
22176 ret = -EINVAL;
22177 goto done;
22178 }
22179 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
22180 sizeof(struct source_tracking_param));
22181
22182done:
22183 return ret;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022184}
22185
22186static int msm_audio_get_copp_idx_from_port_id(int port_id, int session_type,
22187 int *copp_idx)
22188{
22189 int i, idx, be_idx;
22190 int ret = 0;
22191 unsigned long copp;
22192
22193 pr_debug("%s: Enter, port_id=%d\n", __func__, port_id);
22194
22195 ret = q6audio_validate_port(port_id);
22196 if (ret < 0) {
22197 pr_err("%s: port validation failed id 0x%x ret %d\n",
22198 __func__, port_id, ret);
22199
22200 ret = -EINVAL;
22201 goto done;
22202 }
22203
22204 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
22205 if (msm_bedais[be_idx].port_id == port_id)
22206 break;
22207 }
22208 if (be_idx >= MSM_BACKEND_DAI_MAX) {
22209 pr_err("%s: Invalid be id %d\n", __func__, be_idx);
22210
22211 ret = -EINVAL;
22212 goto done;
22213 }
22214
22215 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053022216 MSM_FRONTEND_DAI_MAX) {
22217 if (!(is_mm_lsm_fe_id(i) &&
22218 route_check_fe_id_adm_support(i)))
22219 continue;
22220
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022221 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
22222 copp = session_copp_map[i]
22223 [session_type][be_idx];
22224 if (test_bit(idx, &copp))
22225 break;
22226 }
22227 if (idx >= MAX_COPPS_PER_PORT)
22228 continue;
22229 else
22230 break;
22231 }
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053022232 if (i >= MSM_FRONTEND_DAI_MAX) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070022233 pr_debug("%s: Invalid FE, exiting\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022234
22235 ret = -EINVAL;
22236 goto done;
22237 }
22238 *copp_idx = idx;
22239 pr_debug("%s: copp_idx=%d\n", __func__, *copp_idx);
22240
22241done:
22242 return ret;
22243}
22244
22245static int msm_audio_sound_focus_derive_port_id(struct snd_kcontrol *kcontrol,
22246 const char *prefix, int *port_id)
22247{
22248 int ret = 0;
22249
22250 pr_debug("%s: Enter, prefix:%s\n", __func__, prefix);
22251
22252 /*
22253 * Mixer control name will be like "Sound Focus Audio Tx SLIMBUS_0"
22254 * where the prefix is "Sound Focus Audio Tx ". Skip the prefix
22255 * and compare the string with the backend name to derive the port id.
22256 */
22257 if (!strcmp(kcontrol->id.name + strlen(prefix),
22258 "SLIMBUS_0")) {
22259 *port_id = SLIMBUS_0_TX;
22260 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22261 "TERT_MI2S")) {
22262 *port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
22263 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22264 "INT3_MI2S")) {
22265 *port_id = AFE_PORT_ID_INT3_MI2S_TX;
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053022266 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22267 "VA_CDC_DMA_TX_0")) {
22268 *port_id = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053022269 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22270 "TX_CDC_DMA_TX_3")) {
22271 *port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022272 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22273 "QUIN_TDM_TX_0")) {
22274 *port_id = AFE_PORT_ID_QUINARY_TDM_TX;
Sachin Mohan Gadagd34b26d2018-07-16 19:53:19 +053022275 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
22276 "PRIMARY_TDM")) {
22277 *port_id = AFE_PORT_ID_PRIMARY_TDM_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022278 } else {
22279 pr_err("%s: mixer ctl name=%s, could not derive valid port id\n",
22280 __func__, kcontrol->id.name);
22281
22282 ret = -EINVAL;
22283 goto done;
22284 }
22285 pr_debug("%s: mixer ctl name=%s, derived port_id=%d\n",
22286 __func__, kcontrol->id.name, *port_id);
22287
22288done:
22289 return ret;
22290}
22291
22292static int msm_audio_sound_focus_put(struct snd_kcontrol *kcontrol,
22293 struct snd_ctl_elem_value *ucontrol)
22294{
22295 int ret = 0;
22296 struct sound_focus_param soundFocusData;
22297 int port_id, copp_idx;
22298
22299 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
22300 "Sound Focus Audio Tx ", &port_id);
22301 if (ret != 0) {
22302 pr_err("%s: Error in deriving port id, err=%d\n",
22303 __func__, ret);
22304
22305 ret = -EINVAL;
22306 goto done;
22307 }
22308
22309 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
22310 &copp_idx);
22311 if (ret) {
22312 pr_err("%s: Could not get copp idx for port_id=%d\n",
22313 __func__, port_id);
22314
22315 ret = -EINVAL;
22316 goto done;
22317 }
22318
22319 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
22320 sizeof(struct sound_focus_param));
22321
22322 ret = adm_set_sound_focus(port_id, copp_idx, soundFocusData);
22323 if (ret) {
22324 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
22325 __func__, ret);
22326
22327 ret = -EINVAL;
22328 goto done;
22329 }
22330
22331done:
22332 return ret;
22333}
22334
22335static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
22336 struct snd_ctl_elem_value *ucontrol)
22337{
22338 int ret = 0;
22339 struct sound_focus_param soundFocusData;
22340 int port_id, copp_idx;
22341
22342 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
22343 "Sound Focus Audio Tx ", &port_id);
22344 if (ret) {
22345 pr_err("%s: Error in deriving port id, err=%d\n",
22346 __func__, ret);
22347
22348 ret = -EINVAL;
22349 goto done;
22350 }
22351
22352 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
22353 &copp_idx);
22354 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070022355 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022356 __func__, port_id);
22357
22358 ret = -EINVAL;
22359 goto done;
22360 }
22361
22362 ret = adm_get_sound_focus(port_id, copp_idx, &soundFocusData);
22363 if (ret) {
22364 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
22365 __func__, ret);
22366
22367 ret = -EINVAL;
22368 goto done;
22369 }
22370
22371 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
22372 sizeof(struct sound_focus_param));
22373
22374done:
22375 return ret;
22376}
22377
22378static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
22379 struct snd_ctl_elem_value *ucontrol)
22380{
22381 int ret = 0;
22382 struct source_tracking_param sourceTrackingData;
22383 int port_id, copp_idx;
22384
22385 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
22386 "Source Tracking Audio Tx ", &port_id);
22387 if (ret) {
22388 pr_err("%s: Error in deriving port id, err=%d\n",
22389 __func__, ret);
22390
22391 ret = -EINVAL;
22392 goto done;
22393 }
22394
22395 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
22396 &copp_idx);
22397 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070022398 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022399 __func__, port_id);
22400
22401 ret = -EINVAL;
22402 goto done;
22403 }
22404
22405 ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
22406 if (ret) {
22407 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
22408 __func__, ret);
22409
22410 ret = -EINVAL;
22411 goto done;
22412 }
22413
22414 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
22415 sizeof(struct source_tracking_param));
22416
22417done:
22418 return ret;
22419}
22420
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053022421static int msm_doa_tracking_mon_info(struct snd_kcontrol *kcontrol,
22422 struct snd_ctl_elem_info *uinfo)
22423{
22424 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
22425 uinfo->count = sizeof(struct doa_tracking_mon_param);
22426
22427 return 0;
22428}
22429
22430static int msm_doa_tracking_mon_get(struct snd_kcontrol *kcontrol,
22431 struct snd_ctl_elem_value *ucontrol)
22432{
22433 int ret = 0;
22434 struct doa_tracking_mon_param doa_tracking_data;
22435 int port_id, copp_idx;
22436
22437 memset(&doa_tracking_data, 0, sizeof(struct doa_tracking_mon_param));
22438 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
22439 "Doa Tracking Monitor Listen ", &port_id);
22440 if (ret) {
22441 pr_err("%s: Error in deriving port id, err=%d\n",
22442 __func__, ret);
22443 ret = -EINVAL;
22444 goto done;
22445 }
22446
22447 /*
22448 * If copp id exists for given port id, query adm to get doa data.
22449 * Else query afe for doa tracking params.
22450 * This is to support in cases where LSM directly connects to
22451 * AFE for FFNS.
22452 */
22453 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
22454 &copp_idx);
22455 if (!ret)
22456 ret = adm_get_doa_tracking_mon(port_id, copp_idx,
22457 &doa_tracking_data);
22458 else
22459 ret = afe_get_doa_tracking_mon(port_id, &doa_tracking_data);
22460
22461 if (ret) {
22462 pr_err("%s: Error getting Doa Tracking Params, err=%d\n",
22463 __func__, ret);
22464 ret = -EINVAL;
22465 goto done;
22466 }
22467
22468 memcpy(ucontrol->value.bytes.data, (void *)&doa_tracking_data,
22469 sizeof(struct doa_tracking_mon_param));
22470done:
22471 return ret;
22472}
22473
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022474static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
22475 {
22476 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22477 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22478 .name = "Sound Focus Voice Tx SLIMBUS_0",
22479 .info = msm_sound_focus_info,
22480 .get = msm_voice_sound_focus_get,
22481 .put = msm_voice_sound_focus_put,
22482 },
22483 {
22484 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22485 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22486 .name = "Source Tracking Voice Tx SLIMBUS_0",
22487 .info = msm_source_tracking_info,
22488 .get = msm_voice_source_tracking_get,
22489 },
22490 {
22491 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22492 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22493 .name = "Sound Focus Audio Tx SLIMBUS_0",
22494 .info = msm_sound_focus_info,
22495 .get = msm_audio_sound_focus_get,
22496 .put = msm_audio_sound_focus_put,
22497 },
22498 {
22499 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22500 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22501 .name = "Source Tracking Audio Tx SLIMBUS_0",
22502 .info = msm_source_tracking_info,
22503 .get = msm_audio_source_tracking_get,
22504 },
22505 {
22506 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22507 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22508 .name = "Sound Focus Voice Tx TERT_MI2S",
22509 .info = msm_sound_focus_info,
22510 .get = msm_voice_sound_focus_get,
22511 .put = msm_voice_sound_focus_put,
22512 },
22513 {
22514 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22515 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22516 .name = "Source Tracking Voice Tx TERT_MI2S",
22517 .info = msm_source_tracking_info,
22518 .get = msm_voice_source_tracking_get,
22519 },
22520 {
22521 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22522 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22523 .name = "Sound Focus Audio Tx TERT_MI2S",
22524 .info = msm_sound_focus_info,
22525 .get = msm_audio_sound_focus_get,
22526 .put = msm_audio_sound_focus_put,
22527 },
22528 {
22529 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22530 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22531 .name = "Source Tracking Audio Tx TERT_MI2S",
22532 .info = msm_source_tracking_info,
22533 .get = msm_audio_source_tracking_get,
22534 },
22535 {
22536 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22537 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22538 .name = "Sound Focus Voice Tx INT3_MI2S",
22539 .info = msm_sound_focus_info,
22540 .get = msm_voice_sound_focus_get,
22541 .put = msm_voice_sound_focus_put,
22542 },
22543 {
22544 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22545 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22546 .name = "Source Tracking Voice Tx INT3_MI2S",
22547 .info = msm_source_tracking_info,
22548 .get = msm_voice_source_tracking_get,
22549 },
22550 {
22551 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22552 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22553 .name = "Sound Focus Audio Tx INT3_MI2S",
22554 .info = msm_sound_focus_info,
22555 .get = msm_audio_sound_focus_get,
22556 .put = msm_audio_sound_focus_put,
22557 },
22558 {
22559 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22560 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22561 .name = "Source Tracking Audio Tx INT3_MI2S",
22562 .info = msm_source_tracking_info,
22563 .get = msm_audio_source_tracking_get,
22564 },
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053022565 {
22566 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22567 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22568 .name = "Sound Focus Voice Tx VA_CDC_DMA_TX_0",
22569 .info = msm_sound_focus_info,
22570 .get = msm_voice_sound_focus_get,
22571 .put = msm_voice_sound_focus_put,
22572 },
22573 {
22574 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22575 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22576 .name = "Source Tracking Voice Tx VA_CDC_DMA_TX_0",
22577 .info = msm_source_tracking_info,
22578 .get = msm_voice_source_tracking_get,
22579 },
22580 {
22581 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22582 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22583 .name = "Sound Focus Audio Tx VA_CDC_DMA_TX_0",
22584 .info = msm_sound_focus_info,
22585 .get = msm_audio_sound_focus_get,
22586 .put = msm_audio_sound_focus_put,
22587 },
22588 {
22589 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22590 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22591 .name = "Source Tracking Audio Tx VA_CDC_DMA_TX_0",
22592 .info = msm_source_tracking_info,
22593 .get = msm_audio_source_tracking_get,
22594 },
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053022595 {
22596 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22597 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22598 .name = "Sound Focus Voice Tx TX_CDC_DMA_TX_3",
22599 .info = msm_sound_focus_info,
22600 .get = msm_voice_sound_focus_get,
22601 .put = msm_voice_sound_focus_put,
22602 },
22603 {
22604 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22605 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22606 .name = "Source Tracking Voice Tx TX_CDC_DMA_TX_3",
22607 .info = msm_source_tracking_info,
22608 .get = msm_voice_source_tracking_get,
22609 },
22610 {
22611 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22612 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22613 .name = "Sound Focus Audio Tx TX_CDC_DMA_TX_3",
22614 .info = msm_sound_focus_info,
22615 .get = msm_audio_sound_focus_get,
22616 .put = msm_audio_sound_focus_put,
22617 },
22618 {
22619 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22620 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22621 .name = "Source Tracking Audio Tx TX_CDC_DMA_TX_3",
22622 .info = msm_source_tracking_info,
22623 .get = msm_audio_source_tracking_get,
22624 },
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053022625 {
22626 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22627 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22628 .name = "Sound Focus Voice Tx QUIN_TDM_TX_0",
22629 .info = msm_sound_focus_info,
22630 .get = msm_voice_sound_focus_get,
22631 .put = msm_voice_sound_focus_put,
22632 },
22633 {
22634 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22635 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22636 .name = "Source Tracking Voice Tx QUIN_TDM_TX_0",
22637 .info = msm_source_tracking_info,
22638 .get = msm_voice_source_tracking_get,
22639 },
22640 {
22641 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22642 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22643 .name = "Sound Focus Audio Tx QUIN_TDM_TX_0",
22644 .info = msm_sound_focus_info,
22645 .get = msm_audio_sound_focus_get,
22646 .put = msm_audio_sound_focus_put,
22647 },
22648 {
22649 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22650 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22651 .name = "Source Tracking Audio Tx QUIN_TDM_TX_0",
22652 .info = msm_source_tracking_info,
22653 .get = msm_audio_source_tracking_get,
22654 },
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053022655 {
Sachin Mohan Gadagd34b26d2018-07-16 19:53:19 +053022656 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
22657 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22658 .name = "Sound Focus Audio Tx PRIMARY_TDM",
22659 .info = msm_sound_focus_info,
22660 .get = msm_audio_sound_focus_get,
22661 .put = msm_audio_sound_focus_put,
22662 },
22663 {
22664 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22665 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22666 .name = "Source Tracking Audio Tx PRIMARY_TDM",
22667 .info = msm_source_tracking_info,
22668 .get = msm_audio_source_tracking_get,
22669 },
22670 {
Chaithanya Krishna Bacharaju779b11e2018-11-20 14:37:19 +053022671 .access = SNDRV_CTL_ELEM_ACCESS_READ,
22672 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
22673 .name = "Doa Tracking Monitor Listen VA_CDC_DMA_TX_0",
22674 .info = msm_doa_tracking_mon_info,
22675 .get = msm_doa_tracking_mon_get,
22676 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022677};
22678
22679static int spkr_prot_put_vi_lch_port(struct snd_kcontrol *kcontrol,
22680 struct snd_ctl_elem_value *ucontrol)
22681{
22682 int ret = 0;
22683 int item;
22684 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
22685
22686 pr_debug("%s item is %d\n", __func__,
22687 ucontrol->value.enumerated.item[0]);
22688 mutex_lock(&routing_lock);
22689 item = ucontrol->value.enumerated.item[0];
22690 if (item < e->items) {
22691 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
22692 __func__, e->shift_l, e->values[item]);
22693 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
22694 e->values[item] < MSM_BACKEND_DAI_MAX)
22695 /* Enable feedback TX path */
22696 ret = afe_spk_prot_feed_back_cfg(
22697 msm_bedais[e->values[item]].port_id,
22698 msm_bedais[e->shift_l].port_id, 1, 0, 1);
22699 else {
22700 pr_debug("%s values are out of range item %d\n",
22701 __func__, e->values[item]);
22702 /* Disable feedback TX path */
22703 if (e->values[item] == MSM_BACKEND_DAI_MAX)
22704 ret = afe_spk_prot_feed_back_cfg(0, 0, 0, 0, 0);
22705 else
22706 ret = -EINVAL;
22707 }
22708 } else {
22709 pr_err("%s item value is out of range item\n", __func__);
22710 ret = -EINVAL;
22711 }
22712 mutex_unlock(&routing_lock);
22713 return ret;
22714}
22715
22716static int spkr_prot_put_vi_rch_port(struct snd_kcontrol *kcontrol,
22717 struct snd_ctl_elem_value *ucontrol)
22718{
22719 int ret = 0;
22720 int item;
22721 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
22722
22723 pr_debug("%s item is %d\n", __func__,
22724 ucontrol->value.enumerated.item[0]);
22725 mutex_lock(&routing_lock);
22726 item = ucontrol->value.enumerated.item[0];
22727 if (item < e->items) {
22728 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
22729 __func__, e->shift_l, e->values[item]);
22730 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
22731 e->values[item] < MSM_BACKEND_DAI_MAX)
22732 /* Enable feedback TX path */
22733 ret = afe_spk_prot_feed_back_cfg(
22734 msm_bedais[e->values[item]].port_id,
22735 msm_bedais[e->shift_l].port_id,
22736 1, 1, 1);
22737 else {
22738 pr_debug("%s values are out of range item %d\n",
22739 __func__, e->values[item]);
22740 /* Disable feedback TX path */
22741 if (e->values[item] == MSM_BACKEND_DAI_MAX)
22742 ret = afe_spk_prot_feed_back_cfg(0,
22743 0, 0, 0, 0);
22744 else
22745 ret = -EINVAL;
22746 }
22747 } else {
22748 pr_err("%s item value is out of range item\n", __func__);
22749 ret = -EINVAL;
22750 }
22751 mutex_unlock(&routing_lock);
22752 return ret;
22753}
22754
22755static int spkr_prot_get_vi_lch_port(struct snd_kcontrol *kcontrol,
22756 struct snd_ctl_elem_value *ucontrol)
22757{
22758 pr_debug("%s\n", __func__);
22759 return 0;
22760}
22761
22762static int spkr_prot_get_vi_rch_port(struct snd_kcontrol *kcontrol,
22763 struct snd_ctl_elem_value *ucontrol)
22764{
22765 pr_debug("%s\n", __func__);
22766 ucontrol->value.enumerated.item[0] = 0;
22767 return 0;
22768}
22769
22770static const char * const slim0_rx_vi_fb_tx_lch_mux_text[] = {
22771 "ZERO", "SLIM4_TX"
22772};
22773
22774static const char * const slim0_rx_vi_fb_tx_rch_mux_text[] = {
22775 "ZERO", "SLIM4_TX"
22776};
22777
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022778static const char * const wsa_rx_0_vi_fb_tx_lch_mux_text[] = {
22779 "ZERO", "WSA_CDC_DMA_TX_0"
22780};
22781
22782static const char * const wsa_rx_0_vi_fb_tx_rch_mux_text[] = {
22783 "ZERO", "WSA_CDC_DMA_TX_0"
22784};
22785
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022786static const char * const mi2s_rx_vi_fb_tx_mux_text[] = {
22787 "ZERO", "SENARY_TX"
22788};
22789
22790static const char * const int4_mi2s_rx_vi_fb_tx_mono_mux_text[] = {
22791 "ZERO", "INT5_MI2S_TX"
22792};
22793
22794static const char * const int4_mi2s_rx_vi_fb_tx_stereo_mux_text[] = {
22795 "ZERO", "INT5_MI2S_TX"
22796};
22797
Josh Kirschea69fed2018-12-11 16:15:08 -080022798static const int slim0_rx_vi_fb_tx_lch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022799 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
22800};
22801
Josh Kirschea69fed2018-12-11 16:15:08 -080022802static const int slim0_rx_vi_fb_tx_rch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022803 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
22804};
22805
Josh Kirschea69fed2018-12-11 16:15:08 -080022806static const int wsa_rx_0_vi_fb_tx_lch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022807 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
22808};
22809
Josh Kirschea69fed2018-12-11 16:15:08 -080022810static const int wsa_rx_0_vi_fb_tx_rch_value[] = {
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022811 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
22812};
22813
22814
Josh Kirschea69fed2018-12-11 16:15:08 -080022815static const int mi2s_rx_vi_fb_tx_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022816 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SENARY_MI2S_TX
22817};
22818
Josh Kirschea69fed2018-12-11 16:15:08 -080022819static const int int4_mi2s_rx_vi_fb_tx_mono_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022820 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
22821};
22822
Josh Kirschea69fed2018-12-11 16:15:08 -080022823static const int int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022824 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
22825};
22826
22827static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
22828 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
22829 ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
22830 slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
22831
22832static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
22833 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
22834 ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
22835 slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
22836
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022837static const struct soc_enum wsa_rx_0_vi_fb_lch_mux_enum =
22838 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
22839 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_lch_mux_text),
22840 wsa_rx_0_vi_fb_tx_lch_mux_text, wsa_rx_0_vi_fb_tx_lch_value);
22841
22842static const struct soc_enum wsa_rx_0_vi_fb_rch_mux_enum =
22843 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
22844 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_rch_mux_text),
22845 wsa_rx_0_vi_fb_tx_rch_mux_text, wsa_rx_0_vi_fb_tx_rch_value);
22846
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022847static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
22848 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
22849 ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
22850 mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
22851
22852static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
22853 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
22854 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
22855 int4_mi2s_rx_vi_fb_tx_mono_mux_text,
22856 int4_mi2s_rx_vi_fb_tx_mono_ch_value);
22857
22858static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
22859 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
22860 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
22861 int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
22862 int4_mi2s_rx_vi_fb_tx_stereo_ch_value);
22863
22864static const struct snd_kcontrol_new slim0_rx_vi_fb_lch_mux =
22865 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_LCH_MUX",
22866 slim0_rx_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
22867 spkr_prot_put_vi_lch_port);
22868
22869static const struct snd_kcontrol_new slim0_rx_vi_fb_rch_mux =
22870 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_RCH_MUX",
22871 slim0_rx_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
22872 spkr_prot_put_vi_rch_port);
22873
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022874static const struct snd_kcontrol_new wsa_rx_0_vi_fb_lch_mux =
22875 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_LCH_MUX",
22876 wsa_rx_0_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
22877 spkr_prot_put_vi_lch_port);
22878
22879static const struct snd_kcontrol_new wsa_rx_0_vi_fb_rch_mux =
22880 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_RCH_MUX",
22881 wsa_rx_0_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
22882 spkr_prot_put_vi_rch_port);
22883
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022884static const struct snd_kcontrol_new mi2s_rx_vi_fb_mux =
22885 SOC_DAPM_ENUM_EXT("PRI_MI2S_RX_VI_FB_MUX",
22886 mi2s_rx_vi_fb_mux_enum, spkr_prot_get_vi_lch_port,
22887 spkr_prot_put_vi_lch_port);
22888
22889static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_mono_ch_mux =
22890 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_MONO_CH_MUX",
22891 int4_mi2s_rx_vi_fb_mono_ch_mux_enum, spkr_prot_get_vi_lch_port,
22892 spkr_prot_put_vi_lch_port);
22893
22894static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_stereo_ch_mux =
22895 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX",
22896 int4_mi2s_rx_vi_fb_stereo_ch_mux_enum, spkr_prot_get_vi_rch_port,
22897 spkr_prot_put_vi_rch_port);
22898
22899static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
22900 /* Frontend AIF */
22901 /* Widget name equals to Front-End DAI name<Need confirmation>,
22902 * Stream name must contains substring of front-end dai name
22903 */
22904 SND_SOC_DAPM_AIF_IN("MM_DL1", "MultiMedia1 Playback", 0, 0, 0, 0),
22905 SND_SOC_DAPM_AIF_IN("MM_DL2", "MultiMedia2 Playback", 0, 0, 0, 0),
22906 SND_SOC_DAPM_AIF_IN("MM_DL3", "MultiMedia3 Playback", 0, 0, 0, 0),
22907 SND_SOC_DAPM_AIF_IN("MM_DL4", "MultiMedia4 Playback", 0, 0, 0, 0),
22908 SND_SOC_DAPM_AIF_IN("MM_DL5", "MultiMedia5 Playback", 0, 0, 0, 0),
22909 SND_SOC_DAPM_AIF_IN("MM_DL6", "MultiMedia6 Playback", 0, 0, 0, 0),
22910 SND_SOC_DAPM_AIF_IN("MM_DL7", "MultiMedia7 Playback", 0, 0, 0, 0),
22911 SND_SOC_DAPM_AIF_IN("MM_DL8", "MultiMedia8 Playback", 0, 0, 0, 0),
22912 SND_SOC_DAPM_AIF_IN("MM_DL9", "MultiMedia9 Playback", 0, 0, 0, 0),
22913 SND_SOC_DAPM_AIF_IN("MM_DL10", "MultiMedia10 Playback", 0, 0, 0, 0),
22914 SND_SOC_DAPM_AIF_IN("MM_DL11", "MultiMedia11 Playback", 0, 0, 0, 0),
22915 SND_SOC_DAPM_AIF_IN("MM_DL12", "MultiMedia12 Playback", 0, 0, 0, 0),
22916 SND_SOC_DAPM_AIF_IN("MM_DL13", "MultiMedia13 Playback", 0, 0, 0, 0),
22917 SND_SOC_DAPM_AIF_IN("MM_DL14", "MultiMedia14 Playback", 0, 0, 0, 0),
22918 SND_SOC_DAPM_AIF_IN("MM_DL15", "MultiMedia15 Playback", 0, 0, 0, 0),
22919 SND_SOC_DAPM_AIF_IN("MM_DL16", "MultiMedia16 Playback", 0, 0, 0, 0),
22920 SND_SOC_DAPM_AIF_IN("MM_DL20", "MultiMedia20 Playback", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070022921 SND_SOC_DAPM_AIF_IN("MM_DL21", "MultiMedia21 Playback", 0, 0, 0, 0),
Derek Chenb097d922019-07-31 17:28:02 -070022922 SND_SOC_DAPM_AIF_IN("MM_DL22", "MultiMedia22 Playback", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053022923 SND_SOC_DAPM_AIF_IN("MM_DL26", "MultiMedia26 Playback", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022924 SND_SOC_DAPM_AIF_IN("VOIP_DL", "VoIP Playback", 0, 0, 0, 0),
22925 SND_SOC_DAPM_AIF_OUT("MM_UL1", "MultiMedia1 Capture", 0, 0, 0, 0),
22926 SND_SOC_DAPM_AIF_OUT("MM_UL2", "MultiMedia2 Capture", 0, 0, 0, 0),
22927 SND_SOC_DAPM_AIF_OUT("MM_UL3", "MultiMedia3 Capture", 0, 0, 0, 0),
22928 SND_SOC_DAPM_AIF_OUT("MM_UL4", "MultiMedia4 Capture", 0, 0, 0, 0),
22929 SND_SOC_DAPM_AIF_OUT("MM_UL5", "MultiMedia5 Capture", 0, 0, 0, 0),
22930 SND_SOC_DAPM_AIF_OUT("MM_UL6", "MultiMedia6 Capture", 0, 0, 0, 0),
22931 SND_SOC_DAPM_AIF_OUT("MM_UL8", "MultiMedia8 Capture", 0, 0, 0, 0),
22932 SND_SOC_DAPM_AIF_OUT("MM_UL9", "MultiMedia9 Capture", 0, 0, 0, 0),
Laxminath Kasam38070be2017-08-17 18:21:59 +053022933 SND_SOC_DAPM_AIF_OUT("MM_UL10", "MultiMedia10 Capture", 0, 0, 0, 0),
Asish Bhattacharya34504582017-08-08 12:55:01 +053022934 SND_SOC_DAPM_AIF_OUT("MM_UL16", "MultiMedia16 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022935 SND_SOC_DAPM_AIF_OUT("MM_UL17", "MultiMedia17 Capture", 0, 0, 0, 0),
22936 SND_SOC_DAPM_AIF_OUT("MM_UL18", "MultiMedia18 Capture", 0, 0, 0, 0),
22937 SND_SOC_DAPM_AIF_OUT("MM_UL19", "MultiMedia19 Capture", 0, 0, 0, 0),
22938 SND_SOC_DAPM_AIF_OUT("MM_UL20", "MultiMedia20 Capture", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070022939 SND_SOC_DAPM_AIF_OUT("MM_UL21", "MultiMedia21 Capture", 0, 0, 0, 0),
Derek Chenb097d922019-07-31 17:28:02 -070022940 SND_SOC_DAPM_AIF_OUT("MM_UL22", "MultiMedia22 Capture", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053022941 SND_SOC_DAPM_AIF_OUT("MM_UL27", "MultiMedia27 Capture", 0, 0, 0, 0),
Meng Wang5c4bab72018-04-25 10:40:01 +080022942 SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
22943 SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053022944 SND_SOC_DAPM_AIF_OUT("MM_UL30", "MultiMedia30 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022945 SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
22946 SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
22947 "VoiceMMode1 Playback", 0, 0, 0, 0),
22948 SND_SOC_DAPM_AIF_OUT("VOICEMMODE1_UL",
22949 "VoiceMMode1 Capture", 0, 0, 0, 0),
22950 SND_SOC_DAPM_AIF_IN("VOICEMMODE2_DL",
22951 "VoiceMMode2 Playback", 0, 0, 0, 0),
22952 SND_SOC_DAPM_AIF_OUT("VOICEMMODE2_UL",
22953 "VoiceMMode2 Capture", 0, 0, 0, 0),
22954 SND_SOC_DAPM_AIF_IN("SLIM0_DL_HL", "SLIMBUS0_HOSTLESS Playback",
22955 0, 0, 0, 0),
22956 SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
22957 0, 0, 0, 0),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053022958 SND_SOC_DAPM_AIF_IN("CDC_DMA_DL_HL", "CDC_DMA_HOSTLESS Playback",
22959 0, 0, 0, 0),
22960 SND_SOC_DAPM_AIF_OUT("CDC_DMA_UL_HL", "CDC_DMA_HOSTLESS Capture",
22961 0, 0, 0, 0),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053022962 SND_SOC_DAPM_AIF_OUT("TX3_CDC_DMA_UL_HL",
22963 "TX3_CDC_DMA_HOSTLESS Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022964 SND_SOC_DAPM_AIF_OUT("CPE_LSM_UL_HL", "CPE LSM capture",
22965 0, 0, 0, 0),
22966 SND_SOC_DAPM_AIF_IN("SLIM1_DL_HL", "SLIMBUS1_HOSTLESS Playback",
22967 0, 0, 0, 0),
22968 SND_SOC_DAPM_AIF_OUT("SLIM1_UL_HL", "SLIMBUS1_HOSTLESS Capture",
22969 0, 0, 0, 0),
22970 SND_SOC_DAPM_AIF_IN("SLIM3_DL_HL", "SLIMBUS3_HOSTLESS Playback",
22971 0, 0, 0, 0),
22972 SND_SOC_DAPM_AIF_OUT("SLIM3_UL_HL", "SLIMBUS3_HOSTLESS Capture",
22973 0, 0, 0, 0),
22974 SND_SOC_DAPM_AIF_IN("SLIM4_DL_HL", "SLIMBUS4_HOSTLESS Playback",
22975 0, 0, 0, 0),
22976 SND_SOC_DAPM_AIF_OUT("SLIM4_UL_HL", "SLIMBUS4_HOSTLESS Capture",
22977 0, 0, 0, 0),
22978 SND_SOC_DAPM_AIF_IN("SLIM6_DL_HL", "SLIMBUS6_HOSTLESS Playback",
22979 0, 0, 0, 0),
22980 SND_SOC_DAPM_AIF_OUT("SLIM6_UL_HL", "SLIMBUS6_HOSTLESS Capture",
22981 0, 0, 0, 0),
22982 SND_SOC_DAPM_AIF_IN("SLIM7_DL_HL", "SLIMBUS7_HOSTLESS Playback",
22983 0, 0, 0, 0),
22984 SND_SOC_DAPM_AIF_OUT("SLIM7_UL_HL", "SLIMBUS7_HOSTLESS Capture",
22985 0, 0, 0, 0),
22986 SND_SOC_DAPM_AIF_IN("SLIM8_DL_HL", "SLIMBUS8_HOSTLESS Playback",
22987 0, 0, 0, 0),
22988 SND_SOC_DAPM_AIF_OUT("SLIM8_UL_HL", "SLIMBUS8_HOSTLESS Capture",
22989 0, 0, 0, 0),
22990 SND_SOC_DAPM_AIF_IN("INTFM_DL_HL", "INT_FM_HOSTLESS Playback",
22991 0, 0, 0, 0),
22992 SND_SOC_DAPM_AIF_OUT("INTFM_UL_HL", "INT_FM_HOSTLESS Capture",
22993 0, 0, 0, 0),
22994 SND_SOC_DAPM_AIF_IN("INTHFP_DL_HL", "INT_HFP_BT_HOSTLESS Playback",
22995 0, 0, 0, 0),
22996 SND_SOC_DAPM_AIF_OUT("INTHFP_UL_HL", "INT_HFP_BT_HOSTLESS Capture",
22997 0, 0, 0, 0),
22998 SND_SOC_DAPM_AIF_IN("USBAUDIO_DL_HL", "USBAUDIO_HOSTLESS Playback",
22999 0, 0, 0, 0),
23000 SND_SOC_DAPM_AIF_OUT("USBAUDIO_UL_HL", "USBAUDIO_HOSTLESS Capture",
23001 0, 0, 0, 0),
23002 SND_SOC_DAPM_AIF_IN("HDMI_DL_HL", "HDMI_HOSTLESS Playback", 0, 0, 0, 0),
23003 SND_SOC_DAPM_AIF_IN("SEC_I2S_DL_HL", "SEC_I2S_RX_HOSTLESS Playback",
23004 0, 0, 0, 0),
23005 SND_SOC_DAPM_AIF_IN("INT0_MI2S_DL_HL",
23006 "INT0 MI2S_RX Hostless Playback",
23007 0, 0, 0, 0),
23008 SND_SOC_DAPM_AIF_IN("INT4_MI2S_DL_HL",
23009 "INT4 MI2S_RX Hostless Playback",
23010 0, 0, 0, 0),
23011 SND_SOC_DAPM_AIF_IN("PRI_MI2S_DL_HL",
23012 "Primary MI2S_RX Hostless Playback",
23013 0, 0, 0, 0),
23014 SND_SOC_DAPM_AIF_IN("SEC_MI2S_DL_HL",
23015 "Secondary MI2S_RX Hostless Playback",
23016 0, 0, 0, 0),
23017 SND_SOC_DAPM_AIF_IN("TERT_MI2S_DL_HL",
23018 "Tertiary MI2S_RX Hostless Playback",
23019 0, 0, 0, 0),
23020 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_DL_HL",
23021 "Quaternary MI2S_RX Hostless Playback",
23022 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053023023 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_DL_HL",
23024 "Quinary MI2S_RX Hostless Playback",
23025 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023026 SND_SOC_DAPM_AIF_IN("SEN_MI2S_DL_HL",
23027 "Senary MI2S_RX Hostless Playback",
23028 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023029
23030 SND_SOC_DAPM_AIF_IN("AUXPCM_DL_HL", "AUXPCM_HOSTLESS Playback",
23031 0, 0, 0, 0),
23032 SND_SOC_DAPM_AIF_OUT("AUXPCM_UL_HL", "AUXPCM_HOSTLESS Capture",
23033 0, 0, 0, 0),
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080023034 SND_SOC_DAPM_AIF_IN("SEC_AUXPCM_DL_HL", "SEC_AUXPCM_HOSTLESS Playback",
23035 0, 0, 0, 0),
23036 SND_SOC_DAPM_AIF_OUT("SEC_AUXPCM_UL_HL", "SEC_AUXPCM_HOSTLESS Capture",
23037 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023038 SND_SOC_DAPM_AIF_OUT("MI2S_UL_HL", "MI2S_TX_HOSTLESS Capture",
23039 0, 0, 0, 0),
23040 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_UL_HL",
23041 "INT3 MI2S_TX Hostless Capture",
23042 0, 0, 0, 0),
23043 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_UL_HL",
23044 "Tertiary MI2S_TX Hostless Capture",
23045 0, 0, 0, 0),
23046 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_UL_HL",
23047 "Secondary MI2S_TX Hostless Capture",
23048 0, 0, 0, 0),
23049 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_UL_HL",
23050 "Primary MI2S_TX Hostless Capture",
23051 0, 0, 0, 0),
23052 SND_SOC_DAPM_AIF_OUT("MI2S_DL_HL", "MI2S_RX_HOSTLESS Playback",
23053 0, 0, 0, 0),
23054 SND_SOC_DAPM_AIF_IN("DTMF_DL_HL", "DTMF_RX_HOSTLESS Playback",
23055 0, 0, 0, 0),
23056 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_UL_HL",
23057 "Quaternary MI2S_TX Hostless Capture",
23058 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053023059 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_UL_HL",
23060 "Quinary MI2S_TX Hostless Capture",
23061 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023062 SND_SOC_DAPM_AIF_OUT("SEN_MI2S_UL_HL",
23063 "Senary MI2S_TX Hostless Capture",
23064 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023065
23066 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_0_DL_HL",
23067 "Primary TDM0 Hostless Playback",
23068 0, 0, 0, 0),
23069 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_0_UL_HL",
23070 "Primary TDM0 Hostless Capture",
23071 0, 0, 0, 0),
23072 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_1_DL_HL",
23073 "Primary TDM1 Hostless Playback",
23074 0, 0, 0, 0),
23075 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_1_UL_HL",
23076 "Primary TDM1 Hostless Capture",
23077 0, 0, 0, 0),
23078 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_2_DL_HL",
23079 "Primary TDM2 Hostless Playback",
23080 0, 0, 0, 0),
23081 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_2_UL_HL",
23082 "Primary TDM2 Hostless Capture",
23083 0, 0, 0, 0),
23084 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_3_DL_HL",
23085 "Primary TDM3 Hostless Playback",
23086 0, 0, 0, 0),
23087 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_3_UL_HL",
23088 "Primary TDM3 Hostless Capture",
23089 0, 0, 0, 0),
23090 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_4_DL_HL",
23091 "Primary TDM4 Hostless Playback",
23092 0, 0, 0, 0),
23093 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_4_UL_HL",
23094 "Primary TDM4 Hostless Capture",
23095 0, 0, 0, 0),
23096 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_5_DL_HL",
23097 "Primary TDM5 Hostless Playback",
23098 0, 0, 0, 0),
23099 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_5_UL_HL",
23100 "Primary TDM5 Hostless Capture",
23101 0, 0, 0, 0),
23102 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_6_DL_HL",
23103 "Primary TDM6 Hostless Playback",
23104 0, 0, 0, 0),
23105 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_6_UL_HL",
23106 "Primary TDM6 Hostless Capture",
23107 0, 0, 0, 0),
23108 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_7_DL_HL",
23109 "Primary TDM7 Hostless Playback",
23110 0, 0, 0, 0),
23111 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_7_UL_HL",
23112 "Primary TDM7 Hostless Capture",
23113 0, 0, 0, 0),
23114 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_0_DL_HL",
23115 "Secondary TDM0 Hostless Playback",
23116 0, 0, 0, 0),
23117 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_0_UL_HL",
23118 "Secondary TDM0 Hostless Capture",
23119 0, 0, 0, 0),
23120 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_1_DL_HL",
23121 "Secondary TDM1 Hostless Playback",
23122 0, 0, 0, 0),
23123 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_1_UL_HL",
23124 "Secondary TDM1 Hostless Capture",
23125 0, 0, 0, 0),
23126 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_2_DL_HL",
23127 "Secondary TDM2 Hostless Playback",
23128 0, 0, 0, 0),
23129 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_2_UL_HL",
23130 "Secondary TDM2 Hostless Capture",
23131 0, 0, 0, 0),
23132 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_3_DL_HL",
23133 "Secondary TDM3 Hostless Playback",
23134 0, 0, 0, 0),
23135 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_3_UL_HL",
23136 "Secondary TDM3 Hostless Capture",
23137 0, 0, 0, 0),
23138 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_4_DL_HL",
23139 "Secondary TDM4 Hostless Playback",
23140 0, 0, 0, 0),
23141 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_4_UL_HL",
23142 "Secondary TDM4 Hostless Capture",
23143 0, 0, 0, 0),
23144 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_5_DL_HL",
23145 "Secondary TDM5 Hostless Playback",
23146 0, 0, 0, 0),
23147 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_5_UL_HL",
23148 "Secondary TDM5 Hostless Capture",
23149 0, 0, 0, 0),
23150 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_6_DL_HL",
23151 "Secondary TDM6 Hostless Playback",
23152 0, 0, 0, 0),
23153 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_6_UL_HL",
23154 "Secondary TDM6 Hostless Capture",
23155 0, 0, 0, 0),
23156 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_7_DL_HL",
23157 "Secondary TDM7 Hostless Playback",
23158 0, 0, 0, 0),
23159 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_7_UL_HL",
23160 "Secondary TDM7 Hostless Capture",
23161 0, 0, 0, 0),
23162 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_0_DL_HL",
23163 "Tertiary TDM0 Hostless Playback",
23164 0, 0, 0, 0),
23165 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_0_UL_HL",
23166 "Tertiary TDM0 Hostless Capture",
23167 0, 0, 0, 0),
23168 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_1_DL_HL",
23169 "Tertiary TDM1 Hostless Playback",
23170 0, 0, 0, 0),
23171 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_1_UL_HL",
23172 "Tertiary TDM1 Hostless Capture",
23173 0, 0, 0, 0),
23174 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_2_DL_HL",
23175 "Tertiary TDM2 Hostless Playback",
23176 0, 0, 0, 0),
23177 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_2_UL_HL",
23178 "Tertiary TDM2 Hostless Capture",
23179 0, 0, 0, 0),
23180 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_3_DL_HL",
23181 "Tertiary TDM3 Hostless Playback",
23182 0, 0, 0, 0),
23183 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_3_UL_HL",
23184 "Tertiary TDM3 Hostless Capture",
23185 0, 0, 0, 0),
23186 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_4_DL_HL",
23187 "Tertiary TDM4 Hostless Playback",
23188 0, 0, 0, 0),
23189 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_4_UL_HL",
23190 "Tertiary TDM4 Hostless Capture",
23191 0, 0, 0, 0),
23192 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_5_DL_HL",
23193 "Tertiary TDM5 Hostless Playback",
23194 0, 0, 0, 0),
23195 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_5_UL_HL",
23196 "Tertiary TDM5 Hostless Capture",
23197 0, 0, 0, 0),
23198 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_6_DL_HL",
23199 "Tertiary TDM6 Hostless Playback",
23200 0, 0, 0, 0),
23201 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_6_UL_HL",
23202 "Tertiary TDM6 Hostless Capture",
23203 0, 0, 0, 0),
23204 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_7_DL_HL",
23205 "Tertiary TDM7 Hostless Playback",
23206 0, 0, 0, 0),
23207 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_7_UL_HL",
23208 "Tertiary TDM7 Hostless Capture",
23209 0, 0, 0, 0),
23210 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_0_DL_HL",
23211 "Quaternary TDM0 Hostless Playback",
23212 0, 0, 0, 0),
23213 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_0_UL_HL",
23214 "Quaternary TDM0 Hostless Capture",
23215 0, 0, 0, 0),
23216 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_1_DL_HL",
23217 "Quaternary TDM1 Hostless Playback",
23218 0, 0, 0, 0),
23219 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_1_UL_HL",
23220 "Quaternary TDM1 Hostless Capture",
23221 0, 0, 0, 0),
23222 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_2_DL_HL",
23223 "Quaternary TDM2 Hostless Playback",
23224 0, 0, 0, 0),
23225 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_2_UL_HL",
23226 "Quaternary TDM2 Hostless Capture",
23227 0, 0, 0, 0),
23228 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_3_DL_HL",
23229 "Quaternary TDM3 Hostless Playback",
23230 0, 0, 0, 0),
23231 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_3_UL_HL",
23232 "Quaternary TDM3 Hostless Capture",
23233 0, 0, 0, 0),
23234 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_4_DL_HL",
23235 "Quaternary TDM4 Hostless Playback",
23236 0, 0, 0, 0),
23237 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_4_UL_HL",
23238 "Quaternary TDM4 Hostless Capture",
23239 0, 0, 0, 0),
23240 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_5_DL_HL",
23241 "Quaternary TDM5 Hostless Playback",
23242 0, 0, 0, 0),
23243 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_5_UL_HL",
23244 "Quaternary TDM5 Hostless Capture",
23245 0, 0, 0, 0),
23246 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_6_DL_HL",
23247 "Quaternary TDM6 Hostless Playback",
23248 0, 0, 0, 0),
23249 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_6_UL_HL",
23250 "Quaternary TDM6 Hostless Capture",
23251 0, 0, 0, 0),
23252 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_7_DL_HL",
23253 "Quaternary TDM7 Hostless Playback",
23254 0, 0, 0, 0),
23255 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_7_UL_HL",
23256 "Quaternary TDM7 Hostless Capture",
23257 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053023258 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_0_DL_HL",
23259 "Quinary TDM0 Hostless Playback",
23260 0, 0, 0, 0),
23261 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_0_UL_HL",
23262 "Quinary TDM0 Hostless Capture",
23263 0, 0, 0, 0),
23264 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_1_DL_HL",
23265 "Quinary TDM1 Hostless Playback",
23266 0, 0, 0, 0),
23267 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_1_UL_HL",
23268 "Quinary TDM1 Hostless Capture",
23269 0, 0, 0, 0),
23270 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_2_DL_HL",
23271 "Quinary TDM2 Hostless Playback",
23272 0, 0, 0, 0),
23273 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_2_UL_HL",
23274 "Quinary TDM2 Hostless Capture",
23275 0, 0, 0, 0),
23276 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_3_DL_HL",
23277 "Quinary TDM3 Hostless Playback",
23278 0, 0, 0, 0),
23279 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_3_UL_HL",
23280 "Quinary TDM3 Hostless Capture",
23281 0, 0, 0, 0),
23282 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_4_DL_HL",
23283 "Quinary TDM4 Hostless Playback",
23284 0, 0, 0, 0),
23285 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_4_UL_HL",
23286 "Quinary TDM4 Hostless Capture",
23287 0, 0, 0, 0),
23288 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_5_DL_HL",
23289 "Quinary TDM5 Hostless Playback",
23290 0, 0, 0, 0),
23291 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_5_UL_HL",
23292 "Quinary TDM5 Hostless Capture",
23293 0, 0, 0, 0),
23294 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_6_DL_HL",
23295 "Quinary TDM6 Hostless Playback",
23296 0, 0, 0, 0),
23297 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_6_UL_HL",
23298 "Quinary TDM6 Hostless Capture",
23299 0, 0, 0, 0),
23300 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_7_DL_HL",
23301 "Quinary TDM7 Hostless Playback",
23302 0, 0, 0, 0),
23303 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_7_UL_HL",
23304 "Quinary TDM7 Hostless Capture",
23305 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023306 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_0_DL_HL",
23307 "Senary TDM0 Hostless Playback",
23308 0, 0, 0, 0),
23309 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_0_UL_HL",
23310 "Senary TDM0 Hostless Capture",
23311 0, 0, 0, 0),
23312 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_1_DL_HL",
23313 "Senary TDM1 Hostless Playback",
23314 0, 0, 0, 0),
23315 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_1_UL_HL",
23316 "Senary TDM1 Hostless Capture",
23317 0, 0, 0, 0),
23318 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_2_DL_HL",
23319 "Senary TDM2 Hostless Playback",
23320 0, 0, 0, 0),
23321 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_2_UL_HL",
23322 "Senary TDM2 Hostless Capture",
23323 0, 0, 0, 0),
23324 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_3_DL_HL",
23325 "Senary TDM3 Hostless Playback",
23326 0, 0, 0, 0),
23327 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_3_UL_HL",
23328 "Senary TDM3 Hostless Capture",
23329 0, 0, 0, 0),
23330 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_4_DL_HL",
23331 "Senary TDM4 Hostless Playback",
23332 0, 0, 0, 0),
23333 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_4_UL_HL",
23334 "Senary TDM4 Hostless Capture",
23335 0, 0, 0, 0),
23336 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_5_DL_HL",
23337 "Senary TDM5 Hostless Playback",
23338 0, 0, 0, 0),
23339 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_5_UL_HL",
23340 "Senary TDM5 Hostless Capture",
23341 0, 0, 0, 0),
23342 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_6_DL_HL",
23343 "Senary TDM6 Hostless Playback",
23344 0, 0, 0, 0),
23345 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_6_UL_HL",
23346 "Senary TDM6 Hostless Capture",
23347 0, 0, 0, 0),
23348 SND_SOC_DAPM_AIF_IN("SEN_TDM_RX_7_DL_HL",
23349 "Senary TDM7 Hostless Playback",
23350 0, 0, 0, 0),
23351 SND_SOC_DAPM_AIF_OUT("SEN_TDM_TX_7_UL_HL",
23352 "Senary TDM7 Hostless Capture",
23353 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023354
23355 /* LSM */
23356 SND_SOC_DAPM_AIF_OUT("LSM1_UL_HL", "Listen 1 Audio Service Capture",
23357 0, 0, 0, 0),
23358 SND_SOC_DAPM_AIF_OUT("LSM2_UL_HL", "Listen 2 Audio Service Capture",
23359 0, 0, 0, 0),
23360 SND_SOC_DAPM_AIF_OUT("LSM3_UL_HL", "Listen 3 Audio Service Capture",
23361 0, 0, 0, 0),
23362 SND_SOC_DAPM_AIF_OUT("LSM4_UL_HL", "Listen 4 Audio Service Capture",
23363 0, 0, 0, 0),
23364 SND_SOC_DAPM_AIF_OUT("LSM5_UL_HL", "Listen 5 Audio Service Capture",
23365 0, 0, 0, 0),
23366 SND_SOC_DAPM_AIF_OUT("LSM6_UL_HL", "Listen 6 Audio Service Capture",
23367 0, 0, 0, 0),
23368 SND_SOC_DAPM_AIF_OUT("LSM7_UL_HL", "Listen 7 Audio Service Capture",
23369 0, 0, 0, 0),
23370 SND_SOC_DAPM_AIF_OUT("LSM8_UL_HL", "Listen 8 Audio Service Capture",
23371 0, 0, 0, 0),
23372 SND_SOC_DAPM_AIF_IN("QCHAT_DL", "QCHAT Playback", 0, 0, 0, 0),
23373 SND_SOC_DAPM_AIF_OUT("QCHAT_UL", "QCHAT Capture", 0, 0, 0, 0),
23374 /* Backend AIF */
23375 /* Stream name equals to backend dai link stream name */
23376 SND_SOC_DAPM_AIF_OUT("PRI_I2S_RX", "Primary I2S Playback", 0, 0, 0, 0),
23377 SND_SOC_DAPM_AIF_OUT("SEC_I2S_RX", "Secondary I2S Playback",
23378 0, 0, 0, 0),
Ralf Herzc8701f72018-06-20 11:37:35 +020023379 SND_SOC_DAPM_AIF_OUT("PRI_SPDIF_RX", "Primary SPDIF Playback",
23380 0, 0, 0, 0),
23381 SND_SOC_DAPM_AIF_IN("PRI_SPDIF_TX", "Primary SPDIF Capture",
23382 0, 0, 0, 0),
23383 SND_SOC_DAPM_AIF_OUT("SEC_SPDIF_RX", "Secondary SPDIF Playback",
23384 0, 0, 0, 0),
23385 SND_SOC_DAPM_AIF_IN("SEC_SPDIF_TX", "Secondary SPDIF Capture",
23386 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023387 SND_SOC_DAPM_AIF_OUT("SLIMBUS_0_RX", "Slimbus Playback", 0, 0, 0, 0),
23388 SND_SOC_DAPM_AIF_OUT("SLIMBUS_2_RX", "Slimbus2 Playback", 0, 0, 0, 0),
23389 SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_RX", "Slimbus5 Playback", 0, 0, 0, 0),
23390 SND_SOC_DAPM_AIF_OUT("HDMI", "HDMI Playback", 0, 0, 0, 0),
23391 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT", "Display Port Playback",
23392 0, 0, 0, 0),
Karthikeyan Mani57550082018-05-03 18:43:58 -070023393 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT1", "Display Port1 Playback",
23394 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023395 SND_SOC_DAPM_AIF_OUT("MI2S_RX", "MI2S Playback", 0, 0, 0, 0),
23396 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_RX", "Quaternary MI2S Playback",
23397 0, 0, 0, 0),
23398 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_RX", "Tertiary MI2S Playback",
23399 0, 0, 0, 0),
23400 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX", "Secondary MI2S Playback",
23401 0, 0, 0, 0),
23402 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX_SD1",
23403 "Secondary MI2S Playback SD1",
23404 0, 0, 0, 0),
23405 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_RX", "Primary MI2S Playback",
23406 0, 0, 0, 0),
23407 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_RX", "INT0 MI2S Playback",
23408 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023409 SND_SOC_DAPM_AIF_OUT("INT2_MI2S_RX", "INT2 MI2S Playback",
23410 0, 0, 0, 0),
23411 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_RX", "INT3 MI2S Playback",
23412 0, 0, 0, 0),
23413 SND_SOC_DAPM_AIF_OUT("INT5_MI2S_RX", "INT5 MI2S Playback",
23414 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023415 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_RX", "INT4 MI2S Playback",
23416 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023417 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_TX", "INT4 MI2S Capture",
23418 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023419 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_RX", "Quinary MI2S Playback",
23420 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023421 SND_SOC_DAPM_AIF_OUT("SEN_MI2S_RX", "Senary MI2S Playback",
23422 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023423 SND_SOC_DAPM_AIF_IN("PRI_I2S_TX", "Primary I2S Capture", 0, 0, 0, 0),
23424 SND_SOC_DAPM_AIF_IN("MI2S_TX", "MI2S Capture", 0, 0, 0, 0),
23425 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_TX", "Quaternary MI2S Capture",
23426 0, 0, 0, 0),
23427 SND_SOC_DAPM_AIF_IN("PRI_MI2S_TX", "Primary MI2S Capture",
23428 0, 0, 0, 0),
23429 SND_SOC_DAPM_AIF_IN("TERT_MI2S_TX", "Tertiary MI2S Capture",
23430 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053023431 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_TX", "INT0 MI2S Capture",
23432 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023433 SND_SOC_DAPM_AIF_IN("INT2_MI2S_TX", "INT2 MI2S Capture",
23434 0, 0, 0, 0),
23435 SND_SOC_DAPM_AIF_IN("INT3_MI2S_TX", "INT3 MI2S Capture",
23436 0, 0, 0, 0),
23437 SND_SOC_DAPM_AIF_IN("SEC_MI2S_TX", "Secondary MI2S Capture",
23438 0, 0, 0, 0),
23439 SND_SOC_DAPM_AIF_IN("SLIMBUS_0_TX", "Slimbus Capture", 0, 0, 0, 0),
23440 SND_SOC_DAPM_AIF_IN("SLIMBUS_2_TX", "Slimbus2 Capture", 0, 0, 0, 0),
23441 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_TX", "Quinary MI2S Capture",
23442 0, 0, 0, 0),
23443 SND_SOC_DAPM_AIF_IN("SENARY_MI2S_TX", "Senary MI2S Capture",
23444 0, 0, 0, 0),
23445 SND_SOC_DAPM_AIF_OUT("INT_BT_SCO_RX", "Internal BT-SCO Playback",
23446 0, 0, 0, 0),
23447 SND_SOC_DAPM_AIF_IN("INT_BT_SCO_TX", "Internal BT-SCO Capture",
23448 0, 0, 0, 0),
23449 SND_SOC_DAPM_AIF_OUT("INT_BT_A2DP_RX", "Internal BT-A2DP Playback",
23450 0, 0, 0, 0),
23451 SND_SOC_DAPM_AIF_OUT("INT_FM_RX", "Internal FM Playback",
23452 0, 0, 0, 0),
23453 SND_SOC_DAPM_AIF_IN("INT_FM_TX", "Internal FM Capture",
23454 0, 0, 0, 0),
23455 SND_SOC_DAPM_AIF_OUT("PCM_RX", "AFE Playback",
23456 0, 0, 0, 0),
23457 SND_SOC_DAPM_AIF_IN("PCM_TX", "AFE Capture",
23458 0, 0, 0, 0),
23459 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_0", "Primary TDM0 Playback",
23460 0, 0, 0, 0),
23461 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_0", "Primary TDM0 Capture",
23462 0, 0, 0, 0),
23463 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_1", "Primary TDM1 Playback",
23464 0, 0, 0, 0),
23465 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_1", "Primary TDM1 Capture",
23466 0, 0, 0, 0),
23467 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_2", "Primary TDM2 Playback",
23468 0, 0, 0, 0),
23469 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_2", "Primary TDM2 Capture",
23470 0, 0, 0, 0),
23471 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_3", "Primary TDM3 Playback",
23472 0, 0, 0, 0),
23473 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_3", "Primary TDM3 Capture",
23474 0, 0, 0, 0),
23475 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_4", "Primary TDM4 Playback",
23476 0, 0, 0, 0),
23477 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_4", "Primary TDM4 Capture",
23478 0, 0, 0, 0),
23479 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_5", "Primary TDM5 Playback",
23480 0, 0, 0, 0),
23481 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_5", "Primary TDM5 Capture",
23482 0, 0, 0, 0),
23483 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_6", "Primary TDM6 Playback",
23484 0, 0, 0, 0),
23485 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_6", "Primary TDM6 Capture",
23486 0, 0, 0, 0),
23487 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_7", "Primary TDM7 Playback",
23488 0, 0, 0, 0),
23489 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_7", "Primary TDM7 Capture",
23490 0, 0, 0, 0),
23491 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_0", "Secondary TDM0 Playback",
23492 0, 0, 0, 0),
23493 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_0", "Secondary TDM0 Capture",
23494 0, 0, 0, 0),
23495 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_1", "Secondary TDM1 Playback",
23496 0, 0, 0, 0),
23497 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_1", "Secondary TDM1 Capture",
23498 0, 0, 0, 0),
23499 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_2", "Secondary TDM2 Playback",
23500 0, 0, 0, 0),
23501 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_2", "Secondary TDM2 Capture",
23502 0, 0, 0, 0),
23503 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_3", "Secondary TDM3 Playback",
23504 0, 0, 0, 0),
23505 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_3", "Secondary TDM3 Capture",
23506 0, 0, 0, 0),
23507 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_4", "Secondary TDM4 Playback",
23508 0, 0, 0, 0),
23509 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_4", "Secondary TDM4 Capture",
23510 0, 0, 0, 0),
23511 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_5", "Secondary TDM5 Playback",
23512 0, 0, 0, 0),
23513 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_5", "Secondary TDM5 Capture",
23514 0, 0, 0, 0),
23515 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_6", "Secondary TDM6 Playback",
23516 0, 0, 0, 0),
23517 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_6", "Secondary TDM6 Capture",
23518 0, 0, 0, 0),
23519 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_7", "Secondary TDM7 Playback",
23520 0, 0, 0, 0),
23521 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_7", "Secondary TDM7 Capture",
23522 0, 0, 0, 0),
23523 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_0", "Tertiary TDM0 Playback",
23524 0, 0, 0, 0),
23525 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_0", "Tertiary TDM0 Capture",
23526 0, 0, 0, 0),
23527 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_1", "Tertiary TDM1 Playback",
23528 0, 0, 0, 0),
23529 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_1", "Tertiary TDM1 Capture",
23530 0, 0, 0, 0),
23531 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_2", "Tertiary TDM2 Playback",
23532 0, 0, 0, 0),
23533 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_2", "Tertiary TDM2 Capture",
23534 0, 0, 0, 0),
23535 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_3", "Tertiary TDM3 Playback",
23536 0, 0, 0, 0),
23537 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_3", "Tertiary TDM3 Capture",
23538 0, 0, 0, 0),
23539 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_4", "Tertiary TDM4 Playback",
23540 0, 0, 0, 0),
23541 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_4", "Tertiary TDM4 Capture",
23542 0, 0, 0, 0),
23543 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_5", "Tertiary TDM5 Playback",
23544 0, 0, 0, 0),
23545 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_5", "Tertiary TDM5 Capture",
23546 0, 0, 0, 0),
23547 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_6", "Tertiary TDM6 Playback",
23548 0, 0, 0, 0),
23549 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_6", "Tertiary TDM6 Capture",
23550 0, 0, 0, 0),
23551 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_7", "Tertiary TDM7 Playback",
23552 0, 0, 0, 0),
23553 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_7", "Tertiary TDM7 Capture",
23554 0, 0, 0, 0),
23555 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_0", "Quaternary TDM0 Playback",
23556 0, 0, 0, 0),
23557 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_0", "Quaternary TDM0 Capture",
23558 0, 0, 0, 0),
23559 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_1", "Quaternary TDM1 Playback",
23560 0, 0, 0, 0),
23561 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_1", "Quaternary TDM1 Capture",
23562 0, 0, 0, 0),
23563 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_2", "Quaternary TDM2 Playback",
23564 0, 0, 0, 0),
23565 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_2", "Quaternary TDM2 Capture",
23566 0, 0, 0, 0),
23567 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_3", "Quaternary TDM3 Playback",
23568 0, 0, 0, 0),
23569 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_3", "Quaternary TDM3 Capture",
23570 0, 0, 0, 0),
23571 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_4", "Quaternary TDM4 Playback",
23572 0, 0, 0, 0),
23573 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_4", "Quaternary TDM4 Capture",
23574 0, 0, 0, 0),
23575 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_5", "Quaternary TDM5 Playback",
23576 0, 0, 0, 0),
23577 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_5", "Quaternary TDM5 Capture",
23578 0, 0, 0, 0),
23579 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_6", "Quaternary TDM6 Playback",
23580 0, 0, 0, 0),
23581 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_6", "Quaternary TDM6 Capture",
23582 0, 0, 0, 0),
23583 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_7", "Quaternary TDM7 Playback",
23584 0, 0, 0, 0),
23585 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_7", "Quaternary TDM7 Capture",
23586 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053023587 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_0", "Quinary TDM0 Playback",
23588 0, 0, 0, 0),
23589 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_0", "Quinary TDM0 Capture",
23590 0, 0, 0, 0),
23591 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_1", "Quinary TDM1 Playback",
23592 0, 0, 0, 0),
23593 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_1", "Quinary TDM1 Capture",
23594 0, 0, 0, 0),
23595 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_2", "Quinary TDM2 Playback",
23596 0, 0, 0, 0),
23597 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_2", "Quinary TDM2 Capture",
23598 0, 0, 0, 0),
23599 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_3", "Quinary TDM3 Playback",
23600 0, 0, 0, 0),
23601 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_3", "Quinary TDM3 Capture",
23602 0, 0, 0, 0),
23603 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_4", "Quinary TDM4 Playback",
23604 0, 0, 0, 0),
23605 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_4", "Quinary TDM4 Capture",
23606 0, 0, 0, 0),
23607 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_5", "Quinary TDM5 Playback",
23608 0, 0, 0, 0),
23609 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_5", "Quinary TDM5 Capture",
23610 0, 0, 0, 0),
23611 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_6", "Quinary TDM6 Playback",
23612 0, 0, 0, 0),
23613 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_6", "Quinary TDM6 Capture",
23614 0, 0, 0, 0),
23615 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_7", "Quinary TDM7 Playback",
23616 0, 0, 0, 0),
23617 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_7", "Quinary TDM7 Capture",
23618 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023619 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_0", "Senary TDM0 Playback",
23620 0, 0, 0, 0),
23621 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_0", "Senary TDM0 Capture",
23622 0, 0, 0, 0),
23623 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_1", "Senary TDM1 Playback",
23624 0, 0, 0, 0),
23625 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_1", "Senary TDM1 Capture",
23626 0, 0, 0, 0),
23627 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_2", "Senary TDM2 Playback",
23628 0, 0, 0, 0),
23629 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_2", "Senary TDM2 Capture",
23630 0, 0, 0, 0),
23631 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_3", "Senary TDM3 Playback",
23632 0, 0, 0, 0),
23633 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_3", "Senary TDM3 Capture",
23634 0, 0, 0, 0),
23635 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_4", "Senary TDM4 Playback",
23636 0, 0, 0, 0),
23637 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_4", "Senary TDM4 Capture",
23638 0, 0, 0, 0),
23639 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_5", "Senary TDM5 Playback",
23640 0, 0, 0, 0),
23641 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_5", "Senary TDM5 Capture",
23642 0, 0, 0, 0),
23643 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_6", "Senary TDM6 Playback",
23644 0, 0, 0, 0),
23645 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_6", "Senary TDM6 Capture",
23646 0, 0, 0, 0),
23647 SND_SOC_DAPM_AIF_OUT("SEN_TDM_RX_7", "Senary TDM7 Playback",
23648 0, 0, 0, 0),
23649 SND_SOC_DAPM_AIF_IN("SEN_TDM_TX_7", "Senary TDM7 Capture",
23650 0, 0, 0, 0),
Ralf Herz29e07132019-07-26 15:15:21 +020023651 SND_SOC_DAPM_AIF_OUT("PRI_META_MI2S_RX", "Primary META MI2S Playback",
23652 0, 0, 0, 0),
23653 SND_SOC_DAPM_AIF_OUT("SEC_META_MI2S_RX", "Secondary META MI2S Playback",
23654 0, 0, 0, 0),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023655 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_0", "WSA CDC DMA0 Playback",
23656 0, 0, 0, 0),
23657 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_0", "WSA CDC DMA0 Capture",
23658 0, 0, 0, 0),
23659 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_1", "WSA CDC DMA1 Playback",
23660 0, 0, 0, 0),
23661 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_1", "WSA CDC DMA1 Capture",
23662 0, 0, 0, 0),
23663 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_2", "WSA CDC DMA2 Capture",
23664 0, 0, 0, 0),
23665 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_0", "VA CDC DMA0 Capture",
23666 0, 0, 0, 0),
23667 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_1", "VA CDC DMA1 Capture",
23668 0, 0, 0, 0),
Xiaoyu Yef439aed2019-01-02 16:40:01 -080023669 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_2", "VA CDC DMA2 Capture",
23670 0, 0, 0, 0),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023671 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_0", "RX CDC DMA0 Playback",
23672 0, 0, 0, 0),
23673 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_0", "TX CDC DMA0 Capture",
23674 0, 0, 0, 0),
23675 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_1", "RX CDC DMA1 Playback",
23676 0, 0, 0, 0),
23677 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_1", "TX CDC DMA1 Capture",
23678 0, 0, 0, 0),
23679 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_2", "RX CDC DMA2 Playback",
23680 0, 0, 0, 0),
23681 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_2", "TX CDC DMA2 Capture",
23682 0, 0, 0, 0),
23683 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_3", "RX CDC DMA3 Playback",
23684 0, 0, 0, 0),
23685 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_3", "TX CDC DMA3 Capture",
23686 0, 0, 0, 0),
23687 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_4", "RX CDC DMA4 Playback",
23688 0, 0, 0, 0),
23689 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_4", "TX CDC DMA4 Capture",
23690 0, 0, 0, 0),
23691 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_5", "RX CDC DMA5 Playback",
23692 0, 0, 0, 0),
23693 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_5", "TX CDC DMA5 Capture",
23694 0, 0, 0, 0),
23695 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_6", "RX CDC DMA6 Playback",
23696 0, 0, 0, 0),
23697 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_7", "RX CDC DMA7 Playback",
23698 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023699 /* incall */
23700 SND_SOC_DAPM_AIF_OUT("VOICE_PLAYBACK_TX", "Voice Farend Playback",
23701 0, 0, 0, 0),
23702 SND_SOC_DAPM_AIF_OUT("VOICE2_PLAYBACK_TX", "Voice2 Farend Playback",
23703 0, 0, 0, 0),
23704 SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_RX", "Slimbus4 Playback",
23705 0, 0, 0, 0),
23706 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_TX", "Voice Uplink Capture",
23707 0, 0, 0, 0),
23708 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_RX", "Voice Downlink Capture",
23709 0, 0, 0, 0),
23710 SND_SOC_DAPM_AIF_IN("SLIMBUS_4_TX", "Slimbus4 Capture",
23711 0, 0, 0, 0),
23712 SND_SOC_DAPM_AIF_IN("SENARY_TX", "Senary_mi2s Capture",
23713 0, 0, 0, 0),
23714 SND_SOC_DAPM_AIF_IN("INT5_MI2S_TX", "INT5 MI2S Capture",
23715 0, 0, 0, 0),
23716 SND_SOC_DAPM_AIF_IN("SLIMBUS_5_TX", "Slimbus5 Capture", 0, 0, 0, 0),
23717
23718 SND_SOC_DAPM_AIF_OUT("AUX_PCM_RX", "AUX PCM Playback", 0, 0, 0, 0),
23719 SND_SOC_DAPM_AIF_IN("AUX_PCM_TX", "AUX PCM Capture", 0, 0, 0, 0),
23720 SND_SOC_DAPM_AIF_OUT("SEC_AUX_PCM_RX", "Sec AUX PCM Playback",
23721 0, 0, 0, 0),
23722 SND_SOC_DAPM_AIF_IN("SEC_AUX_PCM_TX", "Sec AUX PCM Capture",
23723 0, 0, 0, 0),
23724 SND_SOC_DAPM_AIF_OUT("TERT_AUX_PCM_RX", "Tert AUX PCM Playback",
23725 0, 0, 0, 0),
23726 SND_SOC_DAPM_AIF_IN("TERT_AUX_PCM_TX", "Tert AUX PCM Capture",
23727 0, 0, 0, 0),
23728 SND_SOC_DAPM_AIF_OUT("QUAT_AUX_PCM_RX", "Quat AUX PCM Playback",
23729 0, 0, 0, 0),
23730 SND_SOC_DAPM_AIF_IN("QUAT_AUX_PCM_TX", "Quat AUX PCM Capture",
23731 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053023732 SND_SOC_DAPM_AIF_OUT("QUIN_AUX_PCM_RX", "Quin AUX PCM Playback",
23733 0, 0, 0, 0),
23734 SND_SOC_DAPM_AIF_IN("QUIN_AUX_PCM_TX", "Quin AUX PCM Capture",
23735 0, 0, 0, 0),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023736 SND_SOC_DAPM_AIF_OUT("SEN_AUX_PCM_RX", "Sen AUX PCM Playback",
23737 0, 0, 0, 0),
23738 SND_SOC_DAPM_AIF_IN("SEN_AUX_PCM_TX", "Sen AUX PCM Capture",
23739 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023740 SND_SOC_DAPM_AIF_IN("VOICE_STUB_DL", "VOICE_STUB Playback", 0, 0, 0, 0),
23741 SND_SOC_DAPM_AIF_OUT("VOICE_STUB_UL", "VOICE_STUB Capture", 0, 0, 0, 0),
23742 SND_SOC_DAPM_AIF_IN("VOICE2_STUB_DL", "VOICE2_STUB Playback",
23743 0, 0, 0, 0),
23744 SND_SOC_DAPM_AIF_OUT("VOICE2_STUB_UL", "VOICE2_STUB Capture",
23745 0, 0, 0, 0),
23746 SND_SOC_DAPM_AIF_IN("VOLTE_STUB_DL", "VOLTE_STUB Playback", 0, 0, 0, 0),
23747 SND_SOC_DAPM_AIF_OUT("VOLTE_STUB_UL", "VOLTE_STUB Capture", 0, 0, 0, 0),
23748 SND_SOC_DAPM_AIF_OUT("STUB_RX", "Stub Playback", 0, 0, 0, 0),
23749 SND_SOC_DAPM_AIF_IN("STUB_TX", "Stub Capture", 0, 0, 0, 0),
23750 SND_SOC_DAPM_AIF_OUT("SLIMBUS_1_RX", "Slimbus1 Playback", 0, 0, 0, 0),
23751 SND_SOC_DAPM_AIF_IN("SLIMBUS_1_TX", "Slimbus1 Capture", 0, 0, 0, 0),
23752 SND_SOC_DAPM_AIF_IN("STUB_1_TX", "Stub1 Capture", 0, 0, 0, 0),
23753 SND_SOC_DAPM_AIF_OUT("SLIMBUS_3_RX", "Slimbus3 Playback", 0, 0, 0, 0),
23754 SND_SOC_DAPM_AIF_IN("SLIMBUS_3_TX", "Slimbus3 Capture", 0, 0, 0, 0),
23755 /* In- call recording */
23756 SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_RX", "Slimbus6 Playback", 0, 0, 0, 0),
23757 SND_SOC_DAPM_AIF_IN("SLIMBUS_6_TX", "Slimbus6 Capture", 0, 0, 0, 0),
Surendar Karkad47fda42018-05-20 19:21:10 +053023758 SND_SOC_DAPM_AIF_IN("AFE_LOOPBACK_TX", "AFE Loopback Capture",
23759 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023760 SND_SOC_DAPM_AIF_OUT("SLIMBUS_7_RX", "Slimbus7 Playback", 0, 0, 0, 0),
23761 SND_SOC_DAPM_AIF_IN("SLIMBUS_7_TX", "Slimbus7 Capture", 0, 0, 0, 0),
23762
23763 SND_SOC_DAPM_AIF_OUT("SLIMBUS_8_RX", "Slimbus8 Playback", 0, 0, 0, 0),
23764 SND_SOC_DAPM_AIF_IN("SLIMBUS_8_TX", "Slimbus8 Capture", 0, 0, 0, 0),
Surendar Karka3ef3d812018-09-28 18:52:35 +053023765 SND_SOC_DAPM_AIF_OUT("SLIMBUS_9_RX", "Slimbus9 Playback", 0, 0, 0, 0),
23766 SND_SOC_DAPM_AIF_IN("SLIMBUS_9_TX", "Slimbus9 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023767 SND_SOC_DAPM_AIF_OUT("USB_AUDIO_RX", "USB Audio Playback", 0, 0, 0, 0),
23768 SND_SOC_DAPM_AIF_IN("USB_AUDIO_TX", "USB Audio Capture", 0, 0, 0, 0),
23769
23770 /* Switch Definitions */
23771 SND_SOC_DAPM_SWITCH("SLIMBUS_DL_HL", SND_SOC_NOPM, 0, 0,
23772 &slim_fm_switch_mixer_controls),
23773 SND_SOC_DAPM_SWITCH("SLIMBUS1_DL_HL", SND_SOC_NOPM, 0, 0,
23774 &slim1_fm_switch_mixer_controls),
23775 SND_SOC_DAPM_SWITCH("SLIMBUS3_DL_HL", SND_SOC_NOPM, 0, 0,
23776 &slim3_fm_switch_mixer_controls),
23777 SND_SOC_DAPM_SWITCH("SLIMBUS4_DL_HL", SND_SOC_NOPM, 0, 0,
23778 &slim4_fm_switch_mixer_controls),
23779 SND_SOC_DAPM_SWITCH("SLIMBUS6_DL_HL", SND_SOC_NOPM, 0, 0,
23780 &slim6_fm_switch_mixer_controls),
23781 SND_SOC_DAPM_SWITCH("PCM_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23782 &pcm_rx_switch_mixer_controls),
23783 SND_SOC_DAPM_SWITCH("INT0_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23784 &int0_mi2s_rx_switch_mixer_controls),
23785 SND_SOC_DAPM_SWITCH("INT4_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23786 &int4_mi2s_rx_switch_mixer_controls),
23787 SND_SOC_DAPM_SWITCH("PRI_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23788 &pri_mi2s_rx_switch_mixer_controls),
23789 SND_SOC_DAPM_SWITCH("SEC_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23790 &sec_mi2s_rx_switch_mixer_controls),
23791 SND_SOC_DAPM_SWITCH("TERT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23792 &tert_mi2s_rx_switch_mixer_controls),
23793 SND_SOC_DAPM_SWITCH("QUAT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23794 &quat_mi2s_rx_switch_mixer_controls),
Rohit Kumara5077932017-09-10 22:05:05 +053023795 SND_SOC_DAPM_SWITCH("QUIN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23796 &quin_mi2s_rx_switch_mixer_controls),
Zhou Songcaa541d2019-02-19 18:37:47 +080023797 SND_SOC_DAPM_SWITCH("SCO_SLIM7_DL_HL", SND_SOC_NOPM, 0, 0,
23798 &sco_slim7_switch_mixer_controls),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023799 SND_SOC_DAPM_SWITCH("SEN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
23800 &sen_mi2s_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023801 SND_SOC_DAPM_SWITCH("HFP_PRI_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
23802 &hfp_pri_aux_switch_mixer_controls),
23803 SND_SOC_DAPM_SWITCH("HFP_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
23804 &hfp_aux_switch_mixer_controls),
23805 SND_SOC_DAPM_SWITCH("HFP_INT_UL_HL", SND_SOC_NOPM, 0, 0,
23806 &hfp_int_switch_mixer_controls),
23807 SND_SOC_DAPM_SWITCH("HFP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
23808 &hfp_slim7_switch_mixer_controls),
23809 SND_SOC_DAPM_SWITCH("USB_DL_HL", SND_SOC_NOPM, 0, 0,
23810 &usb_switch_mixer_controls),
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080023811 SND_SOC_DAPM_SWITCH("A2DP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
23812 &a2dp_slim7_switch_mixer_controls),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053023813 SND_SOC_DAPM_SWITCH("WSA_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053023814 &cdc_dma_wsa_switch_mixer_controls),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053023815 SND_SOC_DAPM_SWITCH("RX_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053023816 &cdc_dma_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023817
23818 /* Mixer definitions */
23819 SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23820 pri_i2s_rx_mixer_controls, ARRAY_SIZE(pri_i2s_rx_mixer_controls)),
23821 SND_SOC_DAPM_MIXER("SEC_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23822 sec_i2s_rx_mixer_controls, ARRAY_SIZE(sec_i2s_rx_mixer_controls)),
23823 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23824 slimbus_rx_mixer_controls, ARRAY_SIZE(slimbus_rx_mixer_controls)),
23825 SND_SOC_DAPM_MIXER("SLIMBUS_2_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23826 slimbus_2_rx_mixer_controls, ARRAY_SIZE(slimbus_2_rx_mixer_controls)),
23827 SND_SOC_DAPM_MIXER("SLIMBUS_5_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23828 slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
23829 SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23830 slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
Surendar Karka3ef3d812018-09-28 18:52:35 +053023831 SND_SOC_DAPM_MIXER("SLIMBUS_9_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23832 slimbus_9_rx_mixer_controls, ARRAY_SIZE(slimbus_9_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023833 SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
23834 hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
23835 SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
23836 display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070023837 SND_SOC_DAPM_MIXER("DISPLAY_PORT1 Mixer", SND_SOC_NOPM, 0, 0,
23838 display_port1_mixer_controls, ARRAY_SIZE(display_port1_mixer_controls)),
Ralf Herzc8701f72018-06-20 11:37:35 +020023839 SND_SOC_DAPM_MIXER("PRI_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23840 pri_spdif_rx_mixer_controls, ARRAY_SIZE(pri_spdif_rx_mixer_controls)),
23841 SND_SOC_DAPM_MIXER("SEC_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23842 sec_spdif_rx_mixer_controls, ARRAY_SIZE(sec_spdif_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023843 SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23844 mi2s_rx_mixer_controls, ARRAY_SIZE(mi2s_rx_mixer_controls)),
23845 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23846 quaternary_mi2s_rx_mixer_controls,
23847 ARRAY_SIZE(quaternary_mi2s_rx_mixer_controls)),
23848 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23849 tertiary_mi2s_rx_mixer_controls,
23850 ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
23851 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23852 secondary_mi2s_rx_mixer_controls,
23853 ARRAY_SIZE(secondary_mi2s_rx_mixer_controls)),
23854 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_SD1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23855 secondary_mi2s_rx2_mixer_controls,
23856 ARRAY_SIZE(secondary_mi2s_rx2_mixer_controls)),
23857 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23858 primary_mi2s_rx_mixer_controls,
23859 ARRAY_SIZE(primary_mi2s_rx_mixer_controls)),
23860 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23861 int0_mi2s_rx_mixer_controls,
23862 ARRAY_SIZE(int0_mi2s_rx_mixer_controls)),
23863 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23864 int4_mi2s_rx_mixer_controls,
23865 ARRAY_SIZE(int4_mi2s_rx_mixer_controls)),
23866 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23867 quinary_mi2s_rx_mixer_controls,
23868 ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023869 SND_SOC_DAPM_MIXER("SEN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23870 senary_mi2s_rx_mixer_controls,
23871 ARRAY_SIZE(senary_mi2s_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023872 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23873 pri_tdm_rx_0_mixer_controls,
23874 ARRAY_SIZE(pri_tdm_rx_0_mixer_controls)),
23875 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23876 pri_tdm_rx_1_mixer_controls,
23877 ARRAY_SIZE(pri_tdm_rx_1_mixer_controls)),
23878 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23879 pri_tdm_rx_2_mixer_controls,
23880 ARRAY_SIZE(pri_tdm_rx_2_mixer_controls)),
23881 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23882 pri_tdm_rx_3_mixer_controls,
23883 ARRAY_SIZE(pri_tdm_rx_3_mixer_controls)),
23884 SND_SOC_DAPM_MIXER("PRI_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23885 pri_tdm_tx_0_mixer_controls,
23886 ARRAY_SIZE(pri_tdm_tx_0_mixer_controls)),
23887 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23888 sec_tdm_rx_0_mixer_controls,
23889 ARRAY_SIZE(sec_tdm_rx_0_mixer_controls)),
23890 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23891 sec_tdm_rx_1_mixer_controls,
23892 ARRAY_SIZE(sec_tdm_rx_1_mixer_controls)),
23893 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23894 sec_tdm_rx_2_mixer_controls,
23895 ARRAY_SIZE(sec_tdm_rx_2_mixer_controls)),
23896 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23897 sec_tdm_rx_3_mixer_controls,
23898 ARRAY_SIZE(sec_tdm_rx_3_mixer_controls)),
23899 SND_SOC_DAPM_MIXER("SEC_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23900 sec_tdm_tx_0_mixer_controls,
23901 ARRAY_SIZE(sec_tdm_tx_0_mixer_controls)),
23902 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23903 tert_tdm_rx_0_mixer_controls,
23904 ARRAY_SIZE(tert_tdm_rx_0_mixer_controls)),
23905 SND_SOC_DAPM_MIXER("TERT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23906 tert_tdm_tx_0_mixer_controls,
23907 ARRAY_SIZE(tert_tdm_tx_0_mixer_controls)),
23908 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23909 tert_tdm_rx_1_mixer_controls,
23910 ARRAY_SIZE(tert_tdm_rx_1_mixer_controls)),
23911 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23912 tert_tdm_rx_2_mixer_controls,
23913 ARRAY_SIZE(tert_tdm_rx_2_mixer_controls)),
23914 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23915 tert_tdm_rx_3_mixer_controls,
23916 ARRAY_SIZE(tert_tdm_rx_3_mixer_controls)),
23917 SND_SOC_DAPM_MIXER("TERT_TDM_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
23918 tert_tdm_rx_4_mixer_controls,
23919 ARRAY_SIZE(tert_tdm_rx_4_mixer_controls)),
23920 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23921 quat_tdm_rx_0_mixer_controls,
23922 ARRAY_SIZE(quat_tdm_rx_0_mixer_controls)),
23923 SND_SOC_DAPM_MIXER("QUAT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23924 quat_tdm_tx_0_mixer_controls,
23925 ARRAY_SIZE(quat_tdm_tx_0_mixer_controls)),
23926 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23927 quat_tdm_rx_1_mixer_controls,
23928 ARRAY_SIZE(quat_tdm_rx_1_mixer_controls)),
23929 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23930 quat_tdm_rx_2_mixer_controls,
23931 ARRAY_SIZE(quat_tdm_rx_2_mixer_controls)),
23932 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23933 quat_tdm_rx_3_mixer_controls,
23934 ARRAY_SIZE(quat_tdm_rx_3_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053023935 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23936 quin_tdm_rx_0_mixer_controls,
23937 ARRAY_SIZE(quin_tdm_rx_0_mixer_controls)),
23938 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23939 quin_tdm_tx_0_mixer_controls,
23940 ARRAY_SIZE(quin_tdm_tx_0_mixer_controls)),
23941 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23942 quin_tdm_rx_1_mixer_controls,
23943 ARRAY_SIZE(quin_tdm_rx_1_mixer_controls)),
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053023944 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23945 quin_tdm_tx_1_mixer_controls,
23946 ARRAY_SIZE(quin_tdm_tx_1_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053023947 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23948 quin_tdm_rx_2_mixer_controls,
23949 ARRAY_SIZE(quin_tdm_rx_2_mixer_controls)),
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053023950 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23951 quin_tdm_tx_2_mixer_controls,
23952 ARRAY_SIZE(quin_tdm_tx_2_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053023953 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23954 quin_tdm_rx_3_mixer_controls,
23955 ARRAY_SIZE(quin_tdm_rx_3_mixer_controls)),
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053023956 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23957 quin_tdm_tx_3_mixer_controls,
23958 ARRAY_SIZE(quin_tdm_tx_3_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070023959 SND_SOC_DAPM_MIXER("SEN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23960 sen_tdm_tx_0_mixer_controls,
23961 ARRAY_SIZE(sen_tdm_tx_0_mixer_controls)),
23962 SND_SOC_DAPM_MIXER("SEN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23963 sen_tdm_rx_0_mixer_controls,
23964 ARRAY_SIZE(sen_tdm_rx_0_mixer_controls)),
23965 SND_SOC_DAPM_MIXER("SEN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23966 sen_tdm_rx_1_mixer_controls,
23967 ARRAY_SIZE(sen_tdm_rx_1_mixer_controls)),
23968 SND_SOC_DAPM_MIXER("SEN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23969 sen_tdm_rx_2_mixer_controls,
23970 ARRAY_SIZE(sen_tdm_rx_2_mixer_controls)),
23971 SND_SOC_DAPM_MIXER("SEN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23972 sen_tdm_rx_3_mixer_controls,
23973 ARRAY_SIZE(sen_tdm_rx_3_mixer_controls)),
Ralf Herz29e07132019-07-26 15:15:21 +020023974 SND_SOC_DAPM_MIXER("PRI_META_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23975 pri_meta_mi2s_rx_mixer_controls,
23976 ARRAY_SIZE(pri_meta_mi2s_rx_mixer_controls)),
23977 SND_SOC_DAPM_MIXER("SEC_META_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
23978 sec_meta_mi2s_rx_mixer_controls,
23979 ARRAY_SIZE(sec_meta_mi2s_rx_mixer_controls)),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053023980 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23981 wsa_cdc_dma_rx_0_mixer_controls,
23982 ARRAY_SIZE(wsa_cdc_dma_rx_0_mixer_controls)),
23983 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23984 wsa_cdc_dma_rx_1_mixer_controls,
23985 ARRAY_SIZE(wsa_cdc_dma_rx_1_mixer_controls)),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053023986 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
23987 rx_cdc_dma_rx_0_mixer_controls,
23988 ARRAY_SIZE(rx_cdc_dma_rx_0_mixer_controls)),
23989 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
23990 rx_cdc_dma_rx_1_mixer_controls,
23991 ARRAY_SIZE(rx_cdc_dma_rx_1_mixer_controls)),
23992 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
23993 rx_cdc_dma_rx_2_mixer_controls,
23994 ARRAY_SIZE(rx_cdc_dma_rx_2_mixer_controls)),
23995 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
23996 rx_cdc_dma_rx_3_mixer_controls,
23997 ARRAY_SIZE(rx_cdc_dma_rx_3_mixer_controls)),
23998 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
23999 rx_cdc_dma_rx_4_mixer_controls,
24000 ARRAY_SIZE(rx_cdc_dma_rx_4_mixer_controls)),
24001 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_5 Audio Mixer", SND_SOC_NOPM, 0, 0,
24002 rx_cdc_dma_rx_5_mixer_controls,
24003 ARRAY_SIZE(rx_cdc_dma_rx_5_mixer_controls)),
24004 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_6 Audio Mixer", SND_SOC_NOPM, 0, 0,
24005 rx_cdc_dma_rx_6_mixer_controls,
24006 ARRAY_SIZE(rx_cdc_dma_rx_6_mixer_controls)),
24007 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_7 Audio Mixer", SND_SOC_NOPM, 0, 0,
24008 rx_cdc_dma_rx_7_mixer_controls,
24009 ARRAY_SIZE(rx_cdc_dma_rx_7_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024010 SND_SOC_DAPM_MIXER("MultiMedia1 Mixer", SND_SOC_NOPM, 0, 0,
24011 mmul1_mixer_controls, ARRAY_SIZE(mmul1_mixer_controls)),
24012 SND_SOC_DAPM_MIXER("MultiMedia2 Mixer", SND_SOC_NOPM, 0, 0,
24013 mmul2_mixer_controls, ARRAY_SIZE(mmul2_mixer_controls)),
24014 SND_SOC_DAPM_MIXER("MultiMedia3 Mixer", SND_SOC_NOPM, 0, 0,
24015 mmul3_mixer_controls, ARRAY_SIZE(mmul3_mixer_controls)),
24016 SND_SOC_DAPM_MIXER("MultiMedia4 Mixer", SND_SOC_NOPM, 0, 0,
24017 mmul4_mixer_controls, ARRAY_SIZE(mmul4_mixer_controls)),
24018 SND_SOC_DAPM_MIXER("MultiMedia5 Mixer", SND_SOC_NOPM, 0, 0,
24019 mmul5_mixer_controls, ARRAY_SIZE(mmul5_mixer_controls)),
24020 SND_SOC_DAPM_MIXER("MultiMedia6 Mixer", SND_SOC_NOPM, 0, 0,
24021 mmul6_mixer_controls, ARRAY_SIZE(mmul6_mixer_controls)),
24022 SND_SOC_DAPM_MIXER("MultiMedia8 Mixer", SND_SOC_NOPM, 0, 0,
24023 mmul8_mixer_controls, ARRAY_SIZE(mmul8_mixer_controls)),
24024 SND_SOC_DAPM_MIXER("MultiMedia9 Mixer", SND_SOC_NOPM, 0, 0,
24025 mmul9_mixer_controls, ARRAY_SIZE(mmul9_mixer_controls)),
Laxminath Kasam38070be2017-08-17 18:21:59 +053024026 SND_SOC_DAPM_MIXER("MultiMedia10 Mixer", SND_SOC_NOPM, 0, 0,
24027 mmul10_mixer_controls, ARRAY_SIZE(mmul10_mixer_controls)),
Asish Bhattacharya34504582017-08-08 12:55:01 +053024028 SND_SOC_DAPM_MIXER("MultiMedia16 Mixer", SND_SOC_NOPM, 0, 0,
24029 mmul16_mixer_controls, ARRAY_SIZE(mmul16_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024030 SND_SOC_DAPM_MIXER("MultiMedia17 Mixer", SND_SOC_NOPM, 0, 0,
24031 mmul17_mixer_controls, ARRAY_SIZE(mmul17_mixer_controls)),
24032 SND_SOC_DAPM_MIXER("MultiMedia18 Mixer", SND_SOC_NOPM, 0, 0,
24033 mmul18_mixer_controls, ARRAY_SIZE(mmul18_mixer_controls)),
24034 SND_SOC_DAPM_MIXER("MultiMedia19 Mixer", SND_SOC_NOPM, 0, 0,
24035 mmul19_mixer_controls, ARRAY_SIZE(mmul19_mixer_controls)),
24036 SND_SOC_DAPM_MIXER("MultiMedia20 Mixer", SND_SOC_NOPM, 0, 0,
24037 mmul20_mixer_controls, ARRAY_SIZE(mmul20_mixer_controls)),
Derek Chen07c6d1c2018-07-05 10:39:25 -070024038 SND_SOC_DAPM_MIXER("MultiMedia21 Mixer", SND_SOC_NOPM, 0, 0,
24039 mmul21_mixer_controls, ARRAY_SIZE(mmul21_mixer_controls)),
Derek Chenb097d922019-07-31 17:28:02 -070024040 SND_SOC_DAPM_MIXER("MultiMedia22 Mixer", SND_SOC_NOPM, 0, 0,
24041 mmul22_mixer_controls, ARRAY_SIZE(mmul22_mixer_controls)),
Surendar Karkac1cde372018-08-14 18:56:24 +053024042 SND_SOC_DAPM_MIXER("MultiMedia27 Mixer", SND_SOC_NOPM, 0, 0,
24043 mmul27_mixer_controls, ARRAY_SIZE(mmul27_mixer_controls)),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024044 SND_SOC_DAPM_MIXER("MultiMedia28 Mixer", SND_SOC_NOPM, 0, 0,
24045 mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
24046 SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
24047 mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024048 SND_SOC_DAPM_MIXER("MultiMedia30 Mixer", SND_SOC_NOPM, 0, 0,
24049 mmul30_mixer_controls, ARRAY_SIZE(mmul30_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024050 SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24051 auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
24052 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24053 sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
24054 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24055 tert_auxpcm_rx_mixer_controls,
24056 ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
24057 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24058 quat_auxpcm_rx_mixer_controls,
24059 ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024060 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24061 quin_auxpcm_rx_mixer_controls,
24062 ARRAY_SIZE(quin_auxpcm_rx_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024063 SND_SOC_DAPM_MIXER("SEN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24064 sen_auxpcm_rx_mixer_controls,
24065 ARRAY_SIZE(sen_auxpcm_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024066 /* incall */
24067 SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
24068 incall_music_delivery_mixer_controls,
24069 ARRAY_SIZE(incall_music_delivery_mixer_controls)),
24070 SND_SOC_DAPM_MIXER("Incall_Music_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
24071 incall_music2_delivery_mixer_controls,
24072 ARRAY_SIZE(incall_music2_delivery_mixer_controls)),
24073 SND_SOC_DAPM_MIXER("SLIMBUS_4_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24074 slimbus_4_rx_mixer_controls,
24075 ARRAY_SIZE(slimbus_4_rx_mixer_controls)),
24076 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24077 slimbus_6_rx_mixer_controls,
24078 ARRAY_SIZE(slimbus_6_rx_mixer_controls)),
24079 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24080 usb_audio_rx_mixer_controls,
24081 ARRAY_SIZE(usb_audio_rx_mixer_controls)),
24082 /* Voice Mixer */
24083 SND_SOC_DAPM_MIXER("PRI_RX_Voice Mixer",
24084 SND_SOC_NOPM, 0, 0, pri_rx_voice_mixer_controls,
24085 ARRAY_SIZE(pri_rx_voice_mixer_controls)),
24086 SND_SOC_DAPM_MIXER("SEC_RX_Voice Mixer",
24087 SND_SOC_NOPM, 0, 0,
24088 sec_i2s_rx_voice_mixer_controls,
24089 ARRAY_SIZE(sec_i2s_rx_voice_mixer_controls)),
24090 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_Voice Mixer",
24091 SND_SOC_NOPM, 0, 0,
24092 sec_mi2s_rx_voice_mixer_controls,
24093 ARRAY_SIZE(sec_mi2s_rx_voice_mixer_controls)),
24094 SND_SOC_DAPM_MIXER("SLIM_0_RX_Voice Mixer",
24095 SND_SOC_NOPM, 0, 0,
24096 slimbus_rx_voice_mixer_controls,
24097 ARRAY_SIZE(slimbus_rx_voice_mixer_controls)),
24098 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX_Voice Mixer",
24099 SND_SOC_NOPM, 0, 0,
24100 bt_sco_rx_voice_mixer_controls,
24101 ARRAY_SIZE(bt_sco_rx_voice_mixer_controls)),
24102 SND_SOC_DAPM_MIXER("AFE_PCM_RX_Voice Mixer",
24103 SND_SOC_NOPM, 0, 0,
24104 afe_pcm_rx_voice_mixer_controls,
24105 ARRAY_SIZE(afe_pcm_rx_voice_mixer_controls)),
24106 SND_SOC_DAPM_MIXER("AUX_PCM_RX_Voice Mixer",
24107 SND_SOC_NOPM, 0, 0,
24108 aux_pcm_rx_voice_mixer_controls,
24109 ARRAY_SIZE(aux_pcm_rx_voice_mixer_controls)),
24110 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX_Voice Mixer",
24111 SND_SOC_NOPM, 0, 0,
24112 sec_aux_pcm_rx_voice_mixer_controls,
24113 ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
24114 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
24115 SND_SOC_NOPM, 0, 0,
24116 tert_aux_pcm_rx_voice_mixer_controls,
24117 ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
24118 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
24119 SND_SOC_NOPM, 0, 0,
24120 quat_aux_pcm_rx_voice_mixer_controls,
24121 ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024122 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX_Voice Mixer",
24123 SND_SOC_NOPM, 0, 0,
24124 quin_aux_pcm_rx_voice_mixer_controls,
24125 ARRAY_SIZE(quin_aux_pcm_rx_voice_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024126 SND_SOC_DAPM_MIXER("SEN_AUX_PCM_RX_Voice Mixer",
24127 SND_SOC_NOPM, 0, 0,
24128 sen_aux_pcm_rx_voice_mixer_controls,
24129 ARRAY_SIZE(sen_aux_pcm_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024130 SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
24131 SND_SOC_NOPM, 0, 0,
24132 hdmi_rx_voice_mixer_controls,
24133 ARRAY_SIZE(hdmi_rx_voice_mixer_controls)),
24134 SND_SOC_DAPM_MIXER("MI2S_RX_Voice Mixer",
24135 SND_SOC_NOPM, 0, 0,
24136 mi2s_rx_voice_mixer_controls,
24137 ARRAY_SIZE(mi2s_rx_voice_mixer_controls)),
24138 SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer",
24139 SND_SOC_NOPM, 0, 0,
24140 pri_mi2s_rx_voice_mixer_controls,
24141 ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)),
24142 SND_SOC_DAPM_MIXER("INT0_MI2S_RX_Voice Mixer",
24143 SND_SOC_NOPM, 0, 0,
24144 int0_mi2s_rx_voice_mixer_controls,
24145 ARRAY_SIZE(int0_mi2s_rx_voice_mixer_controls)),
24146 SND_SOC_DAPM_MIXER("INT4_MI2S_RX_Voice Mixer",
24147 SND_SOC_NOPM, 0, 0,
24148 int4_mi2s_rx_voice_mixer_controls,
24149 ARRAY_SIZE(int4_mi2s_rx_voice_mixer_controls)),
24150 SND_SOC_DAPM_MIXER("TERT_MI2S_RX_Voice Mixer",
24151 SND_SOC_NOPM, 0, 0,
24152 tert_mi2s_rx_voice_mixer_controls,
24153 ARRAY_SIZE(tert_mi2s_rx_voice_mixer_controls)),
24154 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX_Voice Mixer",
24155 SND_SOC_NOPM, 0, 0,
24156 quat_mi2s_rx_voice_mixer_controls,
24157 ARRAY_SIZE(quat_mi2s_rx_voice_mixer_controls)),
24158 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX_Voice Mixer",
24159 SND_SOC_NOPM, 0, 0,
24160 quin_mi2s_rx_voice_mixer_controls,
24161 ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)),
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053024162 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0_Voice Mixer",
24163 SND_SOC_NOPM, 0, 0,
24164 pri_tdm_rx_0_voice_mixer_controls,
24165 ARRAY_SIZE(pri_tdm_rx_0_voice_mixer_controls)),
24166 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1_Voice Mixer",
24167 SND_SOC_NOPM, 0, 0,
24168 pri_tdm_rx_1_voice_mixer_controls,
24169 ARRAY_SIZE(pri_tdm_rx_1_voice_mixer_controls)),
24170 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2_Voice Mixer",
24171 SND_SOC_NOPM, 0, 0,
24172 pri_tdm_rx_2_voice_mixer_controls,
24173 ARRAY_SIZE(pri_tdm_rx_2_voice_mixer_controls)),
24174 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3_Voice Mixer",
24175 SND_SOC_NOPM, 0, 0,
24176 pri_tdm_rx_3_voice_mixer_controls,
24177 ARRAY_SIZE(pri_tdm_rx_3_voice_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024178 SND_SOC_DAPM_MIXER("SEN_MI2S_RX_Voice Mixer",
24179 SND_SOC_NOPM, 0, 0,
24180 sen_mi2s_rx_voice_mixer_controls,
24181 ARRAY_SIZE(sen_mi2s_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024182 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer",
24183 SND_SOC_NOPM, 0, 0,
24184 quat_tdm_rx_2_voice_mixer_controls,
24185 ARRAY_SIZE(quat_tdm_rx_2_voice_mixer_controls)),
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053024186 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2_Voice Mixer",
24187 SND_SOC_NOPM, 0, 0,
24188 quin_tdm_rx_2_voice_mixer_controls,
24189 ARRAY_SIZE(quin_tdm_rx_2_voice_mixer_controls)),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053024190 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0_Voice Mixer",
24191 SND_SOC_NOPM, 0, 0,
24192 wsa_cdc_dma_rx_0_voice_mixer_controls,
24193 ARRAY_SIZE(wsa_cdc_dma_rx_0_voice_mixer_controls)),
24194 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0_Voice Mixer",
24195 SND_SOC_NOPM, 0, 0,
24196 rx_cdc_dma_rx_0_voice_mixer_controls,
24197 ARRAY_SIZE(rx_cdc_dma_rx_0_voice_mixer_controls)),
Laxminath Kasamdcf2ab22019-11-01 15:33:47 +053024198 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1_Voice Mixer",
24199 SND_SOC_NOPM, 0, 0,
24200 rx_cdc_dma_rx_1_voice_mixer_controls,
24201 ARRAY_SIZE(rx_cdc_dma_rx_1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024202 SND_SOC_DAPM_MIXER("Voip_Tx Mixer",
24203 SND_SOC_NOPM, 0, 0, tx_voip_mixer_controls,
24204 ARRAY_SIZE(tx_voip_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024205 SND_SOC_DAPM_MIXER("VoiceMMode1_Tx Mixer",
24206 SND_SOC_NOPM, 0, 0, tx_voicemmode1_mixer_controls,
24207 ARRAY_SIZE(tx_voicemmode1_mixer_controls)),
24208 SND_SOC_DAPM_MIXER("VoiceMMode2_Tx Mixer",
24209 SND_SOC_NOPM, 0, 0, tx_voicemmode2_mixer_controls,
24210 ARRAY_SIZE(tx_voicemmode2_mixer_controls)),
24211 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24212 int_bt_sco_rx_mixer_controls, ARRAY_SIZE(int_bt_sco_rx_mixer_controls)),
24213 SND_SOC_DAPM_MIXER("INTERNAL_A2DP_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24214 int_bt_a2dp_rx_mixer_controls,
24215 ARRAY_SIZE(int_bt_a2dp_rx_mixer_controls)),
24216 SND_SOC_DAPM_MIXER("INTERNAL_FM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24217 int_fm_rx_mixer_controls, ARRAY_SIZE(int_fm_rx_mixer_controls)),
24218 SND_SOC_DAPM_MIXER("AFE_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
24219 afe_pcm_rx_mixer_controls, ARRAY_SIZE(afe_pcm_rx_mixer_controls)),
24220 SND_SOC_DAPM_MIXER("Voice Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
24221 tx_voice_stub_mixer_controls, ARRAY_SIZE(tx_voice_stub_mixer_controls)),
24222 SND_SOC_DAPM_MIXER("Voice2 Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
24223 tx_voice2_stub_mixer_controls,
24224 ARRAY_SIZE(tx_voice2_stub_mixer_controls)),
24225 SND_SOC_DAPM_MIXER("VoLTE Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
24226 tx_volte_stub_mixer_controls, ARRAY_SIZE(tx_volte_stub_mixer_controls)),
24227 SND_SOC_DAPM_MIXER("STUB_RX Mixer", SND_SOC_NOPM, 0, 0,
24228 stub_rx_mixer_controls, ARRAY_SIZE(stub_rx_mixer_controls)),
24229 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Mixer", SND_SOC_NOPM, 0, 0,
24230 slimbus_1_rx_mixer_controls, ARRAY_SIZE(slimbus_1_rx_mixer_controls)),
24231 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
24232 slimbus_3_rx_mixer_controls, ARRAY_SIZE(slimbus_3_rx_mixer_controls)),
24233 SND_SOC_DAPM_MIXER("SLIM_6_RX_Voice Mixer",
24234 SND_SOC_NOPM, 0, 0,
24235 slimbus_6_rx_voice_mixer_controls,
24236 ARRAY_SIZE(slimbus_6_rx_voice_mixer_controls)),
24237 SND_SOC_DAPM_MIXER("SLIM_7_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
24238 slimbus_7_rx_voice_mixer_controls,
24239 ARRAY_SIZE(slimbus_7_rx_voice_mixer_controls)),
24240 SND_SOC_DAPM_MIXER("SLIM_8_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
24241 slimbus_8_rx_voice_mixer_controls,
24242 ARRAY_SIZE(slimbus_8_rx_voice_mixer_controls)),
24243 /* port mixer */
24244 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Port Mixer",
24245 SND_SOC_NOPM, 0, 0, sbus_0_rx_port_mixer_controls,
24246 ARRAY_SIZE(sbus_0_rx_port_mixer_controls)),
24247 SND_SOC_DAPM_MIXER("AUX_PCM_RX Port Mixer",
24248 SND_SOC_NOPM, 0, 0, aux_pcm_rx_port_mixer_controls,
24249 ARRAY_SIZE(aux_pcm_rx_port_mixer_controls)),
24250 SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
24251 SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
24252 ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
24253 SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
24254 SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
24255 ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
24256 SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
24257 SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
24258 ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024259 SND_SOC_DAPM_MIXER("QUIN_AUXPCM_RX Port Mixer",
24260 SND_SOC_NOPM, 0, 0, quin_auxpcm_rx_port_mixer_controls,
24261 ARRAY_SIZE(quin_auxpcm_rx_port_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024262 SND_SOC_DAPM_MIXER("SEN_AUXPCM_RX Port Mixer",
24263 SND_SOC_NOPM, 0, 0, sen_auxpcm_rx_port_mixer_controls,
24264 ARRAY_SIZE(sen_auxpcm_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024265 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24266 sbus_1_rx_port_mixer_controls,
24267 ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
24268 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24269 bt_sco_rx_port_mixer_controls,
24270 ARRAY_SIZE(bt_sco_rx_port_mixer_controls)),
24271 SND_SOC_DAPM_MIXER("AFE_PCM_RX Port Mixer",
24272 SND_SOC_NOPM, 0, 0, afe_pcm_rx_port_mixer_controls,
24273 ARRAY_SIZE(afe_pcm_rx_port_mixer_controls)),
24274 SND_SOC_DAPM_MIXER("HDMI_RX Port Mixer",
24275 SND_SOC_NOPM, 0, 0, hdmi_rx_port_mixer_controls,
24276 ARRAY_SIZE(hdmi_rx_port_mixer_controls)),
24277 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
24278 SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
24279 ARRAY_SIZE(display_port_rx_port_mixer_controls)),
Karthikeyan Manifbea92f2018-06-14 16:38:15 -070024280 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1 Port Mixer",
Karthikeyan Mani57550082018-05-03 18:43:58 -070024281 SND_SOC_NOPM, 0, 0, display_port_rx1_port_mixer_controls,
24282 ARRAY_SIZE(display_port_rx1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024283 SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
24284 SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
24285 ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
24286 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX Port Mixer",
24287 SND_SOC_NOPM, 0, 0, sbus_3_rx_port_mixer_controls,
24288 ARRAY_SIZE(sbus_3_rx_port_mixer_controls)),
24289 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Port Mixer",
24290 SND_SOC_NOPM, 0, 0, sbus_6_rx_port_mixer_controls,
24291 ARRAY_SIZE(sbus_6_rx_port_mixer_controls)),
24292 SND_SOC_DAPM_MIXER("MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24293 mi2s_rx_port_mixer_controls, ARRAY_SIZE(mi2s_rx_port_mixer_controls)),
24294 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24295 primary_mi2s_rx_port_mixer_controls,
24296 ARRAY_SIZE(primary_mi2s_rx_port_mixer_controls)),
24297 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24298 sec_mi2s_rx_port_mixer_controls,
24299 ARRAY_SIZE(sec_mi2s_rx_port_mixer_controls)),
24300 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24301 tert_mi2s_rx_port_mixer_controls,
24302 ARRAY_SIZE(tert_mi2s_rx_port_mixer_controls)),
24303 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24304 quat_mi2s_rx_port_mixer_controls,
24305 ARRAY_SIZE(quat_mi2s_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024306 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24307 quin_mi2s_rx_port_mixer_controls,
24308 ARRAY_SIZE(quin_mi2s_rx_port_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024309 SND_SOC_DAPM_MIXER("SEN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24310 sen_mi2s_rx_port_mixer_controls,
24311 ARRAY_SIZE(sen_mi2s_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024312 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24313 pri_tdm_rx_0_port_mixer_controls,
24314 ARRAY_SIZE(pri_tdm_rx_0_port_mixer_controls)),
24315 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24316 pri_tdm_rx_1_port_mixer_controls,
24317 ARRAY_SIZE(pri_tdm_rx_1_port_mixer_controls)),
24318 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24319 pri_tdm_rx_2_port_mixer_controls,
24320 ARRAY_SIZE(pri_tdm_rx_2_port_mixer_controls)),
24321 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24322 pri_tdm_rx_3_port_mixer_controls,
24323 ARRAY_SIZE(pri_tdm_rx_3_port_mixer_controls)),
24324 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24325 sec_tdm_rx_0_port_mixer_controls,
24326 ARRAY_SIZE(sec_tdm_rx_0_port_mixer_controls)),
24327 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24328 sec_tdm_rx_1_port_mixer_controls,
24329 ARRAY_SIZE(sec_tdm_rx_1_port_mixer_controls)),
24330 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24331 sec_tdm_rx_2_port_mixer_controls,
24332 ARRAY_SIZE(sec_tdm_rx_2_port_mixer_controls)),
24333 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24334 sec_tdm_rx_3_port_mixer_controls,
24335 ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
Derek Chenfdcc0982018-10-02 15:14:03 -070024336 SND_SOC_DAPM_MIXER("SEC_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
24337 sec_tdm_rx_7_port_mixer_controls,
24338 ARRAY_SIZE(sec_tdm_rx_7_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024339 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24340 tert_tdm_rx_0_port_mixer_controls,
24341 ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
24342 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24343 tert_tdm_rx_1_port_mixer_controls,
24344 ARRAY_SIZE(tert_tdm_rx_1_port_mixer_controls)),
24345 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24346 tert_tdm_rx_2_port_mixer_controls,
24347 ARRAY_SIZE(tert_tdm_rx_2_port_mixer_controls)),
24348 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24349 tert_tdm_rx_3_port_mixer_controls,
24350 ARRAY_SIZE(tert_tdm_rx_3_port_mixer_controls)),
24351 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24352 quat_tdm_rx_0_port_mixer_controls,
24353 ARRAY_SIZE(quat_tdm_rx_0_port_mixer_controls)),
24354 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24355 quat_tdm_rx_1_port_mixer_controls,
24356 ARRAY_SIZE(quat_tdm_rx_1_port_mixer_controls)),
24357 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24358 quat_tdm_rx_2_port_mixer_controls,
24359 ARRAY_SIZE(quat_tdm_rx_2_port_mixer_controls)),
24360 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24361 quat_tdm_rx_3_port_mixer_controls,
24362 ARRAY_SIZE(quat_tdm_rx_3_port_mixer_controls)),
Derek Chenb9048cb2019-03-07 14:54:13 -050024363 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
24364 quat_tdm_rx_7_port_mixer_controls,
24365 ARRAY_SIZE(quat_tdm_rx_7_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053024366 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24367 quin_tdm_rx_0_port_mixer_controls,
24368 ARRAY_SIZE(quin_tdm_rx_0_port_mixer_controls)),
24369 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24370 quin_tdm_rx_1_port_mixer_controls,
24371 ARRAY_SIZE(quin_tdm_rx_1_port_mixer_controls)),
24372 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24373 quin_tdm_rx_2_port_mixer_controls,
24374 ARRAY_SIZE(quin_tdm_rx_2_port_mixer_controls)),
24375 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24376 quin_tdm_rx_3_port_mixer_controls,
24377 ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)),
Han Lu7b6c5882019-06-09 16:03:21 +080024378 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
24379 quin_tdm_rx_7_port_mixer_controls,
24380 ARRAY_SIZE(quin_tdm_rx_7_port_mixer_controls)),
Karthikeyan Manic3700752019-03-11 18:33:53 -070024381 SND_SOC_DAPM_MIXER("SEN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24382 sen_tdm_rx_0_port_mixer_controls,
24383 ARRAY_SIZE(sen_tdm_rx_0_port_mixer_controls)),
24384 SND_SOC_DAPM_MIXER("SEN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24385 sen_tdm_rx_1_port_mixer_controls,
24386 ARRAY_SIZE(sen_tdm_rx_1_port_mixer_controls)),
24387 SND_SOC_DAPM_MIXER("SEN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
24388 sen_tdm_rx_2_port_mixer_controls,
24389 ARRAY_SIZE(sen_tdm_rx_2_port_mixer_controls)),
24390 SND_SOC_DAPM_MIXER("SEN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
24391 sen_tdm_rx_3_port_mixer_controls,
24392 ARRAY_SIZE(sen_tdm_rx_3_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024393 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24394 int0_mi2s_rx_port_mixer_controls,
24395 ARRAY_SIZE(int0_mi2s_rx_port_mixer_controls)),
24396 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
24397 int4_mi2s_rx_port_mixer_controls,
24398 ARRAY_SIZE(int4_mi2s_rx_port_mixer_controls)),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053024399 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24400 wsa_cdc_dma_rx_0_port_mixer_controls,
24401 ARRAY_SIZE(wsa_cdc_dma_rx_0_port_mixer_controls)),
24402 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
24403 rx_cdc_dma_rx_0_port_mixer_controls,
24404 ARRAY_SIZE(rx_cdc_dma_rx_0_port_mixer_controls)),
Laxminath Kasamdcf2ab22019-11-01 15:33:47 +053024405 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
24406 rx_cdc_dma_rx_1_port_mixer_controls,
24407 ARRAY_SIZE(rx_cdc_dma_rx_1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024408 SND_SOC_DAPM_MIXER("QCHAT_Tx Mixer",
24409 SND_SOC_NOPM, 0, 0, tx_qchat_mixer_controls,
24410 ARRAY_SIZE(tx_qchat_mixer_controls)),
24411 SND_SOC_DAPM_MIXER("USB_AUDIO_RX_Voice Mixer",
24412 SND_SOC_NOPM, 0, 0, usb_audio_rx_voice_mixer_controls,
24413 ARRAY_SIZE(usb_audio_rx_voice_mixer_controls)),
24414 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
24415 SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
24416 ARRAY_SIZE(usb_rx_port_mixer_controls)),
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080024417 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
24418 SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
24419 ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070024420 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1_Voice Mixer",
24421 SND_SOC_NOPM, 0, 0, display_port_rx1_voice_mixer_controls,
24422 ARRAY_SIZE(display_port_rx1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024423 /* lsm mixer definitions */
24424 SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
24425 lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
24426 SND_SOC_DAPM_MIXER("LSM2 Mixer", SND_SOC_NOPM, 0, 0,
24427 lsm2_mixer_controls, ARRAY_SIZE(lsm2_mixer_controls)),
24428 SND_SOC_DAPM_MIXER("LSM3 Mixer", SND_SOC_NOPM, 0, 0,
24429 lsm3_mixer_controls, ARRAY_SIZE(lsm3_mixer_controls)),
24430 SND_SOC_DAPM_MIXER("LSM4 Mixer", SND_SOC_NOPM, 0, 0,
24431 lsm4_mixer_controls, ARRAY_SIZE(lsm4_mixer_controls)),
24432 SND_SOC_DAPM_MIXER("LSM5 Mixer", SND_SOC_NOPM, 0, 0,
24433 lsm5_mixer_controls, ARRAY_SIZE(lsm5_mixer_controls)),
24434 SND_SOC_DAPM_MIXER("LSM6 Mixer", SND_SOC_NOPM, 0, 0,
24435 lsm6_mixer_controls, ARRAY_SIZE(lsm6_mixer_controls)),
24436 SND_SOC_DAPM_MIXER("LSM7 Mixer", SND_SOC_NOPM, 0, 0,
24437 lsm7_mixer_controls, ARRAY_SIZE(lsm7_mixer_controls)),
24438 SND_SOC_DAPM_MIXER("LSM8 Mixer", SND_SOC_NOPM, 0, 0,
24439 lsm8_mixer_controls, ARRAY_SIZE(lsm8_mixer_controls)),
24440 /* Virtual Pins to force backends ON atm */
24441 SND_SOC_DAPM_OUTPUT("BE_OUT"),
24442 SND_SOC_DAPM_INPUT("BE_IN"),
24443
24444 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
24445 &slim0_rx_vi_fb_lch_mux),
24446 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
24447 &slim0_rx_vi_fb_rch_mux),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024448 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
24449 &wsa_rx_0_vi_fb_lch_mux),
24450 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
24451 &wsa_rx_0_vi_fb_rch_mux),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024452 SND_SOC_DAPM_MUX("PRI_MI2S_RX_VI_FB_MUX", SND_SOC_NOPM, 0, 0,
24453 &mi2s_rx_vi_fb_mux),
24454 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_MONO_CH_MUX", SND_SOC_NOPM, 0, 0,
24455 &int4_mi2s_rx_vi_fb_mono_ch_mux),
24456 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", SND_SOC_NOPM, 0, 0,
24457 &int4_mi2s_rx_vi_fb_stereo_ch_mux),
24458
24459 SND_SOC_DAPM_MUX("VOC_EXT_EC MUX", SND_SOC_NOPM, 0, 0,
24460 &voc_ext_ec_mux),
24461 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL1 MUX", SND_SOC_NOPM, 0, 0,
24462 &ext_ec_ref_mux_ul1),
24463 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL2 MUX", SND_SOC_NOPM, 0, 0,
24464 &ext_ec_ref_mux_ul2),
24465 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL3 MUX", SND_SOC_NOPM, 0, 0,
24466 &ext_ec_ref_mux_ul3),
24467 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL4 MUX", SND_SOC_NOPM, 0, 0,
24468 &ext_ec_ref_mux_ul4),
24469 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL5 MUX", SND_SOC_NOPM, 0, 0,
24470 &ext_ec_ref_mux_ul5),
24471 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL6 MUX", SND_SOC_NOPM, 0, 0,
24472 &ext_ec_ref_mux_ul6),
24473 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL8 MUX", SND_SOC_NOPM, 0, 0,
24474 &ext_ec_ref_mux_ul8),
24475 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL9 MUX", SND_SOC_NOPM, 0, 0,
24476 &ext_ec_ref_mux_ul9),
Laxminath Kasam38070be2017-08-17 18:21:59 +053024477 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL10 MUX", SND_SOC_NOPM, 0, 0,
24478 &ext_ec_ref_mux_ul10),
Asish Bhattacharya34504582017-08-08 12:55:01 +053024479 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL16 MUX", SND_SOC_NOPM, 0, 0,
24480 &ext_ec_ref_mux_ul16),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024481 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL17 MUX", SND_SOC_NOPM, 0, 0,
24482 &ext_ec_ref_mux_ul17),
24483 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL18 MUX", SND_SOC_NOPM, 0, 0,
24484 &ext_ec_ref_mux_ul18),
24485 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL19 MUX", SND_SOC_NOPM, 0, 0,
24486 &ext_ec_ref_mux_ul19),
Meng Wang5c4bab72018-04-25 10:40:01 +080024487 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL28 MUX", SND_SOC_NOPM, 0, 0,
24488 &ext_ec_ref_mux_ul28),
24489 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL29 MUX", SND_SOC_NOPM, 0, 0,
24490 &ext_ec_ref_mux_ul29),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024491};
24492
24493static const struct snd_soc_dapm_route intercon[] = {
24494 {"PRI_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24495 {"PRI_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24496 {"PRI_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24497 {"PRI_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24498 {"PRI_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24499 {"PRI_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24500 {"PRI_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24501 {"PRI_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24502 {"PRI_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24503 {"PRI_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24504 {"PRI_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24505 {"PRI_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24506 {"PRI_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24507 {"PRI_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24508 {"PRI_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24509 {"PRI_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024510 {"PRI_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024511 {"PRI_I2S_RX", NULL, "PRI_RX Audio Mixer"},
24512
24513 {"SEC_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24514 {"SEC_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24515 {"SEC_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24516 {"SEC_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24517 {"SEC_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24518 {"SEC_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24519 {"SEC_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24520 {"SEC_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24521 {"SEC_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24522 {"SEC_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24523 {"SEC_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24524 {"SEC_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24525 {"SEC_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24526 {"SEC_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24527 {"SEC_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24528 {"SEC_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024529 {"SEC_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024530 {"SEC_I2S_RX", NULL, "SEC_RX Audio Mixer"},
24531
24532 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24533 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24534 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24535 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24536 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24537 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24538 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24539 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24540 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24541 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24542 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24543 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24544 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24545 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24546 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24547 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024548 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024549 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Audio Mixer"},
24550
24551 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24552 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24553 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24554 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24555 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24556 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24557 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24558 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24559 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24560 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24561 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24562 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24563 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24564 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24565 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24566 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024567 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024568 {"SLIMBUS_2_RX", NULL, "SLIMBUS_2_RX Audio Mixer"},
24569
24570 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24571 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24572 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24573 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24574 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24575 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24576 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24577 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24578 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24579 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24580 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24581 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24582 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24583 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24584 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24585 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024586 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024587 {"SLIMBUS_5_RX", NULL, "SLIMBUS_5_RX Audio Mixer"},
24588
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024589 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24590 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24591 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24592 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24593 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24594 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24595 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24596 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24597 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24598 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24599 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24600 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24601 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24602 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24603 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24604 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024605 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024606 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Audio Mixer"},
24607
24608 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
24609 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
24610 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
24611 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
24612 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
24613 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
24614 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
24615 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
24616 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
24617 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
24618 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
24619 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
24620 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
24621 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
24622 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
24623 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024624 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053024625 {"WSA_CDC_DMA_RX_1", NULL, "WSA_CDC_DMA_RX_1 Audio Mixer"},
24626
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024627 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
24628 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
24629 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
24630 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
24631 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
24632 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
24633 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
24634 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
24635 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
24636 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
24637 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
24638 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
24639 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
24640 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
24641 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
24642 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024643 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024644 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Audio Mixer"},
24645
24646 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
24647 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
24648 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
24649 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
24650 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
24651 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
24652 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
24653 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
24654 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
24655 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
24656 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
24657 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
24658 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
24659 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
24660 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
24661 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024662 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024663 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Audio Mixer"},
24664
24665 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
24666 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
24667 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
24668 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
24669 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
24670 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
24671 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
24672 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
24673 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
24674 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
24675 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
24676 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
24677 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
24678 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
24679 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
24680 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024681 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024682 {"RX_CDC_DMA_RX_2", NULL, "RX_CDC_DMA_RX_2 Audio Mixer"},
24683
24684 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
24685 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
24686 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
24687 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
24688 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
24689 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
24690 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
24691 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
24692 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
24693 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
24694 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
24695 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
24696 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
24697 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
24698 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
24699 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024700 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024701 {"RX_CDC_DMA_RX_3", NULL, "RX_CDC_DMA_RX_3 Audio Mixer"},
24702
24703 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
24704 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
24705 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
24706 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
24707 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
24708 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
24709 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
24710 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
24711 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
24712 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
24713 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
24714 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
24715 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
24716 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
24717 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
24718 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024719 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024720 {"RX_CDC_DMA_RX_4", NULL, "RX_CDC_DMA_RX_4 Audio Mixer"},
24721
24722 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia1", "MM_DL1"},
24723 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia2", "MM_DL2"},
24724 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia3", "MM_DL3"},
24725 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia4", "MM_DL4"},
24726 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia5", "MM_DL5"},
24727 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia6", "MM_DL6"},
24728 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia7", "MM_DL7"},
24729 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia8", "MM_DL8"},
24730 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia9", "MM_DL9"},
24731 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia10", "MM_DL10"},
24732 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia11", "MM_DL11"},
24733 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia12", "MM_DL12"},
24734 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia13", "MM_DL13"},
24735 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia14", "MM_DL14"},
24736 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia15", "MM_DL15"},
24737 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024738 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024739 {"RX_CDC_DMA_RX_5", NULL, "RX_CDC_DMA_RX_5 Audio Mixer"},
24740
24741 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia1", "MM_DL1"},
24742 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia2", "MM_DL2"},
24743 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia3", "MM_DL3"},
24744 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia4", "MM_DL4"},
24745 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia5", "MM_DL5"},
24746 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia6", "MM_DL6"},
24747 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia7", "MM_DL7"},
24748 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia8", "MM_DL8"},
24749 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia9", "MM_DL9"},
24750 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia10", "MM_DL10"},
24751 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia11", "MM_DL11"},
24752 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia12", "MM_DL12"},
24753 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia13", "MM_DL13"},
24754 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia14", "MM_DL14"},
24755 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia15", "MM_DL15"},
24756 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024757 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024758 {"RX_CDC_DMA_RX_6", NULL, "RX_CDC_DMA_RX_6 Audio Mixer"},
24759
24760 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia1", "MM_DL1"},
24761 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia2", "MM_DL2"},
24762 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia3", "MM_DL3"},
24763 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia4", "MM_DL4"},
24764 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia5", "MM_DL5"},
24765 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia6", "MM_DL6"},
24766 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia7", "MM_DL7"},
24767 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia8", "MM_DL8"},
24768 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia9", "MM_DL9"},
24769 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia10", "MM_DL10"},
24770 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia11", "MM_DL11"},
24771 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia12", "MM_DL12"},
24772 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia13", "MM_DL13"},
24773 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia14", "MM_DL14"},
24774 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia15", "MM_DL15"},
24775 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024776 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053024777 {"RX_CDC_DMA_RX_7", NULL, "RX_CDC_DMA_RX_7 Audio Mixer"},
24778
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024779 {"HDMI Mixer", "MultiMedia1", "MM_DL1"},
24780 {"HDMI Mixer", "MultiMedia2", "MM_DL2"},
24781 {"HDMI Mixer", "MultiMedia3", "MM_DL3"},
24782 {"HDMI Mixer", "MultiMedia4", "MM_DL4"},
24783 {"HDMI Mixer", "MultiMedia5", "MM_DL5"},
24784 {"HDMI Mixer", "MultiMedia6", "MM_DL6"},
24785 {"HDMI Mixer", "MultiMedia7", "MM_DL7"},
24786 {"HDMI Mixer", "MultiMedia8", "MM_DL8"},
24787 {"HDMI Mixer", "MultiMedia9", "MM_DL9"},
24788 {"HDMI Mixer", "MultiMedia10", "MM_DL10"},
24789 {"HDMI Mixer", "MultiMedia11", "MM_DL11"},
24790 {"HDMI Mixer", "MultiMedia12", "MM_DL12"},
24791 {"HDMI Mixer", "MultiMedia13", "MM_DL13"},
24792 {"HDMI Mixer", "MultiMedia14", "MM_DL14"},
24793 {"HDMI Mixer", "MultiMedia15", "MM_DL15"},
24794 {"HDMI Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024795 {"HDMI Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024796 {"HDMI", NULL, "HDMI Mixer"},
24797
24798 {"DISPLAY_PORT Mixer", "MultiMedia1", "MM_DL1"},
24799 {"DISPLAY_PORT Mixer", "MultiMedia2", "MM_DL2"},
24800 {"DISPLAY_PORT Mixer", "MultiMedia3", "MM_DL3"},
24801 {"DISPLAY_PORT Mixer", "MultiMedia4", "MM_DL4"},
24802 {"DISPLAY_PORT Mixer", "MultiMedia5", "MM_DL5"},
24803 {"DISPLAY_PORT Mixer", "MultiMedia6", "MM_DL6"},
24804 {"DISPLAY_PORT Mixer", "MultiMedia7", "MM_DL7"},
24805 {"DISPLAY_PORT Mixer", "MultiMedia8", "MM_DL8"},
24806 {"DISPLAY_PORT Mixer", "MultiMedia9", "MM_DL9"},
24807 {"DISPLAY_PORT Mixer", "MultiMedia10", "MM_DL10"},
24808 {"DISPLAY_PORT Mixer", "MultiMedia11", "MM_DL11"},
24809 {"DISPLAY_PORT Mixer", "MultiMedia12", "MM_DL12"},
24810 {"DISPLAY_PORT Mixer", "MultiMedia13", "MM_DL13"},
24811 {"DISPLAY_PORT Mixer", "MultiMedia14", "MM_DL14"},
24812 {"DISPLAY_PORT Mixer", "MultiMedia15", "MM_DL15"},
24813 {"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024814 {"DISPLAY_PORT Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024815 {"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
24816
Karthikeyan Mani57550082018-05-03 18:43:58 -070024817 {"DISPLAY_PORT1 Mixer", "MultiMedia1", "MM_DL1"},
24818 {"DISPLAY_PORT1 Mixer", "MultiMedia2", "MM_DL2"},
24819 {"DISPLAY_PORT1 Mixer", "MultiMedia3", "MM_DL3"},
24820 {"DISPLAY_PORT1 Mixer", "MultiMedia4", "MM_DL4"},
24821 {"DISPLAY_PORT1 Mixer", "MultiMedia5", "MM_DL5"},
24822 {"DISPLAY_PORT1 Mixer", "MultiMedia6", "MM_DL6"},
24823 {"DISPLAY_PORT1 Mixer", "MultiMedia7", "MM_DL7"},
24824 {"DISPLAY_PORT1 Mixer", "MultiMedia8", "MM_DL8"},
24825 {"DISPLAY_PORT1 Mixer", "MultiMedia9", "MM_DL9"},
24826 {"DISPLAY_PORT1 Mixer", "MultiMedia10", "MM_DL10"},
24827 {"DISPLAY_PORT1 Mixer", "MultiMedia11", "MM_DL11"},
24828 {"DISPLAY_PORT1 Mixer", "MultiMedia12", "MM_DL12"},
24829 {"DISPLAY_PORT1 Mixer", "MultiMedia13", "MM_DL13"},
24830 {"DISPLAY_PORT1 Mixer", "MultiMedia14", "MM_DL14"},
24831 {"DISPLAY_PORT1 Mixer", "MultiMedia15", "MM_DL15"},
24832 {"DISPLAY_PORT1 Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024833 {"DISPLAY_PORT1 Mixer", "MultiMedia26", "MM_DL26"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070024834 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT1 Mixer"},
24835
Ralf Herzc8701f72018-06-20 11:37:35 +020024836 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24837 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24838 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24839 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24840 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24841 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24842 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24843 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24844 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24845 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24846 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24847 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24848 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24849 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24850 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24851 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024852 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024853 {"PRI_SPDIF_RX", NULL, "PRI_SPDIF_RX Audio Mixer"},
24854
24855 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24856 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24857 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24858 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24859 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24860 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24861 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24862 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24863 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24864 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24865 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24866 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24867 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24868 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24869 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24870 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024871 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020024872 {"SEC_SPDIF_RX", NULL, "SEC_SPDIF_RX Audio Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024873
24874 /* incall */
24875 {"Incall_Music Audio Mixer", "MultiMedia1", "MM_DL1"},
24876 {"Incall_Music Audio Mixer", "MultiMedia2", "MM_DL2"},
Anurag Chouhanb2a024a2019-10-09 11:39:08 +053024877 {"Incall_Music Audio Mixer", "MultiMedia4", "MM_DL4"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024878 {"Incall_Music Audio Mixer", "MultiMedia5", "MM_DL5"},
24879 {"Incall_Music Audio Mixer", "MultiMedia9", "MM_DL9"},
24880 {"VOICE_PLAYBACK_TX", NULL, "Incall_Music Audio Mixer"},
24881 {"Incall_Music_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
24882 {"Incall_Music_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
24883 {"Incall_Music_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
24884 {"Incall_Music_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
24885 {"VOICE2_PLAYBACK_TX", NULL, "Incall_Music_2 Audio Mixer"},
24886 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24887 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24888 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24889 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24890 {"SLIMBUS_4_RX", NULL, "SLIMBUS_4_RX Audio Mixer"},
24891
24892 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24893 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24894 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24895 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24896 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24897 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24898 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24899 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24900 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24901 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24902 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24903 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24904 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24905 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24906 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24907 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024908 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024909 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Audio Mixer"},
24910
24911 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24912 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24913 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24914 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24915 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24916 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24917 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24918 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24919 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24920 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24921 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24922 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24923 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24924 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24925 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24926 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024927 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024928 {"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
24929
Surendar Karka3ef3d812018-09-28 18:52:35 +053024930 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24931 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24932 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24933 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24934 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24935 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24936 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24937 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24938 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24939 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24940 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24941 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24942 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24943 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24944 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24945 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
24946 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
24947 {"SLIMBUS_9_RX", NULL, "SLIMBUS_9_RX Audio Mixer"},
24948
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024949 {"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
24950 {"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
24951 {"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
24952 {"USB_AUDIO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
24953 {"USB_AUDIO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
24954 {"USB_AUDIO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
24955 {"USB_AUDIO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
24956 {"USB_AUDIO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
24957 {"USB_AUDIO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
24958 {"USB_AUDIO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
24959 {"USB_AUDIO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
24960 {"USB_AUDIO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
24961 {"USB_AUDIO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
24962 {"USB_AUDIO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
24963 {"USB_AUDIO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
24964 {"USB_AUDIO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053024965 {"USB_AUDIO_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024966 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Audio Mixer"},
24967
24968 {"MultiMedia1 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
24969 {"MultiMedia4 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
24970 {"MultiMedia8 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
24971 {"MultiMedia1 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
24972 {"MultiMedia4 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
24973 {"MultiMedia8 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
24974 {"MultiMedia1 Mixer", "SLIM_4_TX", "SLIMBUS_4_TX"},
24975 {"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
24976 {"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
24977 {"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053024978 {"MultiMedia1 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024979 {"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
24980 {"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053024981 {"MultiMedia8 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024982 {"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024983 {"MultiMedia4 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024984 {"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024985 {"MultiMedia17 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024986 {"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024987 {"MultiMedia18 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024988 {"MultiMedia19 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024989 {"MultiMedia19 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024990 {"MultiMedia28 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024991 {"MultiMedia28 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053024992 {"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024993 {"MultiMedia29 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053024994 {"MultiMedia30 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
24995 {"MultiMedia30 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024996 {"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053024997 {"MultiMedia8 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053024998 {"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
24999 {"MultiMedia4 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25000 {"MultiMedia17 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25001 {"MultiMedia18 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25002 {"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025003 {"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25004 {"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025005 {"MultiMedia30 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025006 {"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025007 {"MultiMedia18 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010025008 {"MultiMedia19 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25009 {"MultiMedia28 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25010 {"MultiMedia29 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025011 {"MultiMedia30 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025012 {"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25013 {"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25014 {"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25015 {"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25016 {"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025017 {"MultiMedia30 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025018 {"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025019 {"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025020 {"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25021 {"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25022 {"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025023 {"MultiMedia30 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025024 {"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25025 {"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025026 {"MultiMedia3 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025027 {"MultiMedia5 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025028 {"MultiMedia5 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025029 {"MultiMedia10 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025030 {"MultiMedia10 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025031 {"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025032 {"MultiMedia16 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025033 {"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
25034 {"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053025035 {"MultiMedia5 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025036 {"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053025037 {"MultiMedia10 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025038 {"MultiMedia18 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010025039 {"MultiMedia19 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25040 {"MultiMedia28 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25041 {"MultiMedia29 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025042 {"MultiMedia30 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025043 {"MultiMedia18 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herza70027d2018-11-26 14:56:34 +010025044 {"MultiMedia19 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
25045 {"MultiMedia28 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
25046 {"MultiMedia29 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025047 {"MultiMedia30 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025048
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025049 {"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25050 {"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25051 {"MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25052 {"MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25053 {"MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25054 {"MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25055 {"MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25056 {"MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25057 {"MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25058 {"MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25059 {"MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25060 {"MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25061 {"MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25062 {"MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25063 {"MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25064 {"MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025065 {"MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025066 {"MI2S_RX", NULL, "MI2S_RX Audio Mixer"},
25067
25068 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25069 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25070 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25071 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25072 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25073 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25074 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25075 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25076 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25077 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25078 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25079 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25080 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25081 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25082 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025083 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025084 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Audio Mixer"},
25085
25086 {"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25087 {"TERT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25088 {"TERT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25089 {"TERT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25090 {"TERT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25091 {"TERT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25092 {"TERT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25093 {"TERT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25094 {"TERT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25095 {"TERT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25096 {"TERT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25097 {"TERT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25098 {"TERT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25099 {"TERT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025100 {"TERT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025101 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Audio Mixer"},
25102
25103 {"SEC_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25104 {"SEC_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25105 {"SEC_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25106 {"SEC_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25107 {"SEC_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25108 {"SEC_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25109 {"SEC_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25110 {"SEC_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25111 {"SEC_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25112 {"SEC_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25113 {"SEC_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25114 {"SEC_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25115 {"SEC_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25116 {"SEC_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025117 {"SEC_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025118 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Audio Mixer"},
25119
25120 {"SEC_MI2S_RX_SD1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25121 {"SEC_MI2S_RX_SD1", NULL, "SEC_MI2S_RX_SD1 Audio Mixer"},
25122
25123 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25124 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
25125
25126 {"PRI_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25127 {"PRI_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25128 {"PRI_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25129 {"PRI_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25130 {"PRI_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25131 {"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25132 {"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25133 {"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053025134 {"PRI_MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025135 {"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25136 {"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25137 {"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25138 {"PRI_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25139 {"PRI_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25140 {"PRI_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25141 {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053025142 {"PRI_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025143 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
Jhansi Konathala8cf03d42019-08-20 19:27:39 +053025144 {"PRI_MI2S_RX Audio Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025145
25146 {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25147 {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25148 {"INT0_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25149 {"INT0_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25150 {"INT0_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25151 {"INT0_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25152 {"INT0_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25153 {"INT0_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25154 {"INT0_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25155 {"INT0_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25156 {"INT0_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25157 {"INT0_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25158 {"INT0_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25159 {"INT0_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25160 {"INT0_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25161 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Audio Mixer"},
25162
25163 {"INT4_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25164 {"INT4_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25165 {"INT4_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25166 {"INT4_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25167 {"INT4_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25168 {"INT4_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25169 {"INT4_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25170 {"INT4_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25171 {"INT4_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25172 {"INT4_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25173 {"INT4_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25174 {"INT4_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25175 {"INT4_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25176 {"INT4_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25177 {"INT4_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25178 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Audio Mixer"},
25179
25180 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25181 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25182 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25183 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25184 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25185 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25186 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25187 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25188 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25189 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25190 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25191 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25192 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25193 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25194 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25195 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25196 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25197 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Audio Mixer"},
25198
Karthikeyan Manic3700752019-03-11 18:33:53 -070025199 {"SEN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25200 {"SEN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25201 {"SEN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25202 {"SEN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25203 {"SEN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25204 {"SEN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25205 {"SEN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25206 {"SEN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25207 {"SEN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25208 {"SEN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25209 {"SEN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25210 {"SEN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25211 {"SEN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25212 {"SEN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25213 {"SEN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25214 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX Audio Mixer"},
25215
Ralf Herz29e07132019-07-26 15:15:21 +020025216 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25217 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25218 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25219 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25220 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25221 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25222 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25223 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25224 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25225 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25226 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25227 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25228 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25229 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25230 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25231 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25232 {"PRI_META_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
25233 {"PRI_META_MI2S_RX", NULL, "PRI_META_MI2S_RX Audio Mixer"},
25234
25235 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
25236 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
25237 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
25238 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
25239 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
25240 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
25241 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
25242 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
25243 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
25244 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
25245 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
25246 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
25247 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
25248 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
25249 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
25250 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
25251 {"SEC_META_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
25252 {"SEC_META_MI2S_RX", NULL, "SEC_META_MI2S_RX Audio Mixer"},
25253
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025254 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25255 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25256 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25257 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25258 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25259 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25260 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25261 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25262 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25263 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25264 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25265 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25266 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25267 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25268 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25269 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025270 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025271 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025272 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Audio Mixer"},
25273
25274 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25275 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25276 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25277 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25278 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25279 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25280 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25281 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25282 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25283 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25284 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25285 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25286 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25287 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25288 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25289 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025290 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025291 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025292 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Audio Mixer"},
25293
25294 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25295 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25296 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25297 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25298 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25299 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25300 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25301 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25302 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25303 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25304 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25305 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25306 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25307 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25308 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25309 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025310 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025311 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025312 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Audio Mixer"},
25313
25314 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25315 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25316 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25317 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25318 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25319 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25320 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25321 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25322 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25323 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25324 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25325 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25326 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25327 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25328 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25329 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025330 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025331 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025332 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Audio Mixer"},
25333
25334 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25335 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25336 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25337 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25338 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25339 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25340 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25341 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25342 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25343 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25344 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25345 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25346 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25347 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25348 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25349 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25350 {"PRI_TDM_TX_0", NULL, "PRI_TDM_TX_0 Audio Mixer"},
25351
25352 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25353 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25354 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25355 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25356 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25357 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25358 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25359 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25360 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25361 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25362 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25363 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25364 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25365 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25366 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25367 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025368 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025369 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025370 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Audio Mixer"},
25371
25372 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25373 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25374 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25375 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25376 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25377 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25378 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25379 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25380 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25381 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25382 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25383 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25384 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25385 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25386 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25387 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025388 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025389 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025390 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Audio Mixer"},
25391
25392 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25393 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25394 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25395 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25396 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25397 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25398 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25399 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25400 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25401 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25402 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25403 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25404 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25405 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25406 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25407 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025408 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025409 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025410 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Audio Mixer"},
25411
25412 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25413 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25414 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25415 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25416 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25417 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25418 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25419 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25420 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25421 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25422 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25423 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25424 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25425 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25426 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25427 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025428 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025429 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025430 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Audio Mixer"},
25431
25432 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25433 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25434 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25435 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25436 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25437 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25438 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25439 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25440 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25441 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25442 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25443 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25444 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25445 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25446 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25447 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25448 {"SEC_TDM_TX_0", NULL, "SEC_TDM_TX_0 Audio Mixer"},
25449
25450 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25451 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25452 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25453 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25454 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25455 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25456 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25457 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25458 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25459 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25460 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25461 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25462 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25463 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25464 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25465 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025466 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025467 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025468 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Audio Mixer"},
25469
25470 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25471 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25472 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25473 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25474 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25475 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25476 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25477 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25478 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25479 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25480 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25481 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25482 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25483 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25484 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25485 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25486 {"TERT_TDM_TX_0", NULL, "TERT_TDM_TX_0 Audio Mixer"},
25487
25488 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25489 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25490 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25491 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25492 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25493 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25494 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25495 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25496 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25497 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25498 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25499 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25500 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25501 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25502 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25503 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025504 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025505 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025506 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Audio Mixer"},
25507
25508 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25509 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25510 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25511 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25512 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25513 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25514 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25515 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25516 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25517 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25518 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25519 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25520 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25521 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25522 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25523 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025524 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025525 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025526 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Audio Mixer"},
25527
25528 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25529 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25530 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25531 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25532 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25533 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25534 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25535 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25536 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25537 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25538 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25539 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25540 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25541 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25542 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25543 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025544 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025545 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025546 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Audio Mixer"},
25547
25548 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
25549 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
25550 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
25551 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
25552 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
25553 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
25554 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
25555 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
25556 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
25557 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
25558 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
25559 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
25560 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
25561 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
25562 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
25563 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025564 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025565 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025566 {"TERT_TDM_RX_4", NULL, "TERT_TDM_RX_4 Audio Mixer"},
25567
25568 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25569 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25570 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25571 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25572 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25573 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25574 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25575 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25576 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25577 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25578 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25579 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25580 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25581 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25582 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25583 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25584 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025585 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025586 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025587 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Audio Mixer"},
25588
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025589 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25590 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25591 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25592 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25593 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25594 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25595 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25596 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25597 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25598 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25599 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25600 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25601 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25602 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25603 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25604 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25605 {"QUAT_TDM_TX_0", NULL, "QUAT_TDM_TX_0 Audio Mixer"},
25606
25607 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25608 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25609 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25610 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25611 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25612 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25613 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25614 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25615 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25616 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25617 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25618 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25619 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25620 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25621 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25622 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
25623 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025624 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025625 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025626 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Audio Mixer"},
25627
25628 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25629 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25630 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25631 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25632 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25633 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25634 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25635 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25636 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25637 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25638 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25639 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25640 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25641 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25642 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25643 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
25644 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025645 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025646 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025647 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Audio Mixer"},
25648
25649 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25650 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25651 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25652 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25653 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25654 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25655 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25656 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25657 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25658 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25659 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25660 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25661 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25662 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25663 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25664 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
25665 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025666 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025667 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025668 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
25669
Rohit Kumara5077932017-09-10 22:05:05 +053025670 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25671 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25672 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25673 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25674 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25675 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25676 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25677 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25678 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25679 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25680 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25681 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25682 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25683 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25684 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25685 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25686 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025687 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025688 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia22", "MM_DL22"},
Rohit Kumara5077932017-09-10 22:05:05 +053025689 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Audio Mixer"},
25690
25691 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25692 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25693 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25694 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25695 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25696 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25697 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25698 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25699 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25700 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25701 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25702 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25703 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25704 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25705 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25706 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25707 {"QUIN_TDM_TX_0", NULL, "QUIN_TDM_TX_0 Audio Mixer"},
25708
25709 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25710 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25711 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25712 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25713 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25714 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25715 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25716 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25717 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25718 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25719 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25720 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25721 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25722 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25723 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25724 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
25725 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025726 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025727 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia22", "MM_DL22"},
Rohit Kumara5077932017-09-10 22:05:05 +053025728 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Audio Mixer"},
25729
25730 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25731 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25732 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25733 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25734 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25735 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25736 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25737 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25738 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25739 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25740 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25741 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25742 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25743 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25744 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25745 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
25746 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025747 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025748 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia22", "MM_DL22"},
Rohit Kumara5077932017-09-10 22:05:05 +053025749 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Audio Mixer"},
25750
25751 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25752 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25753 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25754 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25755 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25756 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25757 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25758 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25759 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25760 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25761 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25762 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25763 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25764 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25765 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25766 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
25767 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070025768 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Derek Chenb097d922019-07-31 17:28:02 -070025769 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia22", "MM_DL22"},
Rohit Kumara5077932017-09-10 22:05:05 +053025770 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Audio Mixer"},
25771
Karthikeyan Manic3700752019-03-11 18:33:53 -070025772 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25773 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25774 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25775 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25776 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25777 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25778 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25779 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25780 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25781 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25782 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25783 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25784 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25785 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25786 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25787 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25788 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
25789 {"SEN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
25790 {"SEN_TDM_RX_0", NULL, "SEN_TDM_RX_0 Audio Mixer"},
25791
25792 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
25793 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
25794 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
25795 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
25796 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
25797 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
25798 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
25799 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
25800 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
25801 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
25802 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
25803 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
25804 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
25805 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
25806 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
25807 {"SEN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
25808 {"SEN_TDM_TX_0", NULL, "SEN_TDM_TX_0 Audio Mixer"},
25809
25810 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
25811 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
25812 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
25813 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
25814 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
25815 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
25816 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
25817 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
25818 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
25819 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
25820 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
25821 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
25822 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
25823 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
25824 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
25825 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
25826 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
25827 {"SEN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
25828 {"SEN_TDM_RX_1", NULL, "SEN_TDM_RX_1 Audio Mixer"},
25829
25830 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
25831 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
25832 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
25833 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
25834 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
25835 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
25836 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
25837 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
25838 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
25839 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
25840 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
25841 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
25842 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
25843 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
25844 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
25845 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
25846 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
25847 {"SEN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
25848 {"SEN_TDM_RX_2", NULL, "SEN_TDM_RX_2 Audio Mixer"},
25849
25850 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
25851 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
25852 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
25853 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
25854 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
25855 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
25856 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
25857 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
25858 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
25859 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
25860 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
25861 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
25862 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
25863 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
25864 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
25865 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
25866 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
25867 {"SEN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
25868 {"SEN_TDM_RX_3", NULL, "SEN_TDM_RX_3 Audio Mixer"},
25869
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025870 {"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
25871 {"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
25872 {"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
25873 {"MultiMedia3 Mixer", "MI2S_TX", "MI2S_TX"},
25874 {"MultiMedia5 Mixer", "MI2S_TX", "MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025875 {"MultiMedia10 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025876 {"MultiMedia16 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025877 {"MultiMedia1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25878 {"MultiMedia2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25879 {"MultiMedia6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
25880 {"MultiMedia1 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
25881 {"MultiMedia2 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025882 {"MultiMedia1 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
25883 {"MultiMedia2 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025884 {"MultiMedia1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25885 {"MultiMedia2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25886 {"MultiMedia1 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
25887 {"MultiMedia2 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
25888 {"MultiMedia1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25889 {"MultiMedia2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25890 {"MultiMedia1 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025891 {"MultiMedia1 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025892 {"MultiMedia1 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25893 {"MultiMedia3 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
25894 {"MultiMedia5 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025895 {"MultiMedia10 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025896 {"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharyaf4d24122019-07-30 12:39:15 +053025897 {"MultiMedia2 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025898 {"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
25899 {"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025900 {"MultiMedia10 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025901 {"MultiMedia16 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
25902 {"MultiMedia16 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025903 {"MultiMedia1 Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
25904 {"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
25905 {"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025906 {"MultiMedia10 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025907 {"MultiMedia1 Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
25908 {"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
25909 {"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025910 {"MultiMedia10 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025911 {"MultiMedia16 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025912 {"MultiMedia1 Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
25913 {"MultiMedia3 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
25914 {"MultiMedia5 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025915 {"MultiMedia1 Mixer", "SEN_AUXPCM_UL_TX", "SEN_AUX_PCM_TX"},
25916 {"MultiMedia3 Mixer", "SEN_AUX_PCM_TX", "SEN_AUX_PCM_TX"},
25917 {"MultiMedia5 Mixer", "SEN_AUX_PCM_TX", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025918 {"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
25919 {"MultiMedia2 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
25920 {"MultiMedia2 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
25921 {"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
25922 {"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25923 {"MultiMedia1 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25924 {"MultiMedia2 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
25925 {"MultiMedia6 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053025926 {"MultiMedia6 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025927 {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25928 {"MultiMedia3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
25929 {"MultiMedia5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025930 {"MultiMedia10 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025931 {"MultiMedia6 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
25932 {"MultiMedia3 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
25933 {"MultiMedia5 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025934 {"MultiMedia10 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025935 {"MultiMedia16 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025936 {"MultiMedia6 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25937 {"MultiMedia3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25938 {"MultiMedia5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053025939 {"MultiMedia10 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053025940 {"MultiMedia16 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053025941 {"MultiMedia17 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25942 {"MultiMedia18 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25943 {"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25944 {"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
25945 {"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053025946 {"MultiMedia30 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025947 {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
25948 {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
25949 {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
25950 {"MultiMedia6 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025951 {"MultiMedia6 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025952 {"MultiMedia6 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025953
25954 {"MultiMedia1 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25955 {"MultiMedia1 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25956 {"MultiMedia1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25957 {"MultiMedia1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25958 {"MultiMedia1 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25959 {"MultiMedia1 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
25960 {"MultiMedia1 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
25961 {"MultiMedia1 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
25962 {"MultiMedia1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
25963 {"MultiMedia1 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
25964 {"MultiMedia1 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
25965 {"MultiMedia1 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
25966 {"MultiMedia1 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
25967 {"MultiMedia1 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
25968 {"MultiMedia1 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
25969 {"MultiMedia1 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053025970 {"MultiMedia1 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053025971 {"MultiMedia1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
25972 {"MultiMedia1 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
25973 {"MultiMedia1 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
25974 {"MultiMedia1 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070025975 {"MultiMedia1 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
25976 {"MultiMedia1 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
25977 {"MultiMedia1 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
25978 {"MultiMedia1 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053025979 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
25980 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
25981 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
25982 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
25983 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080025984 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053025985 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
25986 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
25987 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
25988 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
25989 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
25990 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020025991 {"MultiMedia1 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
25992 {"MultiMedia1 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053025993
25994 {"MultiMedia2 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
25995 {"MultiMedia2 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
25996 {"MultiMedia2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
25997 {"MultiMedia2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
25998 {"MultiMedia2 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
25999 {"MultiMedia2 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26000 {"MultiMedia2 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26001 {"MultiMedia2 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26002 {"MultiMedia2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26003 {"MultiMedia2 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26004 {"MultiMedia2 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26005 {"MultiMedia2 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26006 {"MultiMedia2 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26007 {"MultiMedia2 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26008 {"MultiMedia2 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26009 {"MultiMedia2 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026010 {"MultiMedia2 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026011 {"MultiMedia2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26012 {"MultiMedia2 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26013 {"MultiMedia2 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26014 {"MultiMedia2 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026015 {"MultiMedia2 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26016 {"MultiMedia2 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26017 {"MultiMedia2 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26018 {"MultiMedia2 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026019 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26020 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26021 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26022 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26023 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026024 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026025 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26026 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26027 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26028 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26029 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26030 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026031 {"MultiMedia2 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26032 {"MultiMedia2 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026033
26034 {"MultiMedia3 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26035 {"MultiMedia3 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26036 {"MultiMedia3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26037 {"MultiMedia3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26038 {"MultiMedia3 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26039 {"MultiMedia3 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26040 {"MultiMedia3 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26041 {"MultiMedia3 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26042 {"MultiMedia3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26043 {"MultiMedia3 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26044 {"MultiMedia3 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26045 {"MultiMedia3 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26046 {"MultiMedia3 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26047 {"MultiMedia3 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26048 {"MultiMedia3 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26049 {"MultiMedia3 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026050 {"MultiMedia3 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026051 {"MultiMedia3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26052 {"MultiMedia3 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26053 {"MultiMedia3 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26054 {"MultiMedia3 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026055 {"MultiMedia3 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26056 {"MultiMedia3 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26057 {"MultiMedia3 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26058 {"MultiMedia3 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026059 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26060 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26061 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26062 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26063 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026064 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026065 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26066 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26067 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26068 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26069 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26070 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026071 {"MultiMedia3 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26072 {"MultiMedia3 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026073
26074 {"MultiMedia4 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26075 {"MultiMedia4 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26076 {"MultiMedia4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26077 {"MultiMedia4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26078 {"MultiMedia4 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26079 {"MultiMedia4 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26080 {"MultiMedia4 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26081 {"MultiMedia4 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26082 {"MultiMedia4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26083 {"MultiMedia4 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26084 {"MultiMedia4 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26085 {"MultiMedia4 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26086 {"MultiMedia4 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26087 {"MultiMedia4 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26088 {"MultiMedia4 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26089 {"MultiMedia4 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026090 {"MultiMedia4 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026091 {"MultiMedia4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26092 {"MultiMedia4 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26093 {"MultiMedia4 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26094 {"MultiMedia4 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026095 {"MultiMedia4 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26096 {"MultiMedia4 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26097 {"MultiMedia4 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26098 {"MultiMedia4 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026099 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26100 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26101 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26102 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26103 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026104 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026105 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26106 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26107 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26108 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26109 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26110 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026111 {"MultiMedia4 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26112 {"MultiMedia4 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026113
26114 {"MultiMedia5 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26115 {"MultiMedia5 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26116 {"MultiMedia5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26117 {"MultiMedia5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26118 {"MultiMedia5 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26119 {"MultiMedia5 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26120 {"MultiMedia5 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26121 {"MultiMedia5 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26122 {"MultiMedia5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26123 {"MultiMedia5 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26124 {"MultiMedia5 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26125 {"MultiMedia5 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26126 {"MultiMedia5 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26127 {"MultiMedia5 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26128 {"MultiMedia5 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26129 {"MultiMedia5 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026130 {"MultiMedia5 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026131 {"MultiMedia5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26132 {"MultiMedia5 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26133 {"MultiMedia5 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26134 {"MultiMedia5 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026135 {"MultiMedia5 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26136 {"MultiMedia5 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26137 {"MultiMedia5 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26138 {"MultiMedia5 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026139 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26140 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26141 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26142 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26143 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026144 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026145 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26146 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26147 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26148 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26149 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26150 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026151 {"MultiMedia5 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26152 {"MultiMedia5 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026153
26154 {"MultiMedia6 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26155 {"MultiMedia6 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26156 {"MultiMedia6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26157 {"MultiMedia6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26158 {"MultiMedia6 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26159 {"MultiMedia6 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26160 {"MultiMedia6 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26161 {"MultiMedia6 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26162 {"MultiMedia6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26163 {"MultiMedia6 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26164 {"MultiMedia6 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26165 {"MultiMedia6 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26166 {"MultiMedia6 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26167 {"MultiMedia6 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26168 {"MultiMedia6 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26169 {"MultiMedia6 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026170 {"MultiMedia6 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026171 {"MultiMedia6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26172 {"MultiMedia6 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26173 {"MultiMedia6 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26174 {"MultiMedia6 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026175 {"MultiMedia6 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26176 {"MultiMedia6 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26177 {"MultiMedia6 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26178 {"MultiMedia6 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026179 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26180 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26181 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26182 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26183 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026184 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026185 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26186 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26187 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26188 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26189 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26190 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026191 {"MultiMedia6 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26192 {"MultiMedia6 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026193
26194 {"MultiMedia8 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26195 {"MultiMedia8 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26196 {"MultiMedia8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26197 {"MultiMedia8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26198 {"MultiMedia8 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26199 {"MultiMedia8 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26200 {"MultiMedia8 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26201 {"MultiMedia8 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26202 {"MultiMedia8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26203 {"MultiMedia8 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26204 {"MultiMedia8 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26205 {"MultiMedia8 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26206 {"MultiMedia8 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26207 {"MultiMedia8 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26208 {"MultiMedia8 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26209 {"MultiMedia8 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026210 {"MultiMedia8 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026211 {"MultiMedia8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26212 {"MultiMedia8 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26213 {"MultiMedia8 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26214 {"MultiMedia8 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026215 {"MultiMedia8 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26216 {"MultiMedia8 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26217 {"MultiMedia8 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26218 {"MultiMedia8 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026219 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26220 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26221 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26222 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26223 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026224 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026225 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26226 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26227 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26228 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26229 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26230 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026231 {"MultiMedia8 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26232 {"MultiMedia8 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026233
Samyak Jain810e42a2019-01-07 17:53:34 +053026234 {"MultiMedia9 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026235 {"MultiMedia9 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26236 {"MultiMedia9 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26237 {"MultiMedia9 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26238 {"MultiMedia9 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26239 {"MultiMedia9 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26240 {"MultiMedia9 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26241 {"MultiMedia9 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26242 {"MultiMedia9 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026243 {"MultiMedia9 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26244 {"MultiMedia9 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26245 {"MultiMedia9 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26246 {"MultiMedia9 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026247 {"MultiMedia9 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26248 {"MultiMedia9 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26249 {"MultiMedia9 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26250 {"MultiMedia9 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026251 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26252 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26253 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26254 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26255 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026256 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026257 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26258 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26259 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26260 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26261 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26262 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026263 {"MultiMedia9 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26264 {"MultiMedia9 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026265 {"MultiMedia9 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026266
Laxminath Kasam38070be2017-08-17 18:21:59 +053026267 {"MultiMedia10 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26268 {"MultiMedia10 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26269 {"MultiMedia10 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26270 {"MultiMedia10 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26271 {"MultiMedia10 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26272 {"MultiMedia10 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26273 {"MultiMedia10 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26274 {"MultiMedia10 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026275 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26276 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26277 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26278 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26279 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26280 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026281 {"MultiMedia10 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026282
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026283 {"MultiMedia20 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26284 {"MultiMedia20 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26285 {"MultiMedia20 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26286 {"MultiMedia20 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026287 {"MultiMedia20 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026288 {"MultiMedia20 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026289 {"MultiMedia20 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26290 {"MultiMedia20 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26291 {"MultiMedia20 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26292 {"MultiMedia20 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26293 {"MultiMedia20 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26294 {"MultiMedia20 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26295 {"MultiMedia20 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26296 {"MultiMedia20 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26297 {"MultiMedia20 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26298 {"MultiMedia20 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26299 {"MultiMedia20 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26300 {"MultiMedia20 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26301 {"MultiMedia20 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26302 {"MultiMedia20 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26303 {"MultiMedia20 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26304 {"MultiMedia20 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053026305 {"MultiMedia20 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26306 {"MultiMedia20 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26307 {"MultiMedia20 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26308 {"MultiMedia20 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026309 {"MultiMedia20 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26310 {"MultiMedia20 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26311 {"MultiMedia20 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26312 {"MultiMedia20 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026313 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26314 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26315 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26316 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26317 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026318 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026319 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26320 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26321 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26322 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26323 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26324 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026325 {"MultiMedia20 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26326 {"MultiMedia20 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026327 {"MultiMedia20 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026328
Derek Chen07c6d1c2018-07-05 10:39:25 -070026329 {"MultiMedia21 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
26330 {"MultiMedia21 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
26331 {"MultiMedia21 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26332 {"MultiMedia21 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26333 {"MultiMedia21 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26334 {"MultiMedia21 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26335 {"MultiMedia21 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26336 {"MultiMedia21 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26337 {"MultiMedia21 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26338 {"MultiMedia21 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26339 {"MultiMedia21 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26340 {"MultiMedia21 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26341 {"MultiMedia21 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26342 {"MultiMedia21 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26343 {"MultiMedia21 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26344 {"MultiMedia21 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26345 {"MultiMedia21 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26346 {"MultiMedia21 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26347 {"MultiMedia21 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26348 {"MultiMedia21 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26349 {"MultiMedia21 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26350 {"MultiMedia21 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026351 {"MultiMedia21 Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
26352 {"MultiMedia21 Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
26353 {"MultiMedia21 Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
26354 {"MultiMedia21 Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053026355 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26356 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26357 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26358 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26359 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026360 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053026361 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26362 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26363 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26364 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26365 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26366 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
26367 {"MultiMedia21 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26368 {"MultiMedia21 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026369 {"MultiMedia21 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026370
Derek Chenb097d922019-07-31 17:28:02 -070026371 {"MultiMedia22 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26372 {"MultiMedia22 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26373 {"MultiMedia22 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26374 {"MultiMedia22 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26375 {"MultiMedia22 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26376 {"MultiMedia22 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26377 {"MultiMedia22 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26378 {"MultiMedia22 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26379 {"MultiMedia22 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26380 {"MultiMedia22 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26381 {"MultiMedia22 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26382 {"MultiMedia22 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26383 {"MultiMedia22 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26384 {"MultiMedia22 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26385 {"MultiMedia22 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26386 {"MultiMedia22 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26387 {"MultiMedia22 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
26388 {"MultiMedia22 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
26389 {"MultiMedia22 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
26390 {"MultiMedia22 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
26391
Surendar Karkac1cde372018-08-14 18:56:24 +053026392 {"MultiMedia27 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Samyak Jain810e42a2019-01-07 17:53:34 +053026393 {"MultiMedia27 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026394 {"MultiMedia27 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
26395 {"MultiMedia27 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053026396 {"MultiMedia27 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026397 {"MultiMedia27 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26398 {"MultiMedia27 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26399 {"MultiMedia27 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26400 {"MultiMedia27 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
26401 {"MultiMedia27 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070026402 {"MultiMedia27 Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026403 {"MultiMedia27 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26404 {"MultiMedia27 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026405 {"MultiMedia27 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026406
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026407 {"MultiMedia1 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26408 {"MultiMedia2 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26409 {"MultiMedia4 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26410 {"MultiMedia5 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26411 {"MultiMedia6 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
26412 {"MultiMedia8 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026413 {"MultiMedia10 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026414
Asish Bhattacharya34504582017-08-08 12:55:01 +053026415 {"MultiMedia16 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
26416 {"MultiMedia16 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
26417 {"MultiMedia16 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
26418 {"MultiMedia16 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
26419 {"MultiMedia16 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
26420 {"MultiMedia16 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
26421 {"MultiMedia16 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
26422 {"MultiMedia16 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
26423 {"MultiMedia16 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
26424 {"MultiMedia16 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
26425 {"MultiMedia16 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
26426 {"MultiMedia16 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
26427 {"MultiMedia16 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
26428 {"MultiMedia16 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
26429 {"MultiMedia16 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
26430 {"MultiMedia16 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
26431 {"MultiMedia16 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053026432 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
26433 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
26434 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
26435 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26436 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080026437 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026438 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26439 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26440 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26441 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26442 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26443 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020026444 {"MultiMedia16 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
26445 {"MultiMedia16 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026446 {"MultiMedia16 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026447
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026448 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26449 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26450 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26451 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26452 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26453 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026454 {"MultiMedia17 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026455
26456 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26457 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26458 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26459 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26460 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26461 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026462 {"MultiMedia18 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053026463 {"MultiMedia18 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26464 {"MultiMedia18 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026465
26466 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26467 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26468 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26469 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26470 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26471 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026472 {"MultiMedia19 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053026473 {"MultiMedia19 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26474 {"MultiMedia19 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026475
26476 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26477 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26478 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26479 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26480 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26481 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026482 {"MultiMedia28 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053026483 {"MultiMedia28 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26484 {"MultiMedia28 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026485
26486 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26487 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26488 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26489 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26490 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26491 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Surendar Karkad47fda42018-05-20 19:21:10 +053026492 {"MultiMedia29 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Chaithanya Krishna Bacharaju61b2de62019-06-20 11:40:17 +053026493 {"MultiMedia29 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26494 {"MultiMedia29 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053026495
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026496 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
26497 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
26498 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
26499 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
26500 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
26501 {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
26502 {"MultiMedia30 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
26503 {"MultiMedia30 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
26504 {"MultiMedia30 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
26505
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026506 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26507 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26508 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26509 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26510 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26511 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26512 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26513 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26514 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26515 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26516 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26517 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26518 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26519 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26520 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26521 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26522 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
26523 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Audio Mixer"},
26524
26525 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26526 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26527 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26528 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26529 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26530 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26531 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26532 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26533 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26534 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26535 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26536 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26537 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26538 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26539 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26540 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26541 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
26542 {"INT_BT_A2DP_RX", NULL, "INTERNAL_A2DP_RX Audio Mixer"},
26543
26544 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26545 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26546 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26547 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26548 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26549 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26550 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26551 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26552 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26553 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26554 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26555 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26556 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26557 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26558 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26559 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26560 {"INT_FM_RX", NULL, "INTERNAL_FM_RX Audio Mixer"},
26561
26562 {"AFE_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26563 {"AFE_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26564 {"AFE_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26565 {"AFE_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26566 {"AFE_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26567 {"AFE_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26568 {"AFE_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26569 {"AFE_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26570 {"AFE_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26571 {"AFE_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26572 {"AFE_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26573 {"AFE_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26574 {"AFE_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26575 {"AFE_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26576 {"AFE_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26577 {"AFE_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26578 {"PCM_RX", NULL, "AFE_PCM_RX Audio Mixer"},
26579
26580 {"MultiMedia1 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26581 {"MultiMedia3 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26582 {"MultiMedia4 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026583 {"MultiMedia10 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026584 {"MultiMedia17 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26585 {"MultiMedia18 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26586 {"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026587 {"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26588 {"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026589 {"MultiMedia30 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026590 {"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
26591 {"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026592 {"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026593 {"MultiMedia1 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26594 {"MultiMedia4 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026595 {"MultiMedia16 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026596 {"MultiMedia17 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26597 {"MultiMedia18 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26598 {"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026599 {"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26600 {"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026601 {"MultiMedia30 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026602 {"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26603 {"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26604 {"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26605
26606 {"MultiMedia1 Mixer", "AFE_PCM_TX", "PCM_TX"},
26607 {"MultiMedia3 Mixer", "AFE_PCM_TX", "PCM_TX"},
26608 {"MultiMedia4 Mixer", "AFE_PCM_TX", "PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026609 {"MultiMedia10 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026610 {"MultiMedia17 Mixer", "AFE_PCM_TX", "PCM_TX"},
26611 {"MultiMedia18 Mixer", "AFE_PCM_TX", "PCM_TX"},
26612 {"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026613 {"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
26614 {"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026615 {"MultiMedia30 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026616 {"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
26617 {"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026618 {"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026619 {"MM_UL1", NULL, "MultiMedia1 Mixer"},
26620 {"MultiMedia2 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
26621 {"MM_UL2", NULL, "MultiMedia2 Mixer"},
26622 {"MM_UL3", NULL, "MultiMedia3 Mixer"},
26623 {"MM_UL4", NULL, "MultiMedia4 Mixer"},
26624 {"MM_UL5", NULL, "MultiMedia5 Mixer"},
26625 {"MM_UL6", NULL, "MultiMedia6 Mixer"},
26626 {"MM_UL8", NULL, "MultiMedia8 Mixer"},
26627 {"MM_UL9", NULL, "MultiMedia9 Mixer"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053026628 {"MM_UL10", NULL, "MultiMedia10 Mixer"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053026629 {"MM_UL16", NULL, "MultiMedia16 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026630 {"MM_UL17", NULL, "MultiMedia17 Mixer"},
26631 {"MM_UL18", NULL, "MultiMedia18 Mixer"},
26632 {"MM_UL19", NULL, "MultiMedia19 Mixer"},
26633 {"MM_UL20", NULL, "MultiMedia20 Mixer"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026634 {"MM_UL21", NULL, "MultiMedia21 Mixer"},
Derek Chenb097d922019-07-31 17:28:02 -070026635 {"MM_UL22", NULL, "MultiMedia22 Mixer"},
Surendar Karkac1cde372018-08-14 18:56:24 +053026636 {"MM_UL27", NULL, "MultiMedia27 Mixer"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053026637 {"MM_UL28", NULL, "MultiMedia28 Mixer"},
26638 {"MM_UL29", NULL, "MultiMedia29 Mixer"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053026639 {"MM_UL30", NULL, "MultiMedia30 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026640
26641 {"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26642 {"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26643 {"AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26644 {"AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26645 {"AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26646 {"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26647 {"AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26648 {"AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26649 {"AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26650 {"AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26651 {"AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26652 {"AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26653 {"AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26654 {"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26655 {"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26656 {"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026657 {"AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026658 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
26659
26660 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26661 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26662 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26663 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26664 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26665 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26666 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26667 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26668 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26669 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26670 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26671 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26672 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26673 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26674 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26675 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070026676 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026677 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
26678
26679 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26680 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26681 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26682 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26683 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26684 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26685 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26686 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26687 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26688 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26689 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26690 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26691 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26692 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26693 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26694 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26695 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
26696
26697 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26698 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26699 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26700 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26701 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26702 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26703 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26704 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26705 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26706 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26707 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26708 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26709 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26710 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26711 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26712 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26713 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
26714
Rohit Kumara5077932017-09-10 22:05:05 +053026715 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26716 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26717 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26718 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26719 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26720 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26721 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26722 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26723 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26724 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26725 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26726 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26727 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26728 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26729 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26730 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26731 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX Audio Mixer"},
26732
Karthikeyan Manic3700752019-03-11 18:33:53 -070026733 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
26734 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
26735 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
26736 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
26737 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
26738 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
26739 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
26740 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
26741 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
26742 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
26743 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
26744 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
26745 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
26746 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
26747 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
26748 {"SEN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
26749 {"SEN_AUX_PCM_RX", NULL, "SEN_AUX_PCM_RX Audio Mixer"},
26750
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026751 {"PRI_RX_Voice Mixer", "Voip", "VOIP_DL"},
26752 {"PRI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26753 {"PRI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26754 {"PRI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26755 {"PRI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26756 {"PRI_I2S_RX", NULL, "PRI_RX_Voice Mixer"},
26757
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026758 {"SEC_RX_Voice Mixer", "Voip", "VOIP_DL"},
26759 {"SEC_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26760 {"SEC_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26761 {"SEC_I2S_RX", NULL, "SEC_RX_Voice Mixer"},
26762
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026763 {"SEC_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026764 {"SEC_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26765 {"SEC_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026766 {"SEC_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26767 {"SEC_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26768 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26769 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26770 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_Voice Mixer"},
26771
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026772 {"SLIM_0_RX_Voice Mixer", "Voip", "VOIP_DL"},
26773 {"SLIM_0_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026774 {"SLIM_0_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26775 {"SLIM_0_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26776 {"SLIM_0_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26777 {"SLIMBUS_0_RX", NULL, "SLIM_0_RX_Voice Mixer"},
26778
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026779 {"SLIM_6_RX_Voice Mixer", "Voip", "VOIP_DL"},
26780 {"SLIM_6_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026781 {"SLIM_6_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26782 {"SLIM_6_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26783 {"SLIM_6_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26784 {"SLIMBUS_6_RX", NULL, "SLIM_6_RX_Voice Mixer"},
26785
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026786 {"USB_AUDIO_RX_Voice Mixer", "Voip", "VOIP_DL"},
26787 {"USB_AUDIO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026788 {"USB_AUDIO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26789 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26790 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26791 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
26792
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080026793 {"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
26794 {"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080026795 {"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26796 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26797 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26798 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
26799
Karthikeyan Mani57550082018-05-03 18:43:58 -070026800 {"DISPLAY_PORT_RX1_Voice Mixer", "Voip", "VOIP_DL"},
26801 {"DISPLAY_PORT_RX1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26802 {"DISPLAY_PORT_RX1_Voice Mixer", "QCHAT", "QCHAT_DL"},
26803 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26804 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26805 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1_Voice Mixer"},
26806
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026807 {"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
26808 {"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26809 {"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26810 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26811 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026812 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX_Voice Mixer"},
26813
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026814 {"AFE_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26815 {"AFE_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26816 {"AFE_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26817 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26818 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26819 {"PCM_RX", NULL, "AFE_PCM_RX_Voice Mixer"},
26820
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026821 {"AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26822 {"AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026823 {"AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26824 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26825 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26826 {"AUX_PCM_RX", NULL, "AUX_PCM_RX_Voice Mixer"},
26827
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026828 {"SEC_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26829 {"SEC_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026830 {"SEC_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26831 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26832 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26833 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
26834
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026835 {"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26836 {"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026837 {"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26838 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26839 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26840 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
26841
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026842 {"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26843 {"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026844 {"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26845 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26846 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26847 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
26848
Rohit Kumara5077932017-09-10 22:05:05 +053026849 {"QUIN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26850 {"QUIN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053026851 {"QUIN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26852 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26853 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26854 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX_Voice Mixer"},
26855
Karthikeyan Manic3700752019-03-11 18:33:53 -070026856 {"SEN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
26857 {"SEN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26858 {"SEN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26859 {"SEN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26860 {"SEN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26861 {"SEN_AUX_PCM_RX", NULL, "SEN_AUX_PCM_RX_Voice Mixer"},
26862
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026863 {"HDMI_RX_Voice Mixer", "Voip", "VOIP_DL"},
26864 {"HDMI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26865 {"HDMI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26866 {"HDMI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26867 {"HDMI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26868 {"HDMI", NULL, "HDMI_RX_Voice Mixer"},
26869 {"HDMI", NULL, "HDMI_DL_HL"},
26870
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026871 {"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026872 {"MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26873 {"MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026874 {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26875 {"MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26876 {"MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
kunleiz8a60b822017-10-11 15:04:02 +080026877 {"MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026878 {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
26879
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026880 {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026881 {"PRI_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26882 {"PRI_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026883 {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26884 {"PRI_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26885 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26886 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26887 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"},
26888
26889 {"INT0_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
26890 {"INT0_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26891 {"INT0_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26892 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26893 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26894 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_Voice Mixer"},
26895
26896 {"INT4_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
26897 {"INT4_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26898 {"INT4_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26899 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26900 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26901 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_Voice Mixer"},
26902
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026903 {"TERT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026904 {"TERT_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26905 {"TERT_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026906 {"TERT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26907 {"TERT_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26908 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26909 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26910 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_Voice Mixer"},
26911
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026912 {"QUAT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026913 {"QUAT_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26914 {"QUAT_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026915 {"QUAT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26916 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26917 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26918 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_Voice Mixer"},
26919
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026920 {"QUIN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Josh Kirsch9d769302018-04-10 17:25:42 -070026921 {"QUIN_MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26922 {"QUIN_MI2S_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026923 {"QUIN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26924 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26925 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26926 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"},
26927
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026928 {"PRI_TDM_RX_0_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026929 {"PRI_TDM_RX_0_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
26930 {"PRI_TDM_RX_0_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26931 {"PRI_TDM_RX_0_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
26932 {"PRI_TDM_RX_0_Voice Mixer", "QCHAT", "QCHAT_DL"},
26933 {"PRI_TDM_RX_0_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26934 {"PRI_TDM_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26935 {"PRI_TDM_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26936 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_Voice Mixer"},
26937
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026938 {"PRI_TDM_RX_1_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026939 {"PRI_TDM_RX_1_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
26940 {"PRI_TDM_RX_1_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26941 {"PRI_TDM_RX_1_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
26942 {"PRI_TDM_RX_1_Voice Mixer", "QCHAT", "QCHAT_DL"},
26943 {"PRI_TDM_RX_1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26944 {"PRI_TDM_RX_1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26945 {"PRI_TDM_RX_1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26946 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_Voice Mixer"},
26947
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026948 {"PRI_TDM_RX_2_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026949 {"PRI_TDM_RX_2_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
26950 {"PRI_TDM_RX_2_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26951 {"PRI_TDM_RX_2_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
26952 {"PRI_TDM_RX_2_Voice Mixer", "QCHAT", "QCHAT_DL"},
26953 {"PRI_TDM_RX_2_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26954 {"PRI_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26955 {"PRI_TDM_RX_2_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26956 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_Voice Mixer"},
26957
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026958 {"PRI_TDM_RX_3_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053026959 {"PRI_TDM_RX_3_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
26960 {"PRI_TDM_RX_3_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
26961 {"PRI_TDM_RX_3_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
26962 {"PRI_TDM_RX_3_Voice Mixer", "QCHAT", "QCHAT_DL"},
26963 {"PRI_TDM_RX_3_Voice Mixer", "DTMF", "DTMF_DL_HL"},
26964 {"PRI_TDM_RX_3_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26965 {"PRI_TDM_RX_3_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26966 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_Voice Mixer"},
26967
Karthikeyan Manic3700752019-03-11 18:33:53 -070026968 {"SEN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
26969 {"SEN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
26970 {"SEN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26971 {"SEN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26972 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX_Voice Mixer"},
26973
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026974 {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26975 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"},
26976
Vatsal Bucha82aee8f2019-10-14 23:56:01 +053026977 {"QUIN_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26978 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_Voice Mixer"},
26979
Kunlei Zhang478379f2019-08-01 17:05:33 +080026980 {"WSA_CDC_DMA_RX_0_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053026981 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26982 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26983 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_Voice Mixer"},
26984
Kunlei Zhang478379f2019-08-01 17:05:33 +080026985 {"RX_CDC_DMA_RX_0_Voice Mixer", "Voip", "VOIP_DL"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053026986 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26987 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26988 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_Voice Mixer"},
26989
Laxminath Kasamdcf2ab22019-11-01 15:33:47 +053026990 {"RX_CDC_DMA_RX_1_Voice Mixer", "Voip", "VOIP_DL"},
26991 {"RX_CDC_DMA_RX_1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
26992 {"RX_CDC_DMA_RX_1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
26993 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1_Voice Mixer"},
26994
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053026995 {"VOC_EXT_EC MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
26996 {"VOC_EXT_EC MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
26997 {"VOC_EXT_EC MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
26998 {"VOC_EXT_EC MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053026999 {"VOC_EXT_EC MUX", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027000 {"VOC_EXT_EC MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Karthikeyan Mani925413e2019-09-10 16:57:28 -070027001 {"VOC_EXT_EC MUX", "PRI_TDM_TX", "PRI_TDM_TX_0"},
Karthikeyan Mania1eb9382018-07-25 10:52:58 -070027002 {"VOC_EXT_EC MUX", "SEC_TDM_TX", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027003 {"VOIP_UL", NULL, "VOC_EXT_EC MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027004 {"VOICEMMODE1_UL", NULL, "VOC_EXT_EC MUX"},
27005 {"VOICEMMODE2_UL", NULL, "VOC_EXT_EC MUX"},
27006
27007 {"AUDIO_REF_EC_UL1 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27008 {"AUDIO_REF_EC_UL1 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27009 {"AUDIO_REF_EC_UL1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27010 {"AUDIO_REF_EC_UL1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27011 {"AUDIO_REF_EC_UL1 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
27012 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27013 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
27014 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
27015 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
27016 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070027017 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
27018 {"AUDIO_REF_EC_UL1 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027019
27020 {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27021 {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27022 {"AUDIO_REF_EC_UL2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27023 {"AUDIO_REF_EC_UL2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27024
27025 {"AUDIO_REF_EC_UL3 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27026 {"AUDIO_REF_EC_UL3 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27027 {"AUDIO_REF_EC_UL3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27028 {"AUDIO_REF_EC_UL3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27029
27030 {"AUDIO_REF_EC_UL4 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27031 {"AUDIO_REF_EC_UL4 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27032 {"AUDIO_REF_EC_UL4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27033 {"AUDIO_REF_EC_UL4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27034
27035 {"AUDIO_REF_EC_UL5 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27036 {"AUDIO_REF_EC_UL5 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27037 {"AUDIO_REF_EC_UL5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27038 {"AUDIO_REF_EC_UL5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27039
27040 {"AUDIO_REF_EC_UL6 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27041 {"AUDIO_REF_EC_UL6 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27042 {"AUDIO_REF_EC_UL6 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27043 {"AUDIO_REF_EC_UL6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27044
27045 {"AUDIO_REF_EC_UL8 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27046 {"AUDIO_REF_EC_UL8 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27047 {"AUDIO_REF_EC_UL8 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27048 {"AUDIO_REF_EC_UL8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27049
27050 {"AUDIO_REF_EC_UL9 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27051 {"AUDIO_REF_EC_UL9 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27052 {"AUDIO_REF_EC_UL9 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27053 {"AUDIO_REF_EC_UL9 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27054
Laxminath Kasam38070be2017-08-17 18:21:59 +053027055 {"AUDIO_REF_EC_UL10 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27056 {"AUDIO_REF_EC_UL10 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27057 {"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27058 {"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27059 {"AUDIO_REF_EC_UL10 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
27060 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27061 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
27062 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
27063 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
27064 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070027065 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
27066 {"AUDIO_REF_EC_UL10 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Vikram Panduranga016c49f2017-09-11 15:15:56 -070027067
27068 {"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27069 {"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27070 {"AUDIO_REF_EC_UL16 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27071 {"AUDIO_REF_EC_UL16 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27072
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027073 {"AUDIO_REF_EC_UL17 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27074 {"AUDIO_REF_EC_UL17 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27075 {"AUDIO_REF_EC_UL17 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27076 {"AUDIO_REF_EC_UL17 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27077
27078 {"AUDIO_REF_EC_UL18 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27079 {"AUDIO_REF_EC_UL18 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27080 {"AUDIO_REF_EC_UL18 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27081 {"AUDIO_REF_EC_UL18 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27082
27083 {"AUDIO_REF_EC_UL19 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27084 {"AUDIO_REF_EC_UL19 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27085 {"AUDIO_REF_EC_UL19 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27086 {"AUDIO_REF_EC_UL19 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27087
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053027088 {"AUDIO_REF_EC_UL28 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27089 {"AUDIO_REF_EC_UL28 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27090 {"AUDIO_REF_EC_UL28 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27091 {"AUDIO_REF_EC_UL28 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27092
27093 {"AUDIO_REF_EC_UL29 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27094 {"AUDIO_REF_EC_UL29 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27095 {"AUDIO_REF_EC_UL29 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27096 {"AUDIO_REF_EC_UL29 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Yunfei Zhang3efc4a22017-11-07 16:30:13 +080027097
27098 {"LSM1_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
27099 {"LSM2_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
27100 {"LSM3_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
27101 {"LSM4_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
27102 {"LSM5_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
27103 {"LSM6_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
27104 {"LSM7_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
27105 {"LSM8_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
27106
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027107 {"MM_UL1", NULL, "AUDIO_REF_EC_UL1 MUX"},
27108 {"MM_UL2", NULL, "AUDIO_REF_EC_UL2 MUX"},
27109 {"MM_UL3", NULL, "AUDIO_REF_EC_UL3 MUX"},
27110 {"MM_UL4", NULL, "AUDIO_REF_EC_UL4 MUX"},
27111 {"MM_UL5", NULL, "AUDIO_REF_EC_UL5 MUX"},
27112 {"MM_UL6", NULL, "AUDIO_REF_EC_UL6 MUX"},
27113 {"MM_UL8", NULL, "AUDIO_REF_EC_UL8 MUX"},
27114 {"MM_UL9", NULL, "AUDIO_REF_EC_UL9 MUX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053027115 {"MM_UL10", NULL, "AUDIO_REF_EC_UL10 MUX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053027116 {"MM_UL16", NULL, "AUDIO_REF_EC_UL16 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027117 {"MM_UL17", NULL, "AUDIO_REF_EC_UL17 MUX"},
27118 {"MM_UL18", NULL, "AUDIO_REF_EC_UL18 MUX"},
27119 {"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053027120 {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
27121 {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
Chaithanya Krishna Bacharaju7aadfb62019-06-24 16:05:14 +053027122 {"MM_UL30", NULL, "AUDIO_REF_EC_UL30 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027123
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027124 {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
27125 {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
27126 {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"},
Meng Wang93b92622019-07-24 14:45:19 +080027127 {"VoiceMMode1_Tx Mixer", "SEC_MI2S_TX_MMode1", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027128 {"VoiceMMode1_Tx Mixer", "TERT_MI2S_TX_MMode1", "TERT_MI2S_TX"},
27129 {"VoiceMMode1_Tx Mixer", "INT3_MI2S_TX_MMode1", "INT3_MI2S_TX"},
27130 {"VoiceMMode1_Tx Mixer", "SLIM_0_TX_MMode1", "SLIMBUS_0_TX"},
27131 {"VoiceMMode1_Tx Mixer", "SLIM_7_TX_MMode1", "SLIMBUS_7_TX"},
27132 {"VoiceMMode1_Tx Mixer", "SLIM_8_TX_MMode1", "SLIMBUS_8_TX"},
27133 {"VoiceMMode1_Tx Mixer", "USB_AUDIO_TX_MMode1", "USB_AUDIO_TX"},
27134 {"VoiceMMode1_Tx Mixer", "INT_BT_SCO_TX_MMode1", "INT_BT_SCO_TX"},
27135 {"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
27136 {"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
27137 {"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
27138 {"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
27139 {"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027140 {"VoiceMMode1_Tx Mixer", "QUIN_AUX_PCM_TX_MMode1", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027141 {"VoiceMMode1_Tx Mixer", "SEN_AUX_PCM_TX_MMode1", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027142 {"VoiceMMode1_Tx Mixer", "QUAT_TDM_TX_0_MMode1", "QUAT_TDM_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053027143 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_0_MMode1", "TX_CDC_DMA_TX_0"},
27144 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_1_MMode1", "TX_CDC_DMA_TX_1"},
27145 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_2_MMode1", "TX_CDC_DMA_TX_2"},
27146 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_3_MMode1", "TX_CDC_DMA_TX_3"},
27147 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_4_MMode1", "TX_CDC_DMA_TX_4"},
27148 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_5_MMode1", "TX_CDC_DMA_TX_5"},
Aditya Bavanari1e349b82018-02-23 16:34:40 +053027149 {"VoiceMMode1_Tx Mixer", "QUAT_MI2S_TX_MMode1", "QUAT_MI2S_TX"},
27150 {"VoiceMMode1_Tx Mixer", "QUIN_MI2S_TX_MMode1", "QUIN_MI2S_TX"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053027151 {"VoiceMMode1_Tx Mixer", "PRI_TDM_TX_3_MMode1", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027152 {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
27153
27154 {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
27155 {"VoiceMMode2_Tx Mixer", "PRI_MI2S_TX_MMode2", "PRI_MI2S_TX"},
Meng Wang93b92622019-07-24 14:45:19 +080027156 {"VoiceMMode2_Tx Mixer", "SEC_MI2S_TX_MMode2", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027157 {"VoiceMMode2_Tx Mixer", "MI2S_TX_MMode2", "MI2S_TX"},
27158 {"VoiceMMode2_Tx Mixer", "TERT_MI2S_TX_MMode2", "TERT_MI2S_TX"},
27159 {"VoiceMMode2_Tx Mixer", "INT3_MI2S_TX_MMode2", "INT3_MI2S_TX"},
27160 {"VoiceMMode2_Tx Mixer", "SLIM_0_TX_MMode2", "SLIMBUS_0_TX"},
27161 {"VoiceMMode2_Tx Mixer", "SLIM_7_TX_MMode2", "SLIMBUS_7_TX"},
27162 {"VoiceMMode2_Tx Mixer", "SLIM_8_TX_MMode2", "SLIMBUS_8_TX"},
27163 {"VoiceMMode2_Tx Mixer", "USB_AUDIO_TX_MMode2", "USB_AUDIO_TX"},
27164 {"VoiceMMode2_Tx Mixer", "INT_BT_SCO_TX_MMode2", "INT_BT_SCO_TX"},
27165 {"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
27166 {"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
27167 {"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
27168 {"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
27169 {"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027170 {"VoiceMMode2_Tx Mixer", "QUIN_AUX_PCM_TX_MMode2", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027171 {"VoiceMMode2_Tx Mixer", "SEN_AUX_PCM_TX_MMode2", "SEN_AUX_PCM_TX"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053027172 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_0_MMode2", "TX_CDC_DMA_TX_0"},
27173 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_1_MMode2", "TX_CDC_DMA_TX_1"},
27174 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_2_MMode2", "TX_CDC_DMA_TX_2"},
27175 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_3_MMode2", "TX_CDC_DMA_TX_3"},
27176 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_4_MMode2", "TX_CDC_DMA_TX_4"},
27177 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_5_MMode2", "TX_CDC_DMA_TX_5"},
Aditya Bavanari1e349b82018-02-23 16:34:40 +053027178 {"VoiceMMode2_Tx Mixer", "QUAT_MI2S_TX_MMode2", "QUAT_MI2S_TX"},
27179 {"VoiceMMode2_Tx Mixer", "QUIN_MI2S_TX_MMode2", "QUIN_MI2S_TX"},
Vignesh Kulothungan1572b9f2019-05-16 14:56:31 -070027180 {"VoiceMMode2_Tx Mixer", "PRI_TDM_TX_3_MMode2", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027181 {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
27182
27183 {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
27184 {"Voip_Tx Mixer", "MI2S_TX_Voip", "MI2S_TX"},
Meng Wang93b92622019-07-24 14:45:19 +080027185 {"Voip_Tx Mixer", "SEC_MI2S_TX_Voip", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027186 {"Voip_Tx Mixer", "TERT_MI2S_TX_Voip", "TERT_MI2S_TX"},
27187 {"Voip_Tx Mixer", "INT3_MI2S_TX_Voip", "INT3_MI2S_TX"},
27188 {"Voip_Tx Mixer", "SLIM_0_TX_Voip", "SLIMBUS_0_TX"},
27189 {"Voip_Tx Mixer", "SLIM_7_TX_Voip", "SLIMBUS_7_TX"},
27190 {"Voip_Tx Mixer", "SLIM_8_TX_Voip", "SLIMBUS_8_TX"},
27191 {"Voip_Tx Mixer", "USB_AUDIO_TX_Voip", "USB_AUDIO_TX"},
27192 {"Voip_Tx Mixer", "INTERNAL_BT_SCO_TX_Voip", "INT_BT_SCO_TX"},
27193 {"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
27194 {"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
27195 {"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
27196 {"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
27197 {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027198 {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027199 {"Voip_Tx Mixer", "SEN_AUX_PCM_TX_Voip", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027200 {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
Aditya Bavanari1e9d4052019-03-25 22:49:48 +053027201 {"Voip_Tx Mixer", "PRI_TDM_TX_3_Voip", "PRI_TDM_TX_3"},
Kunlei Zhang478379f2019-08-01 17:05:33 +080027202 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_0_Voip", "TX_CDC_DMA_TX_0"},
27203 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_1_Voip", "TX_CDC_DMA_TX_1"},
27204 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_2_Voip", "TX_CDC_DMA_TX_2"},
27205 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_3_Voip", "TX_CDC_DMA_TX_3"},
27206 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_4_Voip", "TX_CDC_DMA_TX_4"},
27207 {"Voip_Tx Mixer", "TX_CDC_DMA_TX_5_Voip", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027208 {"VOIP_UL", NULL, "Voip_Tx Mixer"},
27209
27210 {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},
27211 {"SLIMBUS_0_RX", NULL, "SLIMBUS_DL_HL"},
27212 {"SLIMBUS1_DL_HL", "Switch", "SLIM1_DL_HL"},
27213 {"SLIMBUS_1_RX", NULL, "SLIMBUS1_DL_HL"},
27214 {"SLIMBUS3_DL_HL", "Switch", "SLIM3_DL_HL"},
27215 {"SLIMBUS_3_RX", NULL, "SLIMBUS3_DL_HL"},
27216 {"SLIMBUS4_DL_HL", "Switch", "SLIM4_DL_HL"},
27217 {"SLIMBUS_4_RX", NULL, "SLIMBUS4_DL_HL"},
27218 {"SLIMBUS6_DL_HL", "Switch", "SLIM0_DL_HL"},
27219 {"SLIMBUS_6_RX", NULL, "SLIMBUS6_DL_HL"},
Zhou Songcaa541d2019-02-19 18:37:47 +080027220 {"SCO_SLIM7_DL_HL", "Switch", "SLIM7_DL_HL"},
27221 {"SLIMBUS_7_RX", NULL, "SCO_SLIM7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027222 {"SLIM0_UL_HL", NULL, "SLIMBUS_0_TX"},
27223 {"SLIM1_UL_HL", NULL, "SLIMBUS_1_TX"},
27224 {"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
27225 {"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
27226 {"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053027227 {"WSA_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
27228 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_DL_HL"},
27229 {"CDC_DMA_UL_HL", NULL, "VA_CDC_DMA_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053027230 {"RX_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
27231 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_DL_HL"},
Laxminath Kasame0eca372019-10-03 19:34:45 +053027232 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_0_DL_HL"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053027233 {"TX3_CDC_DMA_UL_HL", NULL, "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027234 {"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27235 {"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27236 {"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27237 {"LSM1 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27238 {"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27239 {"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27240 {"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27241 {"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027242 {"LSM1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27243 {"LSM1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027244 {"LSM1 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027245 {"LSM1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027246 {"LSM1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027247 {"LSM1_UL_HL", NULL, "LSM1 Mixer"},
27248
27249 {"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27250 {"LSM2 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27251 {"LSM2 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27252 {"LSM2 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27253 {"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27254 {"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27255 {"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27256 {"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027257 {"LSM2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27258 {"LSM2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027259 {"LSM2 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027260 {"LSM2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027261 {"LSM2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027262 {"LSM2_UL_HL", NULL, "LSM2 Mixer"},
27263
27264
27265 {"LSM3 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27266 {"LSM3 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27267 {"LSM3 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27268 {"LSM3 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27269 {"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27270 {"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27271 {"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27272 {"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027273 {"LSM3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27274 {"LSM3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027275 {"LSM3 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027276 {"LSM3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027277 {"LSM3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027278 {"LSM3_UL_HL", NULL, "LSM3 Mixer"},
27279
27280
27281 {"LSM4 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27282 {"LSM4 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27283 {"LSM4 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27284 {"LSM4 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27285 {"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27286 {"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27287 {"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27288 {"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027289 {"LSM4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27290 {"LSM4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027291 {"LSM4 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027292 {"LSM4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027293 {"LSM4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027294 {"LSM4_UL_HL", NULL, "LSM4 Mixer"},
27295
27296 {"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27297 {"LSM5 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27298 {"LSM5 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27299 {"LSM5 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27300 {"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27301 {"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27302 {"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27303 {"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027304 {"LSM5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27305 {"LSM5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027306 {"LSM5 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027307 {"LSM5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027308 {"LSM5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027309 {"LSM5_UL_HL", NULL, "LSM5 Mixer"},
27310
27311 {"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27312 {"LSM6 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27313 {"LSM6 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27314 {"LSM6 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27315 {"LSM6 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27316 {"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027317 {"LSM6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27318 {"LSM6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027319 {"LSM6 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027320 {"LSM6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027321 {"LSM6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027322 {"LSM6_UL_HL", NULL, "LSM6 Mixer"},
27323
27324 {"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27325 {"LSM7 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27326 {"LSM7 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27327 {"LSM7 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27328 {"LSM7 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27329 {"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027330 {"LSM7 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27331 {"LSM7 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027332 {"LSM7 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027333 {"LSM7 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027334 {"LSM7 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027335 {"LSM7_UL_HL", NULL, "LSM7 Mixer"},
27336
27337 {"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
27338 {"LSM8 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
27339 {"LSM8 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
27340 {"LSM8 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
27341 {"LSM8 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
27342 {"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053027343 {"LSM8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
27344 {"LSM8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080027345 {"LSM8 Mixer", "VA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_2"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053027346 {"LSM8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053027347 {"LSM8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027348 {"LSM8_UL_HL", NULL, "LSM8 Mixer"},
27349
27350
27351 {"CPE_LSM_UL_HL", NULL, "BE_IN"},
27352 {"QCHAT_Tx Mixer", "PRI_TX_QCHAT", "PRI_I2S_TX"},
27353 {"QCHAT_Tx Mixer", "SLIM_0_TX_QCHAT", "SLIMBUS_0_TX"},
27354 {"QCHAT_Tx Mixer", "SLIM_7_TX_QCHAT", "SLIMBUS_7_TX"},
27355 {"QCHAT_Tx Mixer", "SLIM_8_TX_QCHAT", "SLIMBUS_8_TX"},
27356 {"QCHAT_Tx Mixer", "INTERNAL_BT_SCO_TX_QCHAT", "INT_BT_SCO_TX"},
27357 {"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
27358 {"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
27359 {"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
27360 {"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
27361 {"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053027362 {"QCHAT_Tx Mixer", "QUIN_AUX_PCM_TX_QCHAT", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027363 {"QCHAT_Tx Mixer", "SEN_AUX_PCM_TX_QCHAT", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027364 {"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
27365 {"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
27366 {"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
27367 {"QCHAT_Tx Mixer", "INT3_MI2S_TX_QCHAT", "INT3_MI2S_TX"},
27368 {"QCHAT_Tx Mixer", "USB_AUDIO_TX_QCHAT", "USB_AUDIO_TX"},
27369 {"QCHAT_UL", NULL, "QCHAT_Tx Mixer"},
27370
27371 {"INT_FM_RX", NULL, "INTFM_DL_HL"},
27372 {"INTFM_UL_HL", NULL, "INT_FM_TX"},
27373 {"INTHFP_UL_HL", NULL, "HFP_PRI_AUX_UL_HL"},
27374 {"HFP_PRI_AUX_UL_HL", "Switch", "AUX_PCM_TX"},
27375 {"INTHFP_UL_HL", NULL, "HFP_AUX_UL_HL"},
27376 {"HFP_AUX_UL_HL", "Switch", "SEC_AUX_PCM_TX"},
27377 {"INTHFP_UL_HL", NULL, "HFP_INT_UL_HL"},
27378 {"HFP_INT_UL_HL", "Switch", "INT_BT_SCO_TX"},
27379 {"SLIM7_UL_HL", NULL, "HFP_SLIM7_UL_HL"},
27380 {"HFP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
27381 {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"},
27382 {"AUX_PCM_RX", NULL, "INTHFP_DL_HL"},
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080027383 {"SLIM7_UL_HL", NULL, "A2DP_SLIM7_UL_HL"},
27384 {"A2DP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080027385 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027386 {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080027387 {"SEC_AUXPCM_UL_HL", NULL, "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027388 {"MI2S_RX", NULL, "MI2S_DL_HL"},
27389 {"MI2S_UL_HL", NULL, "MI2S_TX"},
27390 {"PCM_RX_DL_HL", "Switch", "SLIM0_DL_HL"},
27391 {"PCM_RX", NULL, "PCM_RX_DL_HL"},
27392
27393 /* connect to INT4_MI2S_DL_HL since same pcm_id */
27394 {"INT0_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
27395 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_DL_HL"},
27396 {"INT4_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
27397 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_DL_HL"},
27398 {"PRI_MI2S_RX_DL_HL", "Switch", "PRI_MI2S_DL_HL"},
27399 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_DL_HL"},
27400 {"SEC_MI2S_RX_DL_HL", "Switch", "SEC_MI2S_DL_HL"},
27401 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_DL_HL"},
27402 {"TERT_MI2S_RX_DL_HL", "Switch", "TERT_MI2S_DL_HL"},
27403 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_DL_HL"},
27404
27405 {"QUAT_MI2S_RX_DL_HL", "Switch", "QUAT_MI2S_DL_HL"},
27406 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053027407 {"QUIN_MI2S_RX_DL_HL", "Switch", "QUIN_MI2S_DL_HL"},
27408 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_DL_HL"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027409 {"SEN_MI2S_RX_DL_HL", "Switch", "SEN_MI2S_DL_HL"},
27410 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027411 {"MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
27412 {"INT3_MI2S_UL_HL", NULL, "INT3_MI2S_TX"},
27413 {"TERT_MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
27414 {"SEC_I2S_RX", NULL, "SEC_I2S_DL_HL"},
27415 {"PRI_MI2S_UL_HL", NULL, "PRI_MI2S_TX"},
27416 {"SEC_MI2S_UL_HL", NULL, "SEC_MI2S_TX"},
27417 {"SEC_MI2S_RX", NULL, "SEC_MI2S_DL_HL"},
27418 {"PRI_MI2S_RX", NULL, "PRI_MI2S_DL_HL"},
27419 {"TERT_MI2S_RX", NULL, "TERT_MI2S_DL_HL"},
27420 {"QUAT_MI2S_UL_HL", NULL, "QUAT_MI2S_TX"},
27421
27422 {"PRI_TDM_TX_0_UL_HL", NULL, "PRI_TDM_TX_0"},
27423 {"PRI_TDM_TX_1_UL_HL", NULL, "PRI_TDM_TX_1"},
27424 {"PRI_TDM_TX_2_UL_HL", NULL, "PRI_TDM_TX_2"},
27425 {"PRI_TDM_TX_3_UL_HL", NULL, "PRI_TDM_TX_3"},
27426 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_DL_HL"},
27427 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_DL_HL"},
27428 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_DL_HL"},
27429 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_DL_HL"},
27430 {"SEC_TDM_TX_0_UL_HL", NULL, "SEC_TDM_TX_0"},
27431 {"SEC_TDM_TX_1_UL_HL", NULL, "SEC_TDM_TX_1"},
27432 {"SEC_TDM_TX_2_UL_HL", NULL, "SEC_TDM_TX_2"},
27433 {"SEC_TDM_TX_3_UL_HL", NULL, "SEC_TDM_TX_3"},
27434 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0_DL_HL"},
27435 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
27436 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
27437 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
Derek Chenfdcc0982018-10-02 15:14:03 -070027438 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027439 {"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
27440 {"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
27441 {"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
27442 {"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070027443 {"TERT_TDM_TX_7_UL_HL", NULL, "TERT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027444 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
27445 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
27446 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
27447 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3_DL_HL"},
27448 {"QUAT_TDM_TX_0_UL_HL", NULL, "QUAT_TDM_TX_0"},
27449 {"QUAT_TDM_TX_1_UL_HL", NULL, "QUAT_TDM_TX_1"},
27450 {"QUAT_TDM_TX_2_UL_HL", NULL, "QUAT_TDM_TX_2"},
27451 {"QUAT_TDM_TX_3_UL_HL", NULL, "QUAT_TDM_TX_3"},
Derek Chenb9048cb2019-03-07 14:54:13 -050027452 {"QUAT_TDM_TX_7_UL_HL", NULL, "QUAT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027453 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0_DL_HL"},
27454 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1_DL_HL"},
27455 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_DL_HL"},
27456 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3_DL_HL"},
Derek Chenb9048cb2019-03-07 14:54:13 -050027457 {"QUAT_TDM_RX_7", NULL, "QUAT_TDM_RX_7_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053027458 {"QUIN_TDM_TX_0_UL_HL", NULL, "QUIN_TDM_TX_0"},
27459 {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"},
27460 {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"},
27461 {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"},
Han Lu7b6c5882019-06-09 16:03:21 +080027462 {"QUIN_TDM_TX_7_UL_HL", NULL, "QUIN_TDM_TX_7"},
Rohit Kumara5077932017-09-10 22:05:05 +053027463 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"},
27464 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"},
27465 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"},
27466 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"},
Han Lu7b6c5882019-06-09 16:03:21 +080027467 {"QUIN_TDM_RX_7", NULL, "QUIN_TDM_RX_7_DL_HL"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027468 {"SEN_TDM_TX_0_UL_HL", NULL, "SEN_TDM_TX_0"},
27469 {"SEN_TDM_TX_1_UL_HL", NULL, "SEN_TDM_TX_1"},
27470 {"SEN_TDM_TX_2_UL_HL", NULL, "SEN_TDM_TX_2"},
27471 {"SEN_TDM_TX_3_UL_HL", NULL, "SEN_TDM_TX_3"},
27472 {"SEN_TDM_RX_0", NULL, "SEN_TDM_RX_0_DL_HL"},
27473 {"SEN_TDM_RX_1", NULL, "SEN_TDM_RX_1_DL_HL"},
27474 {"SEN_TDM_RX_2", NULL, "SEN_TDM_RX_2_DL_HL"},
27475 {"SEN_TDM_RX_3", NULL, "SEN_TDM_RX_3_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027476
27477 {"PRI_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27478 {"PRI_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27479 {"PRI_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27480 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27481 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27482 {"PRI_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27483 {"PRI_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27484 {"PRI_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27485 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
27486 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
27487 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
27488 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
27489 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27490 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27491 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27492 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027493 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27494 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27495 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27496 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027497 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27498 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27499 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27500 {"PRI_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027501 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Port Mixer"},
27502
27503 {"PRI_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27504 {"PRI_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27505 {"PRI_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27506 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27507 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27508 {"PRI_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27509 {"PRI_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27510 {"PRI_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27511 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
27512 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
27513 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
27514 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
27515 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27516 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27517 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27518 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027519 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27520 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27521 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27522 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027523 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27524 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27525 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27526 {"PRI_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027527 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Port Mixer"},
27528
27529 {"PRI_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27530 {"PRI_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27531 {"PRI_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27532 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27533 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27534 {"PRI_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27535 {"PRI_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27536 {"PRI_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27537 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
27538 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
27539 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
27540 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
27541 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27542 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27543 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27544 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027545 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27546 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27547 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27548 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027549 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27550 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27551 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27552 {"PRI_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027553 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Port Mixer"},
27554
27555 {"PRI_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27556 {"PRI_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27557 {"PRI_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27558 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27559 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27560 {"PRI_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27561 {"PRI_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27562 {"PRI_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27563 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
27564 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
27565 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
27566 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
27567 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27568 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27569 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27570 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027571 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27572 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27573 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27574 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027575 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27576 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27577 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27578 {"PRI_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027579 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Port Mixer"},
27580
27581 {"SEC_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27582 {"SEC_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27583 {"SEC_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27584 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27585 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27586 {"SEC_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27587 {"SEC_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27588 {"SEC_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27589 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
27590 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
27591 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
27592 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
27593 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27594 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27595 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27596 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027597 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27598 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27599 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27600 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027601 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27602 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27603 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27604 {"SEC_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027605 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Port Mixer"},
27606
27607 {"SEC_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27608 {"SEC_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27609 {"SEC_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27610 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27611 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27612 {"SEC_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27613 {"SEC_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27614 {"SEC_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27615 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
27616 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
27617 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
27618 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
27619 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27620 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27621 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27622 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027623 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27624 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27625 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27626 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027627 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27628 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27629 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27630 {"SEC_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027631 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Port Mixer"},
27632
27633 {"SEC_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27634 {"SEC_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27635 {"SEC_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27636 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27637 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27638 {"SEC_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27639 {"SEC_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27640 {"SEC_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27641 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
27642 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
27643 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
27644 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
27645 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27646 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27647 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27648 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027649 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27650 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27651 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27652 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027653 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27654 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27655 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27656 {"SEC_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027657 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Port Mixer"},
27658
27659 {"SEC_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27660 {"SEC_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27661 {"SEC_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27662 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27663 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27664 {"SEC_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27665 {"SEC_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27666 {"SEC_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27667 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
27668 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
27669 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
27670 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
27671 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27672 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27673 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27674 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027675 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27676 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27677 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27678 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027679 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27680 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27681 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27682 {"SEC_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027683 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
27684
Derek Chenfdcc0982018-10-02 15:14:03 -070027685 {"SEC_TDM_RX_7 Port Mixer", "TERT_TDM_TX_7", "TERT_TDM_TX_7"},
27686 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7 Port Mixer"},
27687
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027688 {"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27689 {"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27690 {"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27691 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27692 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27693 {"TERT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27694 {"TERT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27695 {"TERT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27696 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27697 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27698 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27699 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27700 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27701 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27702 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27703 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027704 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27705 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27706 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27707 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027708 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27709 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27710 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27711 {"TERT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027712 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Port Mixer"},
27713
27714 {"TERT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27715 {"TERT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27716 {"TERT_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27717 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27718 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27719 {"TERT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27720 {"TERT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27721 {"TERT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27722 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27723 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27724 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27725 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27726 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27727 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27728 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27729 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027730 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27731 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27732 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27733 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027734 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27735 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27736 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27737 {"TERT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027738 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Port Mixer"},
27739
27740 {"TERT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27741 {"TERT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27742 {"TERT_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27743 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27744 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27745 {"TERT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27746 {"TERT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27747 {"TERT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27748 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27749 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27750 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27751 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27752 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27753 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27754 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27755 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027756 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27757 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27758 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27759 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027760 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27761 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27762 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27763 {"TERT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027764 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Port Mixer"},
27765
27766 {"TERT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27767 {"TERT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27768 {"TERT_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
27769 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27770 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27771 {"TERT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27772 {"TERT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27773 {"TERT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27774 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27775 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27776 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27777 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27778 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27779 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27780 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27781 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027782 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27783 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27784 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27785 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027786 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27787 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27788 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27789 {"TERT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027790 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Port Mixer"},
27791
27792 {"QUAT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27793 {"QUAT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27794 {"QUAT_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27795 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27796 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27797 {"QUAT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27798 {"QUAT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27799 {"QUAT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27800 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27801 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27802 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27803 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27804 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27805 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27806 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27807 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027808 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27809 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27810 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27811 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027812 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27813 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27814 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27815 {"QUAT_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027816 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Port Mixer"},
27817
27818 {"QUAT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27819 {"QUAT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27820 {"QUAT_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27821 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27822 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27823 {"QUAT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27824 {"QUAT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27825 {"QUAT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27826 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27827 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27828 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27829 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27830 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27831 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27832 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27833 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027834 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27835 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27836 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27837 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027838 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27839 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27840 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27841 {"QUAT_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027842 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Port Mixer"},
27843
27844 {"QUAT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27845 {"QUAT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27846 {"QUAT_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27847 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27848 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27849 {"QUAT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27850 {"QUAT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27851 {"QUAT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27852 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27853 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27854 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27855 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27856 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27857 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27858 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27859 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027860 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27861 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27862 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27863 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027864 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27865 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27866 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27867 {"QUAT_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027868 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Port Mixer"},
27869
27870 {"QUAT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27871 {"QUAT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27872 {"QUAT_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27873 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27874 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27875 {"QUAT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27876 {"QUAT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27877 {"QUAT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27878 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27879 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27880 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27881 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27882 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27883 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27884 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27885 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053027886 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27887 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27888 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27889 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027890 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27891 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27892 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27893 {"QUAT_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053027894 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Port Mixer"},
27895
Derek Chenb9048cb2019-03-07 14:54:13 -050027896 {"QUAT_TDM_RX_7 Port Mixer", "QUAT_TDM_TX_7", "QUAT_TDM_TX_7"},
Derek Chen728c5cc2019-06-26 14:21:52 -070027897 {"QUAT_TDM_RX_7 Port Mixer", "QUIN_TDM_TX_7", "QUIN_TDM_TX_7"},
Derek Chenb9048cb2019-03-07 14:54:13 -050027898 {"QUAT_TDM_RX_7", NULL, "QUAT_TDM_RX_7 Port Mixer"},
27899
Rohit Kumara5077932017-09-10 22:05:05 +053027900 {"QUIN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27901 {"QUIN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27902 {"QUIN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27903 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27904 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27905 {"QUIN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27906 {"QUIN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27907 {"QUIN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27908 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27909 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27910 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27911 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27912 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27913 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27914 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27915 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27916 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27917 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27918 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27919 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027920 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27921 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27922 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27923 {"QUIN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053027924 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053027925
27926 {"QUIN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27927 {"QUIN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27928 {"QUIN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27929 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27930 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27931 {"QUIN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27932 {"QUIN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27933 {"QUIN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27934 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27935 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27936 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27937 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27938 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27939 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27940 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27941 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27942 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27943 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27944 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27945 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027946 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27947 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27948 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27949 {"QUIN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053027950 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053027951
27952 {"QUIN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27953 {"QUIN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27954 {"QUIN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27955 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27956 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27957 {"QUIN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27958 {"QUIN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27959 {"QUIN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27960 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27961 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27962 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27963 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27964 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27965 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27966 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27967 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27968 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27969 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27970 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27971 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027972 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27973 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
27974 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
27975 {"QUIN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053027976 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053027977
27978 {"QUIN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
27979 {"QUIN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
27980 {"QUIN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
27981 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
27982 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
27983 {"QUIN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
27984 {"QUIN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
27985 {"QUIN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
27986 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
27987 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
27988 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
27989 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
27990 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
27991 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
27992 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
27993 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
27994 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
27995 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
27996 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
27997 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070027998 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
27999 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28000 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28001 {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053028002 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"},
Derek Chen728c5cc2019-06-26 14:21:52 -070028003
28004 {"QUIN_TDM_RX_7 Port Mixer", "TERT_TDM_TX_7", "TERT_TDM_TX_7"},
28005 {"QUIN_TDM_RX_7 Port Mixer", "QUAT_TDM_TX_7", "QUAT_TDM_TX_7"},
Han Lu7b6c5882019-06-09 16:03:21 +080028006 {"QUIN_TDM_RX_7 Port Mixer", "QUIN_TDM_TX_7", "QUIN_TDM_TX_7"},
28007 {"QUIN_TDM_RX_7", NULL, "QUIN_TDM_RX_7 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053028008
Karthikeyan Manic3700752019-03-11 18:33:53 -070028009 {"SEN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28010 {"SEN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28011 {"SEN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28012 {"SEN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28013 {"SEN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28014 {"SEN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28015 {"SEN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28016 {"SEN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28017 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28018 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28019 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28020 {"SEN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28021 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28022 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28023 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28024 {"SEN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
28025 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28026 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28027 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28028 {"SEN_TDM_RX_0 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
28029 {"SEN_TDM_RX_0", NULL, "SEN_TDM_RX_0 Port Mixer"},
28030
28031 {"SEN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28032 {"SEN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28033 {"SEN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28034 {"SEN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28035 {"SEN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28036 {"SEN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28037 {"SEN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28038 {"SEN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28039 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28040 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28041 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28042 {"SEN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28043 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28044 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28045 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28046 {"SEN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
28047 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28048 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28049 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28050 {"SEN_TDM_RX_1 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
28051 {"SEN_TDM_RX_1", NULL, "SEN_TDM_RX_1 Port Mixer"},
28052
28053 {"SEN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28054 {"SEN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28055 {"SEN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28056 {"SEN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28057 {"SEN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28058 {"SEN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28059 {"SEN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28060 {"SEN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28061 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28062 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28063 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28064 {"SEN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28065 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28066 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28067 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28068 {"SEN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
28069 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28070 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28071 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28072 {"SEN_TDM_RX_2 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
28073 {"SEN_TDM_RX_2", NULL, "SEN_TDM_RX_2 Port Mixer"},
28074
28075 {"SEN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28076 {"SEN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28077 {"SEN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28078 {"SEN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28079 {"SEN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28080 {"SEN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28081 {"SEN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28082 {"SEN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28083 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
28084 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
28085 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
28086 {"SEN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
28087 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
28088 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
28089 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
28090 {"SEN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
28091 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_0", "SEN_TDM_TX_0"},
28092 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_1", "SEN_TDM_TX_1"},
28093 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"},
28094 {"SEN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"},
28095 {"SEN_TDM_RX_3", NULL, "SEN_TDM_RX_3 Port Mixer"},
28096
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028097 {"INT0_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28098 {"INT0_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28099 {"INT0_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28100 {"INT0_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028101 {"INT0_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028102 {"INT0_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028103 {"INT0_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
28104 {"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
28105 {"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28106 {"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053028107 {"INT0_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028108 {"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28109 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
28110
28111 {"INT4_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28112 {"INT4_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28113 {"INT4_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28114 {"INT4_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028115 {"INT4_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028116 {"INT4_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028117 {"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
28118 {"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
28119 {"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053028120 {"INT4_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028121 {"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28122 {"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28123 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
28124
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053028125 {"WSA_CDC_DMA_RX_0 Port Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
28126 {"WSA_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080028127 {"WSA_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080028128 {"WSA_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Meng Wangbbf77922019-03-01 13:24:14 +080028129 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Port Mixer"},
28130
28131 {"RX_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
28132 {"RX_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Meng Wang3f8ba542018-12-10 14:17:10 +080028133 {"RX_CDC_DMA_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Meng Wangbbf77922019-03-01 13:24:14 +080028134 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Port Mixer"},
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053028135
Laxminath Kasamdcf2ab22019-11-01 15:33:47 +053028136 {"RX_CDC_DMA_RX_1 Port Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
28137 {"RX_CDC_DMA_RX_1 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
28138 {"RX_CDC_DMA_RX_1 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28139 {"RX_CDC_DMA_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28140 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Port Mixer"},
28141
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028142 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28143 {"SLIMBUS_0_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28144 {"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28145 {"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
28146 {"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053028147 {"SLIMBUS_0_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028148 {"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28149 {"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28150 {"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
28151 {"SLIMBUS_0_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028152 {"SLIMBUS_0_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028153 {"SLIMBUS_0_RX Port Mixer", "SEN_AUXPCM_UL_TX", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028154 {"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28155 {"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28156 {"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28157 {"SLIMBUS_0_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28158 {"SLIMBUS_0_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028159 {"SLIMBUS_0_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028160 {"SLIMBUS_0_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028161 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28162 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
28163 {"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28164 {"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28165 {"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
28166 {"USB_AUDIO_RX Port Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
28167 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Port Mixer"},
28168 {"USB_DL_HL", "Switch", "USBAUDIO_DL_HL"},
28169 {"USB_AUDIO_RX", NULL, "USB_DL_HL"},
28170 {"USBAUDIO_UL_HL", NULL, "USB_AUDIO_TX"},
28171
28172
28173 {"AUX_PCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28174 {"AUX_PCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28175 {"AUX_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28176 {"AUX_PCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28177 {"AUX_PCM_RX Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
Suprith Malligere Shankaregowda467f2c92019-04-19 19:35:41 +053028178 {"AUX_PCM_RX Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080028179 {"AUX_PCM_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028180 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Port Mixer"},
28181
28182 {"SEC_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28183 {"SEC_AUXPCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28184 {"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080028185 {"SEC_AUXPCM_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028186 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
28187
28188 {"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28189 {"TERT_AUXPCM_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
28190 {"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28191 {"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
28192
28193 {"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28194 {"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
28195 {"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28196 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
28197
Rohit Kumara5077932017-09-10 22:05:05 +053028198 {"QUIN_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28199 {"QUIN_AUXPCM_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
28200 {"QUIN_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28201 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUXPCM_RX Port Mixer"},
28202
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028203 {"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
28204 {"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28205 {"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28206 {"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
28207 {"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28208 {"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28209 {"Voice Stub Tx Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
28210 {"Voice Stub Tx Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028211 {"Voice Stub Tx Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028212 {"Voice Stub Tx Mixer", "SEN_AUXPCM_UL_TX", "SEN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028213 {"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
28214 {"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28215 {"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28216 {"Voice Stub Tx Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
28217 {"Voice Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28218 {"Voice Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28219 {"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
28220 {"Voice Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
28221 {"Voice Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28222 {"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
28223 {"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
28224
28225 {"VoLTE Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
28226 {"VoLTE Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28227 {"VoLTE Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
28228 {"VoLTE Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28229 {"VoLTE Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28230 {"VoLTE Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
28231 {"VoLTE Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
28232 {"VoLTE Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28233 {"VoLTE Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
28234 {"VoLTE Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28235 {"VoLTE Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28236 {"VOLTE_STUB_UL", NULL, "VoLTE Stub Tx Mixer"},
28237
28238 {"Voice2 Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
28239 {"Voice2 Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28240 {"Voice2 Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
28241 {"Voice2 Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28242 {"Voice2 Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28243 {"Voice2 Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
28244 {"Voice2 Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
28245 {"Voice2 Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28246 {"Voice2 Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
28247 {"Voice2 Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28248 {"Voice2 Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Josh Kirsch9d769302018-04-10 17:25:42 -070028249 {"Voice2 Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028250 {"VOICE2_STUB_UL", NULL, "Voice2 Stub Tx Mixer"},
28251
kunleizdf5a00a2017-11-27 15:27:36 +080028252 {"STUB_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
28253 {"STUB_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028254 {"STUB_RX", NULL, "STUB_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080028255
28256 {"SLIMBUS_1_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
28257 {"SLIMBUS_1_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028258 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080028259
28260 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
28261 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028262 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
28263
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028264 {"SLIM_7_RX_Voice Mixer", "Voip", "VOIP_DL"},
28265 {"SLIM_7_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028266 {"SLIM_7_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
28267 {"SLIM_7_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
28268 {"SLIM_7_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
28269 {"SLIMBUS_7_RX", NULL, "SLIM_7_RX_Voice Mixer"},
28270
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028271 {"SLIM_8_RX_Voice Mixer", "Voip", "VOIP_DL"},
28272 {"SLIM_8_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028273 {"SLIM_8_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
28274 {"SLIM_8_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
28275 {"SLIM_8_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
28276 {"SLIMBUS_8_RX", NULL, "SLIM_8_RX_Voice Mixer"},
28277
28278 {"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28279 {"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
28280 {"SLIMBUS_1_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28281 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
28282 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28283 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28284 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
28285 {"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
28286 {"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28287 {"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
28288 {"SLIMBUS_3_RX Port Mixer", "AUX_PCM_RX", "AUX_PCM_RX"},
28289 {"SLIMBUS_3_RX Port Mixer", "SLIM_0_RX", "SLIMBUS_0_RX"},
28290 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
28291
28292 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28293 {"SLIMBUS_6_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28294 {"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28295 {"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
28296 {"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053028297 {"SLIMBUS_6_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028298 {"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28299 {"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
28300 {"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28301 {"SLIMBUS_6_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28302 {"SLIMBUS_6_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28303 {"SLIMBUS_6_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28304 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28305 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Port Mixer"},
28306
28307 {"HDMI_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28308 {"HDMI", NULL, "HDMI_RX Port Mixer"},
28309
28310 {"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28311 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
28312
Karthikeyan Mani57550082018-05-03 18:43:58 -070028313 {"DISPLAY_PORT_RX1 Port Mixer", "MI2S_TX", "MI2S_TX"},
28314 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1 Port Mixer"},
28315
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028316 {"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28317 {"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
28318
28319 {"MI2S_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
28320 {"MI2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
28321 {"MI2S_RX", NULL, "MI2S_RX Port Mixer"},
28322
28323 {"PRI_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28324 {"PRI_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28325 {"PRI_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28326 {"PRI_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028327 {"PRI_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028328 {"PRI_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028329 {"PRI_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28330 {"PRI_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28331 {"PRI_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
28332 {"PRI_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080028333 {"PRI_MI2S_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028334 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Port Mixer"},
28335
28336 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28337 {"SEC_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28338 {"SEC_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28339 {"SEC_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028340 {"SEC_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028341 {"SEC_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028342 {"SEC_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28343 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28344 {"SEC_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080028345 {"SEC_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028346 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Port Mixer"},
28347
28348 {"TERT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28349 {"TERT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28350 {"TERT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28351 {"TERT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028352 {"TERT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028353 {"TERT_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028354 {"TERT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28355 {"TERT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28356 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Port Mixer"},
28357
28358 {"QUAT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28359 {"QUAT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28360 {"QUAT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28361 {"QUAT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028362 {"QUAT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028363 {"SEN_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028364 {"QUAT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28365 {"QUAT_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
28366 {"QUAT_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
28367 {"QUAT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28368 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Port Mixer"},
28369
Rohit Kumara5077932017-09-10 22:05:05 +053028370 {"QUIN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28371 {"QUIN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28372 {"QUIN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28373 {"QUIN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28374 {"QUIN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028375 {"QUIN_MI2S_RX Port Mixer", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028376 {"QUIN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28377 {"QUIN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28378 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Port Mixer"},
28379
Karthikeyan Manic3700752019-03-11 18:33:53 -070028380 {"SEN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
28381 {"SEN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
28382 {"SEN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
28383 {"SEN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
28384 {"SEN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
28385 {"SEN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
28386 {"SEN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
28387 {"SEN_MI2S_RX", NULL, "SEN_MI2S_RX Port Mixer"},
28388
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028389 /* Backend Enablement */
28390
28391 {"BE_OUT", NULL, "PRI_I2S_RX"},
28392 {"BE_OUT", NULL, "SEC_I2S_RX"},
28393 {"BE_OUT", NULL, "SLIMBUS_0_RX"},
28394 {"BE_OUT", NULL, "SLIMBUS_1_RX"},
28395 {"BE_OUT", NULL, "SLIMBUS_2_RX"},
28396 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
28397 {"BE_OUT", NULL, "SLIMBUS_4_RX"},
28398 {"BE_OUT", NULL, "SLIMBUS_5_RX"},
28399 {"BE_OUT", NULL, "SLIMBUS_6_RX"},
28400 {"BE_OUT", NULL, "SLIMBUS_7_RX"},
28401 {"BE_OUT", NULL, "SLIMBUS_8_RX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053028402 {"BE_OUT", NULL, "SLIMBUS_9_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028403 {"BE_OUT", NULL, "USB_AUDIO_RX"},
28404 {"BE_OUT", NULL, "HDMI"},
28405 {"BE_OUT", NULL, "DISPLAY_PORT"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070028406 {"BE_OUT", NULL, "DISPLAY_PORT1"},
Ralf Herzc8701f72018-06-20 11:37:35 +020028407 {"BE_OUT", NULL, "PRI_SPDIF_RX"},
28408 {"BE_OUT", NULL, "SEC_SPDIF_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028409 {"BE_OUT", NULL, "MI2S_RX"},
28410 {"BE_OUT", NULL, "QUAT_MI2S_RX"},
28411 {"BE_OUT", NULL, "QUIN_MI2S_RX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028412 {"BE_OUT", NULL, "SEN_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028413 {"BE_OUT", NULL, "TERT_MI2S_RX"},
28414 {"BE_OUT", NULL, "SEC_MI2S_RX"},
28415 {"BE_OUT", NULL, "SEC_MI2S_RX_SD1"},
28416 {"BE_OUT", NULL, "PRI_MI2S_RX"},
28417 {"BE_OUT", NULL, "INT0_MI2S_RX"},
28418 {"BE_OUT", NULL, "INT4_MI2S_RX"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053028419 {"BE_OUT", NULL, "INT2_MI2S_RX"},
28420 {"BE_OUT", NULL, "INT3_MI2S_RX"},
28421 {"BE_OUT", NULL, "INT5_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028422 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
28423 {"BE_OUT", NULL, "INT_BT_A2DP_RX"},
28424 {"BE_OUT", NULL, "INT_FM_RX"},
28425 {"BE_OUT", NULL, "PCM_RX"},
28426 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
28427 {"BE_OUT", NULL, "AUX_PCM_RX"},
28428 {"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
28429 {"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
28430 {"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
Rohit Kumara5077932017-09-10 22:05:05 +053028431 {"BE_OUT", NULL, "QUIN_AUX_PCM_RX"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028432 {"BE_OUT", NULL, "SEN_AUX_PCM_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028433 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
28434 {"BE_OUT", NULL, "INT_FM_RX"},
28435 {"BE_OUT", NULL, "PCM_RX"},
28436 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
28437 {"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
28438 {"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
28439 {"BE_OUT", NULL, "PRI_TDM_RX_0"},
28440 {"BE_OUT", NULL, "PRI_TDM_RX_1"},
28441 {"BE_OUT", NULL, "PRI_TDM_RX_2"},
28442 {"BE_OUT", NULL, "PRI_TDM_RX_3"},
28443 {"BE_OUT", NULL, "SEC_TDM_RX_0"},
28444 {"BE_OUT", NULL, "SEC_TDM_RX_1"},
28445 {"BE_OUT", NULL, "SEC_TDM_RX_2"},
28446 {"BE_OUT", NULL, "SEC_TDM_RX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070028447 {"BE_OUT", NULL, "SEC_TDM_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028448 {"BE_OUT", NULL, "TERT_TDM_RX_0"},
28449 {"BE_OUT", NULL, "TERT_TDM_RX_1"},
28450 {"BE_OUT", NULL, "TERT_TDM_RX_2"},
28451 {"BE_OUT", NULL, "TERT_TDM_RX_3"},
28452 {"BE_OUT", NULL, "TERT_TDM_RX_4"},
28453 {"BE_OUT", NULL, "QUAT_TDM_RX_0"},
28454 {"BE_OUT", NULL, "QUAT_TDM_RX_1"},
28455 {"BE_OUT", NULL, "QUAT_TDM_RX_2"},
28456 {"BE_OUT", NULL, "QUAT_TDM_RX_3"},
Derek Chenb9048cb2019-03-07 14:54:13 -050028457 {"BE_OUT", NULL, "QUAT_TDM_RX_7"},
Rohit Kumara5077932017-09-10 22:05:05 +053028458 {"BE_OUT", NULL, "QUIN_TDM_RX_0"},
28459 {"BE_OUT", NULL, "QUIN_TDM_RX_1"},
28460 {"BE_OUT", NULL, "QUIN_TDM_RX_2"},
28461 {"BE_OUT", NULL, "QUIN_TDM_RX_3"},
Han Lu7b6c5882019-06-09 16:03:21 +080028462 {"BE_OUT", NULL, "QUIN_TDM_RX_7"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028463 {"BE_OUT", NULL, "SEN_TDM_RX_0"},
28464 {"BE_OUT", NULL, "SEN_TDM_RX_1"},
28465 {"BE_OUT", NULL, "SEN_TDM_RX_2"},
28466 {"BE_OUT", NULL, "SEN_TDM_RX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053028467 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_0"},
28468 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053028469 {"BE_OUT", NULL, "RX_CDC_DMA_RX_0"},
28470 {"BE_OUT", NULL, "RX_CDC_DMA_RX_1"},
28471 {"BE_OUT", NULL, "RX_CDC_DMA_RX_2"},
28472 {"BE_OUT", NULL, "RX_CDC_DMA_RX_3"},
28473 {"BE_OUT", NULL, "RX_CDC_DMA_RX_4"},
28474 {"BE_OUT", NULL, "RX_CDC_DMA_RX_5"},
28475 {"BE_OUT", NULL, "RX_CDC_DMA_RX_6"},
28476 {"BE_OUT", NULL, "RX_CDC_DMA_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028477
28478 {"PRI_I2S_TX", NULL, "BE_IN"},
28479 {"MI2S_TX", NULL, "BE_IN"},
28480 {"QUAT_MI2S_TX", NULL, "BE_IN"},
28481 {"QUIN_MI2S_TX", NULL, "BE_IN"},
28482 {"PRI_MI2S_TX", NULL, "BE_IN"},
28483 {"TERT_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053028484 {"INT0_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028485 {"INT2_MI2S_TX", NULL, "BE_IN"},
28486 {"INT3_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053028487 {"INT4_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028488 {"INT5_MI2S_TX", NULL, "BE_IN"},
28489 {"SEC_MI2S_TX", NULL, "BE_IN"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028490 {"SENARY_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028491 {"SLIMBUS_0_TX", NULL, "BE_IN" },
28492 {"SLIMBUS_1_TX", NULL, "BE_IN" },
28493 {"SLIMBUS_3_TX", NULL, "BE_IN" },
28494 {"SLIMBUS_4_TX", NULL, "BE_IN" },
28495 {"SLIMBUS_5_TX", NULL, "BE_IN" },
28496 {"SLIMBUS_6_TX", NULL, "BE_IN" },
28497 {"SLIMBUS_7_TX", NULL, "BE_IN" },
28498 {"SLIMBUS_8_TX", NULL, "BE_IN" },
Surendar Karka3ef3d812018-09-28 18:52:35 +053028499 {"SLIMBUS_9_TX", NULL, "BE_IN" },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028500 {"USB_AUDIO_TX", NULL, "BE_IN" },
28501 {"INT_BT_SCO_TX", NULL, "BE_IN"},
28502 {"INT_FM_TX", NULL, "BE_IN"},
28503 {"PCM_TX", NULL, "BE_IN"},
28504 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
28505 {"BE_OUT", NULL, "STUB_RX"},
28506 {"STUB_TX", NULL, "BE_IN"},
28507 {"STUB_1_TX", NULL, "BE_IN"},
28508 {"BE_OUT", NULL, "AUX_PCM_RX"},
28509 {"AUX_PCM_TX", NULL, "BE_IN"},
28510 {"SEC_AUX_PCM_TX", NULL, "BE_IN"},
28511 {"TERT_AUX_PCM_TX", NULL, "BE_IN"},
28512 {"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053028513 {"QUIN_AUX_PCM_TX", NULL, "BE_IN"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028514 {"SEN_AUX_PCM_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028515 {"INCALL_RECORD_TX", NULL, "BE_IN"},
28516 {"INCALL_RECORD_RX", NULL, "BE_IN"},
28517 {"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
28518 {"SLIM0_RX_VI_FB_RCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053028519 {"WSA_RX_0_VI_FB_LCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
28520 {"WSA_RX_0_VI_FB_RCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028521 {"PRI_MI2S_RX_VI_FB_MUX", "SENARY_TX", "SENARY_TX"},
28522 {"INT4_MI2S_RX_VI_FB_MONO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
28523 {"INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
28524 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_LCH_MUX"},
28525 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_RCH_MUX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053028526 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_LCH_MUX"},
28527 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_RCH_MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028528 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_VI_FB_MUX"},
28529 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_MONO_CH_MUX"},
28530 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_STEREO_CH_MUX"},
28531 {"PRI_TDM_TX_0", NULL, "BE_IN"},
28532 {"PRI_TDM_TX_1", NULL, "BE_IN"},
28533 {"PRI_TDM_TX_2", NULL, "BE_IN"},
28534 {"PRI_TDM_TX_3", NULL, "BE_IN"},
28535 {"SEC_TDM_TX_0", NULL, "BE_IN"},
28536 {"SEC_TDM_TX_1", NULL, "BE_IN"},
28537 {"SEC_TDM_TX_2", NULL, "BE_IN"},
28538 {"SEC_TDM_TX_3", NULL, "BE_IN"},
28539 {"TERT_TDM_TX_0", NULL, "BE_IN"},
28540 {"TERT_TDM_TX_1", NULL, "BE_IN"},
28541 {"TERT_TDM_TX_2", NULL, "BE_IN"},
28542 {"TERT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenfdcc0982018-10-02 15:14:03 -070028543 {"TERT_TDM_TX_7", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028544 {"QUAT_TDM_TX_0", NULL, "BE_IN"},
28545 {"QUAT_TDM_TX_1", NULL, "BE_IN"},
28546 {"QUAT_TDM_TX_2", NULL, "BE_IN"},
28547 {"QUAT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenb9048cb2019-03-07 14:54:13 -050028548 {"QUAT_TDM_TX_7", NULL, "BE_IN"},
Surendar Karkad47fda42018-05-20 19:21:10 +053028549 {"AFE_LOOPBACK_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053028550 {"QUIN_TDM_TX_0", NULL, "BE_IN"},
28551 {"QUIN_TDM_TX_1", NULL, "BE_IN"},
28552 {"QUIN_TDM_TX_2", NULL, "BE_IN"},
28553 {"QUIN_TDM_TX_3", NULL, "BE_IN"},
Han Lu7b6c5882019-06-09 16:03:21 +080028554 {"QUIN_TDM_TX_7", NULL, "BE_IN"},
Karthikeyan Manic3700752019-03-11 18:33:53 -070028555 {"SEN_TDM_TX_0", NULL, "BE_IN"},
28556 {"SEN_TDM_TX_1", NULL, "BE_IN"},
28557 {"SEN_TDM_TX_2", NULL, "BE_IN"},
28558 {"SEN_TDM_TX_3", NULL, "BE_IN"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053028559 {"WSA_CDC_DMA_TX_0", NULL, "BE_IN"},
28560 {"WSA_CDC_DMA_TX_1", NULL, "BE_IN"},
28561 {"WSA_CDC_DMA_TX_2", NULL, "BE_IN"},
28562 {"VA_CDC_DMA_TX_0", NULL, "BE_IN"},
28563 {"VA_CDC_DMA_TX_1", NULL, "BE_IN"},
Xiaoyu Yef439aed2019-01-02 16:40:01 -080028564 {"VA_CDC_DMA_TX_2", NULL, "BE_IN"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053028565 {"TX_CDC_DMA_TX_0", NULL, "BE_IN"},
28566 {"TX_CDC_DMA_TX_1", NULL, "BE_IN"},
28567 {"TX_CDC_DMA_TX_2", NULL, "BE_IN"},
28568 {"TX_CDC_DMA_TX_3", NULL, "BE_IN"},
28569 {"TX_CDC_DMA_TX_4", NULL, "BE_IN"},
28570 {"TX_CDC_DMA_TX_5", NULL, "BE_IN"},
Ralf Herzc8701f72018-06-20 11:37:35 +020028571 {"PRI_SPDIF_TX", NULL, "BE_IN"},
28572 {"SEC_SPDIF_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028573};
28574
28575static int msm_pcm_routing_hw_params(struct snd_pcm_substream *substream,
28576 struct snd_pcm_hw_params *params)
28577{
28578 struct snd_soc_pcm_runtime *rtd = substream->private_data;
28579 unsigned int be_id = rtd->dai_link->id;
28580
28581 if (be_id >= MSM_BACKEND_DAI_MAX) {
28582 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
28583 return -EINVAL;
28584 }
28585
28586 mutex_lock(&routing_lock);
28587 msm_bedais[be_id].sample_rate = params_rate(params);
28588 msm_bedais[be_id].channel = params_channels(params);
28589 msm_bedais[be_id].format = params_format(params);
28590 pr_debug("%s: BE Sample Rate (%d) format (%d) BE id %d\n",
28591 __func__, msm_bedais[be_id].sample_rate,
28592 msm_bedais[be_id].format, be_id);
28593 mutex_unlock(&routing_lock);
28594 return 0;
28595}
28596
28597static int msm_pcm_routing_close(struct snd_pcm_substream *substream)
28598{
28599 struct snd_soc_pcm_runtime *rtd = substream->private_data;
28600 unsigned int be_id = rtd->dai_link->id;
28601 int i, session_type, path_type, topology;
28602 struct msm_pcm_routing_bdai_data *bedai;
28603 struct msm_pcm_routing_fdai_data *fdai;
28604
28605 pr_debug("%s: substream->pcm->id:%s\n",
28606 __func__, substream->pcm->id);
28607
28608 if (be_id >= MSM_BACKEND_DAI_MAX) {
28609 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
28610 return -EINVAL;
28611 }
28612
28613 bedai = &msm_bedais[be_id];
28614 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
28615 0 : 1);
28616 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
28617 path_type = ADM_PATH_PLAYBACK;
28618 else
28619 path_type = ADM_PATH_LIVE_REC;
28620
28621 mutex_lock(&routing_lock);
28622 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
28623 if (!is_mm_lsm_fe_id(i))
28624 continue;
28625 fdai = &fe_dai_map[i][session_type];
28626 if (fdai->strm_id != INVALID_SESSION) {
28627 int idx;
28628 int port_id;
28629 unsigned long copp =
28630 session_copp_map[i][session_type][be_id];
28631 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
28632 if (test_bit(idx, &copp))
28633 break;
Vignesh Kulothungane59d3152018-10-10 14:19:59 -070028634
28635 if (idx >= MAX_COPPS_PER_PORT) {
28636 pr_debug("%s: copp idx is invalid, exiting\n",
28637 __func__);
28638 continue;
28639 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028640 fdai->be_srate = bedai->sample_rate;
Surendar Karkae7507512018-07-20 15:46:54 +053028641 port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028642 topology = adm_get_topology_for_port_copp_idx(port_id,
28643 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070028644 msm_routing_unload_topology(topology);
Surendar Karkae7507512018-07-20 15:46:54 +053028645 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028646 pr_debug("%s: copp:%ld,idx bit fe:%d, type:%d,be:%d topology=0x%x\n",
28647 __func__, copp, i, session_type, be_id,
28648 topology);
28649 clear_bit(idx,
28650 &session_copp_map[i][session_type][be_id]);
28651 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028652 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053028653 msm_pcm_routing_deinit_pp(port_id,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028654 topology);
28655 }
28656 }
28657
28658 bedai->active = 0;
28659 bedai->sample_rate = 0;
28660 bedai->channel = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028661 mutex_unlock(&routing_lock);
28662
28663 return 0;
28664}
28665
28666static int msm_pcm_routing_prepare(struct snd_pcm_substream *substream)
28667{
28668 struct snd_soc_pcm_runtime *rtd = substream->private_data;
28669 unsigned int be_id = rtd->dai_link->id;
28670 int i, path_type, topology;
28671 int session_type = INVALID_SESSION;
28672 struct msm_pcm_routing_bdai_data *bedai;
28673 u32 channels, sample_rate;
Prasad Kumpatla6db89c72019-09-24 14:51:22 +053028674 uint16_t bits_per_sample = 16, voc_path_type, be_bit_width;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028675 struct msm_pcm_routing_fdai_data *fdai;
28676 u32 session_id;
28677 struct media_format_info voc_be_media_format;
28678 bool is_lsm;
28679
28680 pr_debug("%s: substream->pcm->id:%s\n",
28681 __func__, substream->pcm->id);
28682
28683 if (be_id >= MSM_BACKEND_DAI_MAX) {
28684 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
28685 return -EINVAL;
28686 }
28687
28688 bedai = &msm_bedais[be_id];
28689
28690 mutex_lock(&routing_lock);
28691 if (bedai->active == 1)
28692 goto done; /* Ignore prepare if back-end already active */
28693
28694 /* AFE port is not active at this point. However, still
28695 * go ahead setting active flag under the notion that
28696 * QDSP6 is able to handle ADM starting before AFE port
28697 * is started.
28698 */
28699 bedai->active = 1;
28700
28701 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
28702 if (!(is_mm_lsm_fe_id(i) &&
28703 route_check_fe_id_adm_support(i)))
28704 continue;
28705
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028706 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
28707 SESSION_TYPE_RX : SESSION_TYPE_TX;
28708 fdai = &fe_dai_map[i][session_type];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028709 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028710 if (fdai->passthr_mode != LEGACY_PCM)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028711 path_type = ADM_PATH_COMPRESSED_RX;
28712 else
28713 path_type = ADM_PATH_PLAYBACK;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028714 } else {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028715 if ((fdai->passthr_mode != LEGACY_PCM) &&
28716 (fdai->passthr_mode != LISTEN))
Ralf Herzc8701f72018-06-20 11:37:35 +020028717 path_type = ADM_PATH_COMPRESSED_TX;
28718 else
28719 path_type = ADM_PATH_LIVE_REC;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028720 }
28721
28722 is_lsm = (i >= MSM_FRONTEND_DAI_LSM1) &&
28723 (i <= MSM_FRONTEND_DAI_LSM8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028724 if (fdai->strm_id != INVALID_SESSION) {
28725 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Surendar Karkae7507512018-07-20 15:46:54 +053028726 int port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028727
28728 if (session_type == SESSION_TYPE_TX &&
28729 fdai->be_srate &&
28730 (fdai->be_srate != bedai->sample_rate)) {
28731 pr_debug("%s: flush strm %d diff BE rates\n",
28732 __func__,
28733 fdai->strm_id);
28734
28735 if (fdai->event_info.event_func)
28736 fdai->event_info.event_func(
28737 MSM_PCM_RT_EVT_BUF_RECFG,
28738 fdai->event_info.priv_data);
28739 fdai->be_srate = 0; /* might not need it */
28740 }
28741 bits_per_sample = msm_routing_get_bit_width(
28742 bedai->format);
28743
28744 app_type =
28745 fe_dai_app_type_cfg[i][session_type][be_id].app_type;
28746 if (app_type && is_lsm) {
28747 app_type_idx =
28748 msm_pcm_routing_get_lsm_app_type_idx(app_type);
28749 sample_rate =
28750 fe_dai_app_type_cfg[i][session_type][be_id]
28751 .sample_rate;
28752 bits_per_sample =
28753 lsm_app_type_cfg[app_type_idx].bit_width;
28754 } else if (app_type) {
28755 app_type_idx =
28756 msm_pcm_routing_get_app_type_idx(app_type);
28757 sample_rate =
28758 fe_dai_app_type_cfg[i][session_type]
28759 [be_id].sample_rate;
28760 bits_per_sample =
28761 app_type_cfg[app_type_idx].bit_width;
28762 } else
28763 sample_rate = bedai->sample_rate;
28764 /*
28765 * check if ADM needs to be configured with different
28766 * channel mapping than backend
28767 */
28768 if (!bedai->adm_override_ch)
28769 channels = bedai->channel;
28770 else
28771 channels = bedai->adm_override_ch;
28772 acdb_dev_id =
28773 fe_dai_app_type_cfg[i][session_type][be_id].acdb_dev_id;
28774 topology = msm_routing_get_adm_topology(i, session_type,
28775 be_id);
Ralf Herzc8701f72018-06-20 11:37:35 +020028776
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028777 if ((fdai->passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
28778 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_GEN)
28779 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_IEC61937))
Ralf Herzc8701f72018-06-20 11:37:35 +020028780 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
28781
Prasad Kumpatla6db89c72019-09-24 14:51:22 +053028782 be_bit_width = msm_routing_get_bit_width(
28783 bedai->format);
28784
28785 if (hifi_filter_enabled && (bedai->sample_rate == 384000
28786 || bedai->sample_rate == 352800) &&
28787 be_bit_width == 32)
Ramlal Karrab6ef9e02019-08-14 17:53:29 +053028788 bits_per_sample = msm_routing_get_bit_width(
28789 SNDRV_PCM_FORMAT_S32_LE);
Surendar Karkae7507512018-07-20 15:46:54 +053028790 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028791 sample_rate, channels, topology,
28792 fdai->perf_mode, bits_per_sample,
Surendar Karkae7507512018-07-20 15:46:54 +053028793 app_type, acdb_dev_id,
28794 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028795 if ((copp_idx < 0) ||
28796 (copp_idx >= MAX_COPPS_PER_PORT)) {
28797 pr_err("%s: adm open failed\n", __func__);
28798 mutex_unlock(&routing_lock);
28799 return -EINVAL;
28800 }
28801 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
28802 __func__, i, session_type, be_id);
28803 set_bit(copp_idx,
28804 &session_copp_map[i][session_type][be_id]);
28805
28806 if (msm_is_resample_needed(
28807 sample_rate,
28808 bedai->sample_rate))
Surendar Karkae7507512018-07-20 15:46:54 +053028809 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028810 bedai->sample_rate);
28811
28812 msm_pcm_routing_build_matrix(i, session_type, path_type,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028813 fdai->perf_mode, fdai->passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028814 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028815 (fdai->passthr_mode == LEGACY_PCM))
Surendar Karkae7507512018-07-20 15:46:54 +053028816 msm_pcm_routing_cfg_pp(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028817 topology, channels);
28818 }
28819 }
28820
28821 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
28822 session_id = msm_pcm_routing_get_voc_sessionid(i);
28823 if (session_id) {
28824 pr_debug("%s voice session_id: 0x%x\n", __func__,
28825 session_id);
28826
28827 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
28828 voc_path_type = RX_PATH;
28829 else
28830 voc_path_type = TX_PATH;
28831
28832 voc_set_route_flag(session_id, voc_path_type, 1);
28833
28834 memset(&voc_be_media_format, 0,
28835 sizeof(struct media_format_info));
28836
28837 voc_be_media_format.port_id = bedai->port_id;
28838 voc_be_media_format.num_channels = bedai->channel;
28839 voc_be_media_format.sample_rate = bedai->sample_rate;
28840 voc_be_media_format.bits_per_sample = bedai->format;
28841 /* Defaulting this to 1 for voice call usecases */
28842 voc_be_media_format.channel_mapping[0] = 1;
28843
28844 voc_set_device_config(session_id, voc_path_type,
28845 &voc_be_media_format);
28846
28847 if (voc_get_route_flag(session_id, RX_PATH) &&
28848 voc_get_route_flag(session_id, TX_PATH))
28849 voc_enable_device(session_id);
28850 }
28851 }
28852
28853 /* Check if backend is an external ec ref port and set as needed */
28854 if (unlikely(bedai->port_id == voc_get_ext_ec_ref_port_id())) {
28855
28856 memset(&voc_be_media_format, 0,
28857 sizeof(struct media_format_info));
28858
28859 /* Get format info for ec ref port from msm_bedais[] */
28860 voc_be_media_format.port_id = bedai->port_id;
28861 voc_be_media_format.num_channels = bedai->channel;
28862 voc_be_media_format.bits_per_sample = bedai->format;
28863 voc_be_media_format.sample_rate = bedai->sample_rate;
28864 /* Defaulting this to 1 for voice call usecases */
28865 voc_be_media_format.channel_mapping[0] = 1;
28866 voc_set_ext_ec_ref_media_fmt_info(&voc_be_media_format);
28867 pr_debug("%s: EC Ref media format info set to port_id=%d, num_channels=%d, bits_per_sample=%d, sample_rate=%d\n",
28868 __func__, voc_be_media_format.port_id,
28869 voc_be_media_format.num_channels,
28870 voc_be_media_format.bits_per_sample,
28871 voc_be_media_format.sample_rate);
28872 }
28873
28874done:
28875 mutex_unlock(&routing_lock);
28876
28877 return 0;
28878}
28879
28880static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
28881 int fe_id)
28882{
28883 int index, topo_id, be_idx;
28884 unsigned long pp_config = 0;
28885 bool mute_on;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028886 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028887 bool compr_passthr_mode = true;
28888
28889 pr_debug("%s: port_id %d, copp_idx %d\n", __func__, port_id, copp_idx);
28890
28891 if (port_id != HDMI_RX && port_id != DISPLAY_PORT_RX) {
28892 pr_err("%s: Device pp params on invalid port %d\n",
28893 __func__, port_id);
28894 return -EINVAL;
28895 }
28896
28897 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
28898 if (port_id == msm_bedais[be_idx].port_id)
28899 break;
28900 }
28901
28902 if (be_idx >= MSM_BACKEND_DAI_MAX) {
28903 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
28904 return -EINVAL;
28905 }
28906
28907 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
28908 if (msm_bedais_pp_params[index].port_id == port_id)
28909 break;
28910 }
28911 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
28912 pr_err("%s: Invalid backend pp params index %d\n",
28913 __func__, index);
28914 return -EINVAL;
28915 }
28916
28917 topo_id = adm_get_topology_for_port_copp_idx(port_id, copp_idx);
28918 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY) {
28919 pr_err("%s: Invalid passthrough topology 0x%x\n",
28920 __func__, topo_id);
28921 return -EINVAL;
28922 }
28923
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053028924 session_type =
28925 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
28926 SESSION_TYPE_RX : SESSION_TYPE_TX;
28927
28928 if ((fe_dai_map[fe_id][session_type].passthr_mode == LEGACY_PCM) ||
28929 (fe_dai_map[fe_id][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028930 compr_passthr_mode = false;
28931
28932 pp_config = msm_bedais_pp_params[index].pp_params_config;
28933 if (test_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config)) {
28934 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
28935 clear_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config);
28936 mute_on = msm_bedais_pp_params[index].mute_on;
28937 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
28938 adm_send_compressed_device_mute(port_id,
28939 copp_idx,
28940 mute_on);
28941 }
28942 if (test_bit(ADM_PP_PARAM_LATENCY_BIT, &pp_config)) {
28943 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
28944 clear_bit(ADM_PP_PARAM_LATENCY_BIT,
28945 &pp_config);
28946 latency = msm_bedais_pp_params[index].latency;
28947 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
28948 adm_send_compressed_device_latency(port_id,
28949 copp_idx,
28950 latency);
28951 }
28952 return 0;
28953}
28954
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070028955static uint32_t msm_routing_get_topology(size_t data_size, void *data)
28956{
28957 uint32_t topology = NULL_COPP_TOPOLOGY;
28958 void *cal_info = NULL;
28959 uint32_t size = 0;
28960
28961 /* Retrieve cal_info size from cal data*/
Aditya Bavanariaf708a82019-03-08 19:17:57 +053028962 if (data_size < sizeof(struct audio_cal_type_basic) +
28963 sizeof(struct audio_cal_info_adm_top)) {
28964 pr_err("%s: Invalid data size: %zd\n", __func__, data_size);
28965 goto done;
28966 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070028967 size = data_size - sizeof(struct audio_cal_type_basic);
28968 cal_info = kzalloc(size, GFP_KERNEL);
28969
28970 if (!cal_info)
28971 goto done;
28972
28973 memcpy(cal_info,
28974 ((uint8_t *)data + sizeof(struct audio_cal_type_basic)), size);
28975
28976 topology = ((struct audio_cal_info_adm_top *)cal_info)->topology;
28977 kfree(cal_info);
28978 cal_info = NULL;
28979
28980done:
28981 pr_debug("%s: Using topology %d\n", __func__, topology);
28982
28983 return topology;
28984}
28985
28986static void msm_routing_load_topology(size_t data_size, void *data)
28987{
28988 uint32_t topology_id;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053028989 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070028990
28991 topology_id = msm_routing_get_topology(data_size, data);
28992 if (topology_id != NULL_COPP_TOPOLOGY)
28993 ret = q6core_load_unload_topo_modules(topology_id,
28994 CORE_LOAD_TOPOLOGY);
28995 if (ret < 0)
28996 pr_debug("%s %d load topology failed\n",
28997 __func__, topology_id);
28998
28999}
29000
29001static void msm_routing_unload_topology(uint32_t topology_id)
29002{
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053029003 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070029004
29005 if (topology_id != NULL_COPP_TOPOLOGY)
29006 ret = q6core_load_unload_topo_modules(topology_id,
29007 CORE_UNLOAD_TOPOLOGY);
29008 if (ret < 0)
29009 pr_debug("%s %d unload topology failed\n",
29010 __func__, topology_id);
29011
29012}
29013
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029014static int msm_routing_put_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
29015 struct snd_ctl_elem_value *ucontrol)
29016{
29017 int pp_id = ucontrol->value.integer.value[0];
29018 int port_id = 0;
29019 int index, be_idx, i, topo_id, idx;
29020 bool mute;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029021 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029022 bool compr_passthr_mode = true;
29023
29024 pr_debug("%s: pp_id: 0x%x\n", __func__, pp_id);
29025
29026 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
29027 port_id = msm_bedais[be_idx].port_id;
29028 if (port_id == HDMI_RX || port_id == DISPLAY_PORT_RX)
29029 break;
29030 }
29031
29032 if (be_idx >= MSM_BACKEND_DAI_MAX) {
29033 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
29034 return -EINVAL;
29035 }
29036
29037 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
29038 if (msm_bedais_pp_params[index].port_id == port_id)
29039 break;
29040 }
29041 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
29042 pr_err("%s: Invalid pp params backend index %d\n",
29043 __func__, index);
29044 return -EINVAL;
29045 }
29046
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029047 session_type =
29048 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
29049 SESSION_TYPE_RX : SESSION_TYPE_TX;
29050
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029051 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
29052 MSM_FRONTEND_DAI_MM_SIZE) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029053 if ((fe_dai_map[i][session_type].passthr_mode == LEGACY_PCM) ||
29054 (fe_dai_map[i][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029055 compr_passthr_mode = false;
29056
29057 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
29058 unsigned long copp =
29059 session_copp_map[i]
29060 [SESSION_TYPE_RX][be_idx];
29061 if (!test_bit(idx, &copp))
29062 continue;
29063 topo_id = adm_get_topology_for_port_copp_idx(port_id,
29064 idx);
29065 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY)
29066 continue;
29067 pr_debug("%s: port: 0x%x, copp %ld, be active: %d, passt: %d\n",
29068 __func__, port_id, copp, msm_bedais[be_idx].active,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053029069 fe_dai_map[i][session_type].passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029070 switch (pp_id) {
29071 case ADM_PP_PARAM_MUTE_ID:
29072 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
29073 mute = ucontrol->value.integer.value[1] ? true : false;
29074 msm_bedais_pp_params[index].mute_on = mute;
29075 set_bit(ADM_PP_PARAM_MUTE_BIT,
29076 &msm_bedais_pp_params[index].pp_params_config);
29077 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
29078 adm_send_compressed_device_mute(port_id,
29079 idx, mute);
29080 break;
29081 case ADM_PP_PARAM_LATENCY_ID:
29082 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
29083 msm_bedais_pp_params[index].latency =
29084 ucontrol->value.integer.value[1];
29085 set_bit(ADM_PP_PARAM_LATENCY_BIT,
29086 &msm_bedais_pp_params[index].pp_params_config);
29087 latency = msm_bedais_pp_params[index].latency =
29088 ucontrol->value.integer.value[1];
29089 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
29090 adm_send_compressed_device_latency(port_id,
29091 idx, latency);
29092 break;
29093 default:
29094 pr_info("%s, device pp param %d not supported\n",
29095 __func__, pp_id);
29096 break;
29097 }
29098 }
29099 }
29100 return 0;
29101}
29102
29103static int msm_routing_get_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
29104 struct snd_ctl_elem_value *ucontrol)
29105{
29106 pr_debug("%s:msm_routing_get_device_pp_params_mixer", __func__);
29107 return 0;
29108}
29109
29110static const struct snd_kcontrol_new device_pp_params_mixer_controls[] = {
29111 SOC_SINGLE_MULTI_EXT("Device PP Params", SND_SOC_NOPM, 0, 0xFFFFFFFF,
29112 0, 3, msm_routing_get_device_pp_params_mixer,
29113 msm_routing_put_device_pp_params_mixer),
29114};
29115
29116static int msm_aptx_dec_license_control_get(struct snd_kcontrol *kcontrol,
29117 struct snd_ctl_elem_value *ucontrol)
29118{
29119 ucontrol->value.integer.value[0] =
29120 core_get_license_status(ASM_MEDIA_FMT_APTX);
29121 pr_debug("%s: status %ld\n", __func__,
29122 ucontrol->value.integer.value[0]);
29123 return 0;
29124}
29125
29126static int msm_aptx_dec_license_control_put(struct snd_kcontrol *kcontrol,
29127 struct snd_ctl_elem_value *ucontrol)
29128{
29129 int32_t status = 0;
29130
29131 status = core_set_license(ucontrol->value.integer.value[0],
29132 APTX_CLASSIC_DEC_LICENSE_ID);
29133 pr_debug("%s: status %d\n", __func__, status);
29134 return status;
29135}
29136
29137static const struct snd_kcontrol_new aptx_dec_license_controls[] = {
29138 SOC_SINGLE_EXT("APTX Dec License", SND_SOC_NOPM, 0,
29139 0xFFFF, 0, msm_aptx_dec_license_control_get,
29140 msm_aptx_dec_license_control_put),
29141};
29142
Rohit kumar63ffaa72019-02-01 18:05:33 +053029143static int msm_routing_put_port_chmap_mixer(struct snd_kcontrol *kcontrol,
29144 struct snd_ctl_elem_value *ucontrol)
29145{
29146 uint8_t channel_map[PCM_FORMAT_MAX_NUM_CHANNEL_V8];
29147 uint32_t be_idx = ucontrol->value.integer.value[0];
29148 int i;
29149
Rohit kumar2b4cbd82019-04-30 13:31:25 +053029150 if (be_idx >= MSM_BACKEND_DAI_MAX) {
29151 pr_err("%s: Invalid Backend index %d\n", __func__, be_idx);
29152 return -EINVAL;
29153 }
29154
Rohit kumar63ffaa72019-02-01 18:05:33 +053029155 for (i = 0; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; i++) {
29156 channel_map[i] = (char)(ucontrol->value.integer.value[i + 1]);
29157 if (channel_map[i] > PCM_MAX_CHMAP_ID) {
29158 pr_err("%s: Invalid channel map %d\n",
29159 __func__, channel_map[i]);
29160 return -EINVAL;
29161 }
29162 }
29163 adm_set_port_multi_ch_map(channel_map, msm_bedais[be_idx].port_id);
29164
29165 return 0;
29166}
29167
29168static const struct snd_kcontrol_new port_multi_channel_map_mixer_controls[] = {
29169 SOC_SINGLE_MULTI_EXT("Backend Device Channel Map", SND_SOC_NOPM, 0,
29170 MSM_BACKEND_DAI_MAX, 0,
29171 PCM_FORMAT_MAX_NUM_CHANNEL_V8 + 1, NULL,
29172 msm_routing_put_port_chmap_mixer),
29173};
29174
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029175static int msm_routing_be_dai_name_table_info(struct snd_kcontrol *kcontrol,
29176 struct snd_ctl_elem_info *uinfo)
29177{
29178 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
29179 uinfo->count = sizeof(be_dai_name_table);
29180 return 0;
29181}
29182
29183static int msm_routing_be_dai_name_table_tlv_get(struct snd_kcontrol *kcontrol,
29184 unsigned int __user *bytes,
29185 unsigned int size)
29186{
29187 int i;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053029188 int ret = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029189
29190 if (size < sizeof(be_dai_name_table)) {
29191 pr_err("%s: invalid size %d requested, returning\n",
29192 __func__, size);
29193 ret = -EINVAL;
29194 goto done;
29195 }
29196
29197 /*
29198 * Fill be_dai_name_table from msm_bedais table to reduce code changes
29199 * needed when adding new backends
29200 */
29201 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
29202 be_dai_name_table[i].be_id = i;
29203 strlcpy(be_dai_name_table[i].be_name,
29204 msm_bedais[i].name,
29205 LPASS_BE_NAME_MAX_LENGTH);
29206 }
29207
29208 ret = copy_to_user(bytes, &be_dai_name_table,
29209 sizeof(be_dai_name_table));
29210 if (ret) {
29211 pr_err("%s: failed to copy be_dai_name_table\n", __func__);
29212 ret = -EFAULT;
29213 }
29214
29215done:
29216 return ret;
29217}
29218
29219static const struct snd_kcontrol_new
29220 msm_routing_be_dai_name_table_mixer_controls[] = {
29221 {
29222 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
29223 SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
29224 .info = msm_routing_be_dai_name_table_info,
29225 .name = "Backend DAI Name Table",
29226 .tlv.c = snd_soc_bytes_tlv_callback,
29227 .private_value = (unsigned long) &(struct soc_bytes_ext) {
29228 .max = sizeof(be_dai_name_table),
29229 .get = msm_routing_be_dai_name_table_tlv_get,
29230 }
29231 },
29232};
29233
29234static int msm_routing_stereo_channel_reverse_control_get(
29235 struct snd_kcontrol *kcontrol,
29236 struct snd_ctl_elem_value *ucontrol)
29237{
29238 ucontrol->value.integer.value[0] = swap_ch;
29239 pr_debug("%s: Swap channel value: %ld\n", __func__,
29240 ucontrol->value.integer.value[0]);
29241 return 0;
29242}
29243
29244static int msm_routing_stereo_channel_reverse_control_put(
29245 struct snd_kcontrol *kcontrol,
29246 struct snd_ctl_elem_value *ucontrol)
29247{
29248 int i, idx, be_index, port_id;
29249 int ret = 0;
29250 unsigned long copp;
29251
29252 pr_debug("%s Swap channel value:%ld\n", __func__,
29253 ucontrol->value.integer.value[0]);
29254
29255 swap_ch = ucontrol->value.integer.value[0];
29256
29257 mutex_lock(&routing_lock);
29258 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
29259 port_id = msm_bedais[be_index].port_id;
29260 if (!msm_bedais[be_index].active)
29261 continue;
29262
29263 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
29264 MSM_FRONTEND_DAI_MM_SIZE) {
29265 copp = session_copp_map[i][SESSION_TYPE_RX][be_index];
29266 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
29267 if (!test_bit(idx, &copp))
29268 continue;
29269
29270 pr_debug("%s: swap channel control of portid:%d, coppid:%d\n",
29271 __func__, port_id, idx);
29272 ret = adm_swap_speaker_channels(
29273 port_id, idx,
29274 msm_bedais[be_index].sample_rate,
29275 swap_ch);
29276 if (ret) {
29277 pr_err("%s:Swap_channel failed, err=%d\n",
29278 __func__, ret);
29279 goto done;
29280 }
29281 }
29282 }
29283 }
29284done:
29285 mutex_unlock(&routing_lock);
29286 return ret;
29287}
29288
29289static const struct snd_kcontrol_new stereo_channel_reverse_control[] = {
29290 SOC_SINGLE_EXT("Swap channel", SND_SOC_NOPM, 0,
29291 1, 0, msm_routing_stereo_channel_reverse_control_get,
29292 msm_routing_stereo_channel_reverse_control_put),
29293};
29294
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080029295static int msm_routing_instance_id_support_info(struct snd_kcontrol *kcontrol,
29296 struct snd_ctl_elem_info *uinfo)
29297{
29298 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
29299 uinfo->count = 1;
29300 return 0;
29301}
29302
29303static int msm_routing_instance_id_support_put(
29304 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
29305{
29306 bool supported = ucontrol->value.integer.value[0] ? true : false;
29307
29308 q6common_update_instance_id_support(supported);
29309 return 0;
29310}
29311
29312static int msm_routing_instance_id_support_get(
29313 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
29314{
29315 bool supported = false;
29316
29317 supported = q6common_is_instance_id_supported();
29318 ucontrol->value.integer.value[0] = supported ? 1 : 0;
29319
29320 return 0;
29321}
29322
29323static const struct snd_kcontrol_new
29324 msm_routing_feature_support_mixer_controls[] = {
29325 {
29326 .access = SNDRV_CTL_ELEM_ACCESS_READ |
29327 SNDRV_CTL_ELEM_ACCESS_WRITE,
29328 .info = msm_routing_instance_id_support_info,
29329 .name = "Instance ID Support",
29330 .put = msm_routing_instance_id_support_put,
29331 .get = msm_routing_instance_id_support_get,
29332 },
29333};
29334
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029335static const struct snd_pcm_ops msm_routing_pcm_ops = {
29336 .hw_params = msm_pcm_routing_hw_params,
29337 .close = msm_pcm_routing_close,
29338 .prepare = msm_pcm_routing_prepare,
29339};
29340
29341/* Not used but frame seems to require it */
Meng Wangee084a02018-09-04 16:11:58 +080029342static int msm_routing_probe(struct snd_soc_component *component)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029343{
Meng Wangee084a02018-09-04 16:11:58 +080029344 snd_soc_dapm_new_controls(&component->dapm, msm_qdsp6_widgets,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029345 ARRAY_SIZE(msm_qdsp6_widgets));
Meng Wangddca6862019-05-21 09:31:44 +080029346 snd_soc_dapm_ignore_suspend(&component->dapm, "BE_OUT");
29347 snd_soc_dapm_ignore_suspend(&component->dapm, "BE_IN");
Meng Wangee084a02018-09-04 16:11:58 +080029348 snd_soc_dapm_add_routes(&component->dapm, intercon,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029349 ARRAY_SIZE(intercon));
29350
Meng Wangee084a02018-09-04 16:11:58 +080029351 snd_soc_dapm_new_widgets(component->dapm.card);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029352
Meng Wangee084a02018-09-04 16:11:58 +080029353 snd_soc_add_component_controls(component, lsm_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029354 ARRAY_SIZE(lsm_controls));
29355
Meng Wangee084a02018-09-04 16:11:58 +080029356 snd_soc_add_component_controls(component, aanc_slim_0_rx_mux,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029357 ARRAY_SIZE(aanc_slim_0_rx_mux));
29358
Meng Wangee084a02018-09-04 16:11:58 +080029359 snd_soc_add_component_controls(component, aanc_noise_level,
Sudheer Papothic07b37a2018-05-04 05:56:47 +053029360 ARRAY_SIZE(aanc_noise_level));
29361
Meng Wangee084a02018-09-04 16:11:58 +080029362 snd_soc_add_component_controls(component, msm_voc_session_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029363 ARRAY_SIZE(msm_voc_session_controls));
29364
Meng Wangee084a02018-09-04 16:11:58 +080029365 snd_soc_add_component_controls(component, app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029366 ARRAY_SIZE(app_type_cfg_controls));
29367
Meng Wangee084a02018-09-04 16:11:58 +080029368 snd_soc_add_component_controls(component, lsm_app_type_cfg_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029369 ARRAY_SIZE(lsm_app_type_cfg_controls));
29370
Meng Wangee084a02018-09-04 16:11:58 +080029371 snd_soc_add_component_controls(component, module_cfg_controls,
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070029372 ARRAY_SIZE(module_cfg_controls));
29373
Meng Wangee084a02018-09-04 16:11:58 +080029374 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029375 stereo_to_custom_stereo_controls,
29376 ARRAY_SIZE(stereo_to_custom_stereo_controls));
29377
Meng Wangee084a02018-09-04 16:11:58 +080029378 snd_soc_add_component_controls(component, ec_ref_param_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029379 ARRAY_SIZE(ec_ref_param_controls));
29380
Meng Wangee084a02018-09-04 16:11:58 +080029381 snd_soc_add_component_controls(component, channel_mixer_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029382 ARRAY_SIZE(channel_mixer_controls));
29383
Meng Wangee084a02018-09-04 16:11:58 +080029384 msm_qti_pp_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029385
Meng Wangee084a02018-09-04 16:11:58 +080029386 msm_dts_srs_tm_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029387
Meng Wangee084a02018-09-04 16:11:58 +080029388 msm_dolby_dap_add_controls(component);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029389
Meng Wangee084a02018-09-04 16:11:58 +080029390 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029391 use_ds1_or_ds2_controls,
29392 ARRAY_SIZE(use_ds1_or_ds2_controls));
29393
Meng Wangee084a02018-09-04 16:11:58 +080029394 snd_soc_add_component_controls(component,
Ramlal Karrab6ef9e02019-08-14 17:53:29 +053029395 hifi_filter_controls,
29396 ARRAY_SIZE(hifi_filter_controls));
29397
29398 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029399 device_pp_params_mixer_controls,
29400 ARRAY_SIZE(device_pp_params_mixer_controls));
29401
Meng Wangee084a02018-09-04 16:11:58 +080029402 snd_soc_add_component_controls(component,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029403 msm_routing_be_dai_name_table_mixer_controls,
29404 ARRAY_SIZE(msm_routing_be_dai_name_table_mixer_controls));
29405
Meng Wangee084a02018-09-04 16:11:58 +080029406 snd_soc_add_component_controls(component, msm_source_tracking_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029407 ARRAY_SIZE(msm_source_tracking_controls));
Meng Wangee084a02018-09-04 16:11:58 +080029408 snd_soc_add_component_controls(component, adm_channel_config_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029409 ARRAY_SIZE(adm_channel_config_controls));
29410
Meng Wangee084a02018-09-04 16:11:58 +080029411 snd_soc_add_component_controls(component, aptx_dec_license_controls,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029412 ARRAY_SIZE(aptx_dec_license_controls));
Meng Wangee084a02018-09-04 16:11:58 +080029413 snd_soc_add_component_controls(component,
29414 stereo_channel_reverse_control,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029415 ARRAY_SIZE(stereo_channel_reverse_control));
Meng Wangee084a02018-09-04 16:11:58 +080029416 snd_soc_add_component_controls(
29417 component, msm_routing_feature_support_mixer_controls,
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080029418 ARRAY_SIZE(msm_routing_feature_support_mixer_controls));
Rohit kumar63ffaa72019-02-01 18:05:33 +053029419 snd_soc_add_component_controls(component,
29420 port_multi_channel_map_mixer_controls,
29421 ARRAY_SIZE(port_multi_channel_map_mixer_controls));
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080029422
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029423 return 0;
29424}
29425
29426int msm_routing_pcm_new(struct snd_soc_pcm_runtime *runtime)
29427{
29428 return msm_pcm_routing_hwdep_new(runtime, msm_bedais);
29429}
29430
29431void msm_routing_pcm_free(struct snd_pcm *pcm)
29432{
29433 msm_pcm_routing_hwdep_free(pcm);
29434}
29435
Meng Wangee084a02018-09-04 16:11:58 +080029436static struct snd_soc_component_driver msm_soc_routing_component = {
29437 .name = DRV_NAME,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029438 .ops = &msm_routing_pcm_ops,
29439 .probe = msm_routing_probe,
29440 .pcm_new = msm_routing_pcm_new,
29441 .pcm_free = msm_routing_pcm_free,
29442};
29443
29444static int msm_routing_pcm_probe(struct platform_device *pdev)
29445{
29446
29447 dev_dbg(&pdev->dev, "dev name %s\n", dev_name(&pdev->dev));
Meng Wangee084a02018-09-04 16:11:58 +080029448 return snd_soc_register_component(&pdev->dev,
29449 &msm_soc_routing_component,
29450 NULL, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029451}
29452
29453static int msm_routing_pcm_remove(struct platform_device *pdev)
29454{
Meng Wangee084a02018-09-04 16:11:58 +080029455 snd_soc_unregister_component(&pdev->dev);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029456 return 0;
29457}
29458
29459static const struct of_device_id msm_pcm_routing_dt_match[] = {
29460 {.compatible = "qcom,msm-pcm-routing"},
29461 {}
29462};
29463MODULE_DEVICE_TABLE(of, msm_pcm_routing_dt_match);
29464
29465static struct platform_driver msm_routing_pcm_driver = {
29466 .driver = {
29467 .name = "msm-pcm-routing",
29468 .owner = THIS_MODULE,
29469 .of_match_table = msm_pcm_routing_dt_match,
Xiaojun Sang53cd13a2018-06-29 15:14:37 +080029470 .suppress_bind_attrs = true,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029471 },
29472 .probe = msm_routing_pcm_probe,
29473 .remove = msm_routing_pcm_remove,
29474};
29475
29476int msm_routing_check_backend_enabled(int fedai_id)
29477{
29478 int i;
29479
29480 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
29481 /* bad ID assigned in machine driver */
29482 pr_err("%s: bad MM ID\n", __func__);
29483 return 0;
29484 }
29485 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
29486 if (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))
29487 return msm_bedais[i].active;
29488 }
29489 return 0;
29490}
29491
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029492static int get_cal_type_index(int32_t cal_type)
29493{
29494 int ret = -EINVAL;
29495
29496 switch (cal_type) {
29497 case ADM_TOPOLOGY_CAL_TYPE:
29498 ret = ADM_TOPOLOGY_CAL_TYPE_IDX;
29499 break;
29500 case ADM_LSM_TOPOLOGY_CAL_TYPE:
29501 ret = ADM_LSM_TOPOLOGY_CAL_TYPE_IDX;
29502 break;
29503 default:
29504 pr_err("%s: Invalid cal type %d\n", __func__, cal_type);
29505 }
29506 return ret;
29507}
29508
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029509static int msm_routing_set_cal(int32_t cal_type,
29510 size_t data_size, void *data)
29511{
29512 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029513 int cal_index;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029514 pr_debug("%s\n", __func__);
29515
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029516 cal_index = get_cal_type_index(cal_type);
29517 if (cal_index < 0) {
29518 pr_err("%s: Could not get cal index %d\n",
29519 __func__, cal_index);
29520 ret = -EINVAL;
29521 goto done;
29522 }
29523
29524 ret = cal_utils_set_cal(data_size, data, cal_data[cal_index], 0, NULL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029525 if (ret < 0) {
29526 pr_err("%s: cal_utils_set_cal failed, ret = %d, cal type = %d!\n",
29527 __func__, ret, cal_type);
29528 ret = -EINVAL;
29529 goto done;
29530 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070029531 /* Pre-load if it is ADM topology */
29532 if ((cal_index == ADM_TOPOLOGY_CAL_TYPE_IDX) ||
29533 (cal_index == ADM_LSM_TOPOLOGY_CAL_TYPE_IDX)) {
29534 msm_routing_load_topology(data_size, data);
29535 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029536done:
29537 return ret;
29538}
29539
29540static void msm_routing_delete_cal_data(void)
29541{
29542 pr_debug("%s\n", __func__);
29543
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029544 cal_utils_destroy_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029545}
29546
29547static int msm_routing_init_cal_data(void)
29548{
29549 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029550 struct cal_type_info cal_type_info[] = {
29551 {{ADM_TOPOLOGY_CAL_TYPE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029552 {NULL, NULL, NULL,
29553 msm_routing_set_cal, NULL, NULL} },
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029554 {NULL, NULL, cal_utils_match_buf_num} },
29555
29556 {{ADM_LSM_TOPOLOGY_CAL_TYPE,
29557 {NULL, NULL, NULL,
29558 msm_routing_set_cal, NULL, NULL} },
29559 {NULL, NULL, cal_utils_match_buf_num} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029560 };
29561 pr_debug("%s\n", __func__);
29562
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053029563 ret = cal_utils_create_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0],
29564 &cal_type_info[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029565 if (ret < 0) {
29566 pr_err("%s: could not create cal type!\n",
29567 __func__);
29568 ret = -EINVAL;
29569 goto err;
29570 }
29571
29572 return ret;
29573err:
29574 msm_routing_delete_cal_data();
29575 return ret;
29576}
29577
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053029578int __init msm_soc_routing_platform_init(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029579{
29580 mutex_init(&routing_lock);
29581 if (msm_routing_init_cal_data())
29582 pr_err("%s: could not init cal data!\n", __func__);
29583
29584 afe_set_routing_callback(
29585 (routing_cb)msm_pcm_get_dev_acdb_id_by_port_id);
29586
29587 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
29588 memset(&last_be_id_configured, 0, sizeof(last_be_id_configured));
29589
29590 return platform_driver_register(&msm_routing_pcm_driver);
29591}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029592
Asish Bhattacharya5faacb32017-12-04 17:23:15 +053029593void msm_soc_routing_platform_exit(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029594{
29595 msm_routing_delete_cal_data();
29596 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
29597 mutex_destroy(&routing_lock);
29598 platform_driver_unregister(&msm_routing_pcm_driver);
29599}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053029600
29601MODULE_DESCRIPTION("MSM routing platform driver");
29602MODULE_LICENSE("GPL v2");